Delphi 2007 Handbook




Essential Pascal








November 6, 2007

Handbook Note 34/113: Were New Languages Features Really Awaited?

Note 34 of 113 of Delphi 2007 Handbook

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? 

Some said the same when "objects" were introduced...

1) Many of those waiting for those features migrated 
to other languages long time ago...
2) Really *new* features still wait to be implemented 
(especially on the native side)
3) Most libraries won't use them to mantain 
compatibiliy with older versions, for example 
Developer Express dropped support for Delphi 5 last 
October - but still supports from Delphi 6 onward.
4) Some features was introduced just for .NET 
compatibility.

Delphi is doomed if they can't keep it up-to-date. 
It's not C, and it is and will be compared to many 
languages born much later. Delphi can be a front-
runner, or can follow much later. Once it was a front-
runner and got many developers. Later it just lagged 
behind and lost them. 

Often most mainstream developers don't know what they 
really need - and don't care, often it's only 
the "vocal minority" following language novelties and 
evolutions that foresee what's needed next.

Who would have introduces "objects" in 1990? When 
almost no one had them? And when many developers 
where unable to take advantage of them really?
Comment by Luigi D. Sandon on November 6, 11:29

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 :)

BB
Comment 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)!

Bye
Comment 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.