Monday, March 26, 2007

My Wishlist for Delphi Compiler

Today I was discussing at work about the problems we are facing with Delphi as an IDE, Language, Development tool. One of the problems I see with Delphi relates to the way it handles Abstract methods. This forced to think what I would like to have in Delphi Compiler.
  1. Enable me have annotations in the classes instead of keywords to override methods.
  2. There should be a way to declare a class abstract like in Java. The user program should not be able to instantiate the abstract classes.
  3. A class with minimum one abstract methods should be forced to declare as abstract.
  4. Like DotNet we should be able to make a Class / method final. So that nobody can extend it and in-turn override the behavior of the method.
  5. There should be some way to warn user that an overridden method has empty implementation. May be an optimizer feature but this will be really helpful.
There are few more features (related to IDE) which would be nice to have:
  1. Keyboard shortcut to see all the open files in one popup etc like eclipse.
  2. Keyboard shortcut to go to method or class declaration. Just like F3 key in eclipse.
  3. A Javadoc kind of feature where the user can attach some sort of documentation with the method and that can be picked up by the Code-Insight. So that we know what this method is doing. The current mouse hover does not give sufficient details as we cannot write documentation for the method to be picked up by any other class.
  4. Also a scrapbook kind of feature in Delphi IDE will be cool to have where we can write couple of lines of code and then just test it. Something similar to what WSAD has in it. This will save time to test few lines of code we want to try in our code.
I am not sure if any of the reader has a contact with Delphi Team but it would be desirable to have these features in Delphi which one time was my favorite language which Borland team managed to destroy over a period of time.

Disclaimer: This post has nothing to do with the Semantic Database or Semantic Web Services as such.

Until Next Time...:)


Nick said...


You can declare a class abstract.

TAbstractClass = class abstract procedure SomeProcedure;

A class with at least one abstract method doesn't need to be declared abstract, but the compiler will realize that it is one and let you know if you try to instantiate it.

You can make a class final or sealed in both Win32 and .Net.

Nick Hodges
Delphi Product Manager

Sacha said...

Delphi and the semantic Web: any link between these two?

I am learning Delphi nowadays and studied natural language processing years ago.

Like you, I have had an interest in the Semantic Web. However, I haven't explored it really. Do you know if Delphi can be used for semantic Web programming?



Sacha said...

(I forgot to check the follow-up comments checkbox so here you are...)