November 6, 2007
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.
posted by
marcocantu @ 10:35AM | 15 Comments
[0 Pending]
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.