Late August I have brought up a question about default parameters in Delphi. But it does not stop with just Delphi – C# did not have support for default parameters for years…

Not anymore – default or optional parameters would appear in C# of some near future – .Net 4.0 (this is 70+ minutes you have to listen to):

  1. dynamic language support and Dynamically Typed Objects
  2. concurrent applications, multi-core support, parallel programming
  3. befriend C# with VB#
  4. default and named parameters
  5. Compiler as service, compiler API, code delegate, code text as script
  6. more…

Being the father of Delphi and then C#, he could not resist from sharing/exploring further many ideas which we have seen since Delphi 1.0 – VCL, data access, and many other things.

I have always considered C# being a Delphi 2.0 – which Delphi could become if Anders would have an opportunity to extend it at Borland.

Few thoughts:

#1. very nice simplification to the coding practices. Too powerful perhaps? Well, generics were as such when introduced and now we cannot live without it… PHP/Python anyone? Delphi classes from C# without reflection, interfaces or delegation…

#3. Is interesting statement from Microsoft since they did try hard to decommission VB and have not succeeded. I think Borland/CodeGear has tried the same with Delphi and has not succeed with that either. Evolution of the language is inevitable, it has to follow the trend. And I am glad with Prism announced this is something which would be a thing of the past.

#4. default parameters… Finally… a named parameters? mmm… interesting…

#5 as component developer I would love to see this feature in Delphi for dynamic deployment. As a developer I am looking forward for Delphi scripting capabilities…

PS. It is nice to see an acknowledge of his work at Borland in his PDC2008 introduction

Before joining Microsoft in 1996, Hejlsberg was one of the first employees of Borland International Inc. As principal engineer, he was the original author of Turbo Pascal, a revolutionary integrated development environment, and chief architect of its successor, Delphi.


4 Comments

Cynic · Nov 6, 2008 at 09:30

Agree very much. On the one hand, Anders enforced a conservative culture that we all benefit from now.

But Delphi Pascal is needlessly verbose by modern standards. It also has throwbacks that made sense when PCs were slower, like Interface/Implementation sections, but which make code maintenance a chore, esp. Properties.

C# does this and many other things so much more elegantly.

My ideal language right now would be C# for native code.

Fabricio Araujo · Nov 6, 2008 at 15:32

Not having properties (of couse, IMHO) it’s a fault, not a feature…
What is your grip with OP properties?

cynic · Nov 7, 2008 at 04:57

C# and Delphi do both have Properties. But in C# they are just so much more elegant. Many things are more elegant in C#, but Properties are a particularly poignant example. They are done in such a way that you just WANT to use them.

    Serguei Dosyukov · Nov 11, 2008 at 10:05

    Properties in Delphi and in C# are original. Delphi had it since the beginning. As a result, C# has it too.
    There are major differences in implementation though and one in Delphi are more robust. C# keeps property accessors “boxed”, if anyone has to change a logic, the whole property code has to be reintroduced. Way around off course is to provide virtual functions which are used from inside the property access code, but it is an overhead.

Leave a Reply