blog

Chrome Delivers    Apr 17, 2005 03:59

At the Wednesday night Delphi User Group meeting, Alessandro Federici was kind enough to show RemObject's new dotNET language Chrome. Up until now, I've been watching Chrome from afar and deferring any kind of serious consideration.

But after seeing it on Wednesday night, I must say that I really, really like Chrome. What I like about Chrome is all the new language features. Some of it could be dismissed as syntactic sugar, but I like syntactic sugar. I think dismissing incremental evolutionary changes in Object Pascal is foolish. Give me nice, readable language constructs and I'll use them. Extending the language so it is more concise and expressive is a good thing.

One language feature which is really nice is the Design By Contract stuff. This is extremely powerful and very useful. Public invariants at the class level is fantastic. Ensure and Requires code blocks are very powerful. Another feature is the threading support in the language; async and locked are very cool. If your interested in those features, visit their website or newsgroups to find out more.

If you're a Delphi developer, Chrome has significant advantages over C#. Beyond its familiar syntax, one big feature is that Chrome supports virtual class methods. This makes doing any kind of factory pattern implementation much more straight forward.

If you want to use the .NET platform and are trying to decide between Delphi for .NET and Chrome, I can say without a doubt that Chrome is a better choice. Chrome is targetted squarely at the .NET platform and has no legacy baggage. This means it has the unincumbered flexibility to add new language constructs and do things like support namespaces properly. Chrome is object pascal done right for .NET. It's as simple as that.

You really do see how .NET is a development platform by considering Chrome. This is because Chrome supports Mono and CF. It has a higher degree of likelihood of supporting the CF designers than Delphi for .NET. Delphi for .NET is a Win32 only solution and to me, beyond ASP.NET provides no significant advantage over Delphi VCL/Win32 development. Even for ASP.NET development Delphi for .NET is hindered because the compiler isn't freely distributable, therefore you can't have Delphi code in your page. Chrome has none of these shortcomings.

One may argue that VCL for .NET is a reason to use Delphi for .NET and I suppose it is. However, I see .NET as a different development platform with different strengths and weaknesses compared to Win32. VCL was designed to address the weaknesses of Win32 and IMO is still the best library for Win32. FMPOV, porting an application to a new platform is typically less appealing than integration/interop or a full bore reimplementation. This is why VCL.NET doesn't really appeal to me.

Borland seems to be in denial; they want Chrome to go away. However it is foolish for them to want this, Chrome is a reality and a great choice for pascal programmers doing .NET development. IMO, it is in Borland's best interest to act like Chrome is their friend and to encourage RemObjects to integrate Chrome into BDS. Chrome in BDS would help Borland, not hurt them. It provides BDS customers with another choice, and levels the playing field with Visual Studio. Now if Borland could get BDS as performant and stable...but that is another topic. Even if Borland doesn't embrace Chrome, they will likely benefit from Chrome's existence since it is another incentive for the Visual Studio guys to decouple the CF designers from C# and VB.NET.

The bottom line is that if you are a Delphi developer interested in .NET, Chrome is worth serious consideration. I have enormous respect for what the RemObjects guys have done. Chrome Delivers.

Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.
Security Code: