Born Again Delphi
A word in CodeGear's shell-like
Stob Mr Nick Hodges of CodeGear and Embarcadero and not Borland blogs amusingly about the obscure corners of Delphi syntax. Delphi Pascal apparently still implements a Jensen and Wirth era feature whereby [square brackets] can simulated by the sequences (. and .). In the olden days,
MyArray := 0;
could look like this (assuming my exotic characters aren't eaten by El Reg's CMS)
MyArrayÄ5Å := 0;
when displayed on a 1982, methylated spirits-burner powered, Ericsson video terminal. So Prof. Wirth decreed it that
MyArray(.5.) := 0;
should mean the same thing. (In my ancient and limited experience, the cure is worse than the disease - even more so with C's ghastly trigraphs. But I digress.)
Mr Hodges uses this as a leaping off point to discuss the future of Delphi. In essence, the plan is this: CodeGear is embarking upon a mega rewrite of the compiler. Henceforth it will be, he says, easier to target new platforms - CodeGear is thinking about a 64-bit version next, and who knows what after that. More interestingly, CodeGear is planning to split and duplicate the front end of the compiler so that it can handle both existing Object Pascal, and an incompatible variation of the language with 'a new, non-legacy syntax'.
In other words, future Delphis will support two dialects of Object Pascal, linkable at module level, but syntactically incompatible.
CodeGear is surely not doing all this to be rid of the obligation to support (.Wirthian simulated square brackets.). They are going for the Big One. But Mr H is silent on what extra features the newborn language will contain.
Therefore, now is a good time for an esteemed and respected tech columnist (or, failing that, me) to nail to CodeGear's door a list of all the changes, features and must-keeps that that esteemed and respected person (or I) would like to see in the new language.
Maybe this is not quite what Mr Hodges and friends would prefer at this juncture. Sorry, Mr H. The second best-known observation of Sir Michael Jagger is applicable in this context. Besides, you get to throw that gag back at me in a moment.
Enough chit-chat already. Here is my list of completely reasonable demands:
Compilation, compilation, compilation. One feature of Delphi and Turbo Pascal that has consistently distinguished it from inferior languages is that, in my experience, one can generally complete a Delphi build in less time than it takes Netbeans to coax the Java compiler's flabby backside off the magnetic media.
As I understand it, this speed advantage is in part achieved by the .DCU object file format, which is actually a raw-ish dump of the Delphi compiler's output buffer. On the one hand, it's really easy to write out and load quickly: it's already in the right format. On the other hand, change one teeny thing in the compiler and you wave goodbye to being able to read the previous version's files.
Mr H talks of 'fixing' the compiler-specific DCU format, which makes me anxious. I dare say the whole program is a great ball of elderly C++, pock-marked with globals and 1990s attempts at collection classes and God knows what. But I implore CodeGear to be careful to produce a new compiler that is actually as fast as the old, rather than just theoretically faster.