November 6, 2007
Handbook Note 34/113: Were New Languages Features Really Awaited?
About a reference to "new language features that were long awaited by the Delphi community", note 34 comments: Or at least the vocal minority of the community that keeps comparing programming languages and would like to see Delphi keep up with anything else done by any other language in the world. I come from a language background as well and like these new features a lot, but I won't say Delphi would have been doomed without them. In fact, now that we have these new features almost no one is using them...
The features mentioned as examples in this context are "private-that-is-really-private" and class data. This blog post is part of my "113 Delphi 2007 Handbook Notes" blogging project, to promote my new Delphi book.
15 Comments
Handbook Note 34/113 Were New Languages Features Really Awaited?
Many new books on methodology contain Java sample code. Because Object Pascal definition in Delphi 5/6/7 lacks of certain features, it is not easy to translate the knowledge to Object Pascal. I'd like to say in Delphi 2007, I can try nearly all samples in the books I bought last year which makes learning sweet.Comment by Li Yang [http://lextm.blogspot.com] on November 6, 11:55
Handbook Note 34/113 Were New Languages Features Really Awaited?
We have a very big problem with the backguard compatibility, we need to make a VCL break from older versions and work in a new VCL for the next 10 years. For me it's more important to mantain the "VCL flavour" witch I can't see in some components and technologies like websnap.Comment by Francisco Ruiz [] on November 6, 13:11
Handbook Note 34/113 Were New Languages Features Really Awaited?
You've got to be kidding. You don't think there's anyone in the Delphi community who cares about encapsulation? "Strict private" and "strict protected" were certainly long-awaited in our shop.Comment by Joe White [http://www.excastle.com/blog/] on November 6, 15:58
Handbook Note 34/113 Were New Languages Features Really Awaited?
Joe, "strict private" and "strict protected" have nothing to do with encapsulation. Encapsulation was added with the introduction of objects, and then introduced again with classes, and then introduced a third time with records with methods. Making visibility more strict has to do with information hiding, not encapsulation.Comment by Rob Kennedy [http://www.cs.wisc.edu/~rkennedy/] on November 6, 18:24
Handbook Note 34/113 Were New Languages Features Really Awaited?
"...almost no one is using them..." Note the work "almost." Marco didn't say that "no one" is using them. Only that the adoption rate hasn't been as fast as the outcry from the community would have suggested. All of the new language features are put in place to address certain problems and new challenges. They're not done simply to "keep up with the Jones." Allen.Comment by Allen Bauer [http://blogs.codegear.com/abauer] on November 6, 18:42
Handbook Note 34/113 Were New Languages Features Really Awaited?
Yes they were! And there are a lot of improvement still awaited. And not -at least not to me-, I don't want neither of this because I want to fulfill some kind of social complex nor a feeling of disableness. I can jump into Java or Ruby or C# any time with almost no pain but the frustration derived of seeing a good product with a lot of potential and a community around it going the path of CA-Clipper, Visual FoxPro, WordPerfect, Lotus, etc. Keeping it momentary success just to remember it. Keep up the good work, that I'll do that.Comment by Salvador Gomez Retamoza [http://salvador.oversistemas.com] on November 6, 21:13
Handbook Note 34/113 Were New Languages Features Really Awaited?
Bauer, the CodeGear approach reminds me the famous tale ending with "Nondum matura est, nolo acerbam sumere"...Comment by Luigi D. Sandon on November 6, 21:35
Handbook Note 34/113 Were New Languages Features Really Awaited?
Luigi, Had to look that up :-). I will have to disagree that this is all just an attitude of "sour grapes." We look very critically at new language additions, how they impact the existing code, what level of testing will be required, and the overall applicability. Most of this is merely a combination of business decisions and scheduling impact. Were we to have unlimited time and resources, there is probably no end to what we could do ;-). I, personally, wish we had the resources to do lots of new language features... Allen.Comment by Allen Bauer [http://blogs.codegear.com/abauer] on November 8, 19:15
Handbook Note 34/113 Were New Languages Features Really Awaited?
Allen, I understand perfectly that CodeGear needs to add what is doable given resources, budget and time. Just tell so. I prefer by far two new features implemented very well than twenty barely working. What I do not like it's the "we didn't implement this and that and won't because just a vocal minority asks for that, and they are useless for the silent majority". That's often not true, and sometimes offensive, no one likes to be treated like a child just wanting the next toy to break :) With a "mature" language, many developers will be very "conservative", and only a minority will "push the envelope" - as long as they can. I like when my customers ask for more features, because it means they like the product, and want to keep on using it for new tasks. Maybe many of them won't use them overnight, but when they discover them they are pleasantly surprised. Also it means the product has still room to grow and become more powerful, and it's not near end-of-life. I'm more worried when they don't ask anything new!Comment by Luigi D. Sandon on November 8, 22:12
Handbook Note 34/113 Were New Languages Features Really Awaited?
Luigi, I'm not really sure where this is coming from; "we didn't implement this and that and won't because just a vocal minority asks for that, and they are useless for the silent majority." Has someone from CodeGear actually said this? I certainly hope not. I know there has been times where we've disagreed with a particular language feature or simply felt that it was not right for the language. To the best of my knowledge we've communicated that fact. If you feel is not the case, please know that we'll endeavor to communicate our reasoning as much as we can. Also feel free to ask for more clarification. We'll either be more clear or try to explain other reasons we're not able to say anything more (competitive reasons are the most common for controlling the information flow). Sometimes the answer is just a simple "not yet" because other things are taking precedence. Allen.Comment by Allen Bauer [http://blogs.codegear.com/abauer] on November 9, 03:17
Handbook Note 34/113 Were New Languages Features Really Awaited?
Allen, there were situations in the past when features - especially overall features - being added looked misaligned with the "vocal minority" needs, and sometimes replies from Borland representatives were alike "most developers don't need this". To be fair, it was most about general features than about language features. "Alternative roadmaps" didn't get out of nowhere :) It was sad, for example to see Delphi implementing generics only after - and because - .NET did it. "Keeping up with the Jones" (had to look that up too ;) must not be the driving reason, although it could be a marketing issue, anyway anticipating needs and competitors should be. Maybe it's a feature many developer could be find difficult to master and thus don't use, or don't need - but on the other hand it would allow to develop advanced container classes easier to use, something the VCL still lacks, and some applications need. Well, maybe one day the developer storing data in a hidden TListBox will discover a map class and be enlightened :) You at CodeGear are now doing a much better job than in the recent past, and worked hard to better realign features with the developers needs - and I thank you for that, and I really hope soon resources increases. Unluckily, the "vocal minority" will keep on prodding you :)Comment by Luigi D. Sandon on November 9, 12:18
Handbook Note 34/113 Were New Languages Features Really Awaited?
Hi, I remember in the early days of Delphi, everybody complained that Delphi classes didn't support multiple inheritance, so was considered under powered compared to C++ which supported it. Now nobody even asks for that feature, why cos most mainstream languages that came after Delphi did not implement it either, namely Java, C#, etc. Why cos they found using Interfaces gave most of the features of multiple inheritance without the headaches... but strangely only until those languages came along, multiple inheritance was considered a must-have feature. Borland/CodeGear would have wasted alot of resources trying to implement that feature, that is now considered unneeded (and even undesirable) by most. The same is true these days, some features in C# is considered a must have feature for Delphi too, if Delphi is to survive. My advice, only implement things in Delphi that fits in with the style of the Delphi and the Object Pascal language. If it can't be done then rather leave that feature out, otherwise one just ends up polluting the Object Pascal language - it's difficult to remove a bad feature once it's been added, and might regret ever having it later. I'm sure if Delphi supported multiple-inherited would have been diffult to port the compiler and VCL to .NET as .NET did not support that either, (as by now the VCL would have had lots of things & components perhaps using multiple inheritance - would have made porting those impossible) so thus because of Delphi's simplicity (or some would say 'lack' of :) in some features actually made it a positive, and made it easier to port to a new platform, with most features in-tact. Also don't copy the syntax of C# for a new feature simply cos that's the way C# does it, maybe Delphi has a better way to implement that syntax that better fits in with Delphi... Also i'd rather have one new useful language feature in Delphi that no other language offers (or at least not C# :), rather than have all of the same new features of those languages. Otherwise in the end there's nothing that distinguishes Delphi to make it unique. This is turning out to be a very long post, so please bear with me :) just one more thing... Why I think having a Delphi Linux compiler is important... (just the compiler part, not a Linux IDE)... it's bragging rights (cos C# can't do it, well at least not without Mono), and even if can only compile Linux Console apps for now, or even if just 5% of the Delphi users end up compiling to Linux - people like to least have the option, even if the majority of users end up not even using it. When Delphi 7 came bundled with Kylix, I found it a big selling point, being able to do both Win32 and the option of Linux (even though we never ended up doing any real Linux development, but my boss bought Delphi 7 cos of the possibility of being able to develop for that platform also) "Delphi compiles to Win32, .NET and also Mac OS X (console server apps), and Linux (console server apps)" Just an idea :) BBComment by BB [] on November 9, 12:47
Handbook Note 34/113 Were New Languages Features Really Awaited?
Luigi, three things. First I was the one that complained with the "vocal minority" not CodeGear. Second, I think the "vocal minority" that keeps bugging and asking for more is badly needed (particularly if constructive, but not only). Third I almost fully agree with your latest post (including the need for generics)! ByeComment by Marco Cantù [http://www.marcocantu.com] on November 9, 12:50
Handbook Note 34/113 Were New Languages Features Really Awaited?
Luigi, While I have no easy way to prove this to you, I will say that many things like generics, interfaces, etc... were in the planning stages long before they ever actually arrived in the language. For instance, I remember internally discussing with Anders, Chuck, Danny and many others, parameterized types (generics) for Object Pascal back in the Delphi 1 & 2 time frame. Many times we'll actually wait to gauge what the market demand for a particular language feature will be. Because of the reasons I've already talked about with regard to time and resources, sometimes we cannot afford to toss out features in the "hope" that they'll catch on. Sometimes we'll take the chance and lead with a features, other times we'll follow. We can't be all things to all people and we can't know about everything that is going on in technology. It is simply moving too fast for only a select few to keep track of. We rely on a lot of the feedback from, what Marco is calling the "vocal minority" to give us clues as to what new technologies are out there and which ones we should spend some time looking into. Without them, I think our job would be far tougher. Allen.Comment by Allen Bauer [http://blogs.codegear.com/abauer] on November 9, 18:56
Post Your Comment
Click here for posting your feedback to this blog.
There are currently 0 pending (unapproved) messages.


Handbook Note 34/113 Were New Languages Features Really Awaited?
Comment by Luigi D. Sandon on November 6, 11:29