October 16, 2006
Delphi .NET Language: First Class, NameSpaces, and More
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.
5 Comments
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 expressed. 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 Intellisense." 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 relevant.<< 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' lives.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.


Delphi .NET Language: First Class, NameSpaces, and More
Comment by Luigi D. Sandon on October 16, 19:11