October 16, 2006

Delphi .NET Language: First Class, NameSpaces, and More

Just a pointer to a couple of recent posts involving the Delphi language on the .NET platform, plus my perspective on them.

When talking about Delphi for .NET (the language, not the IDE) there are quite a few misunderstandings. The IDE doesn't support the latest features of the .NET platform, but what was done for .NET 1.1 is actually quite nice. It is true that Delphi provides extra non-CLS-compliants features you should avoid to use in cross-language projects. But cutting class references, virtual constructors, or named constructors from the language (just to name some these non-compliant features) would have been a mistake. Delphi is Delphi and should remain Delphi whatever the platform.

On this, I fully agree with Craig Stuntz: "Folks, C# exists, and it's a fine language, so if you want to use something which behaves exactly like C# why not just use it? C++/CLI and Delphi for .NET aren't supposed to act precisely like C# in every way because they're different languages."

Craig makes this comment after referring to a blog post by Steve Teixeira, longtime Delphi guru now working for Microsoft. Steve, who is Visual C++ product manager, tells the same about managed C++: it doesn't need to clone C# feature by feature... He also underlines that there is no formal definition of "first class .NET language"... so telling if a language complies is very subjective.

There other two interesting elements in the post. First, it comes clear that for Microsoft making their compiler adhere to the C++ standard is not very relevant. Expected, but odd. Second, some of the discussion echoes what's debated in the Delphi community: Microsoft tries to add the latest .NET features to C++, while users claim they use it mostly for non-managed projects. The similarity ends here. In fact, differently from C++, Delphi for .NET genaretes fully managed code which is backward compatible with the Win32 counterpart, something you can hardly obtain with MSFT tools and a very good reason for Borland to keep investing on the .NET side of Delphi.

Finally, on a related issue that was surfaced in the newsgroups, Nick and Rudy clear out some of the myths surrounding namespaces in Delphi. I already said many times I do like the Delphi implementation, which let's you tackle a new problem without changing the way you write the code. It is true that the same "uses" statement means slightly different things in Delphi Win32 and Delphi .NET, but the same could be said for the Free call, TObject, and many other elements of the language. Again, I really like the way it is.



Delphi .NET Language: First Class, NameSpaces, and More 

I'd quote:

"To me it makes perfect sense for VC++ to be the 
industry's best native Windows tool and to play 
in .NET scenarios that are important to our 
customers (e.g., interop with native code)."

"I agree in principle that job #1 for VC++ is to 
provide a great experience for native development."

"It takes a bit of a mental shift, but it's 
important that folks realize that the native and 
managed platforms are complementary, not 
competitive.  It's not a matter of replacing one 
with the other, it's a matter of using each where it 
makes sense."

Just replace "VC++" with "Delphi" <G>

Once more, IMHO Borland/DevCo. tries to go after teh 
VB/ASP guy instead the one "between low-end RAD and 
C++". I guess most of their users were the ones 
thinking "VB is not enough" and "C++ perhaps is a 
bit too much". But they keep on to try to be 
appealing to the VB guys...
Comment by Luigi D. Sandon on October 16, 19:11

Delphi .NET Language: First Class, NameSpaces, and More 

This is probably what you meant, Marco, but I think
what you attribute to Steve could be more clearly

I think a more accurate summary of Steve's comments on
standards compliance would be, "...making their
compiler adhere to 100% of every rule, implication,
and subtlety of the C++ standard is not as useful to
their customers as, for example, IDE features like

Anyway, thanks very much for your comments; I've
linked them from my post.
Comment by Craig Stuntz [http://blogs.teamb.com/craigstuntz] on October 16, 19:54

Delphi .NET Language: First Class, NameSpaces, and More 

>>First, it comes clear that for Microsoft making 
their compiler adhere to the C++ standard is not very 

Marco, I hope I didn't give this impression because 
it is definitely not true.  My point was that the 
VC++ compiler's standards conformance is already 
among the industry's best (somewhere around 98% last 
time I checked), and I'm not convinced of the 
business value in pushing for the last couple of 
percent to become THE most conforming compiler if 
this work is done at the expense of other work we 
could do that might have a great impact on customers' 
Comment by Steve Teixeira [http://blogs.msdn.com/texblog] on October 17, 00:22

Delphi .NET Language: First Class, NameSpaces, and More 

Steve (and Craig),

not having read the two threads in full, I guess I got
a wrong impression. My fault. I stand corrected (and
thanks a lot for posting).

I still think standard conformance is important and
the more the better, even at the expense of other
wiz-bang features. On the other hand I know this is
not a great selling point, so I fully understand.
Comment by Marco Cantù [http://www.marcocantu.com] on October 17, 16:42

Delphi .NET Language: First Class, NameSpaces, and More 

>>I still think standard conformance is important and
the more the better, even at the expense of other
wiz-bang features.<<

At the risk of putting too fine a point on this, this 
is really the issue I was getting at.  I can't argue 
with you that "the more [conformance] the better" is 
not a good thing -- of course more conformance is 
better.  However, if you're running a software 
product as a business the equation is not that 
simple.  If I'm faced with the real choice of 
delivering the last couple of percent of standard 
conformance (which will affect maybe 1% of our 
customers, estimating optimistically) or using that 
staff to build a feature that will meaningfully 
improve the productivity of all or most of our 
customers, I will choose the latter every time.  I 
will also point out that I have the luxury of taking 
this stand only because our standards conformance is 
so high today.
Comment by Steve Teixeira [http://blogs.msdn.com/texblog] on October 17, 19:48

Post Your Comment

Click here for posting your feedback to this blog.

There are currently 0 pending (unapproved) messages.