After being a bit disappointed about the registration process of Chrome the last time I tried it, the nice folks at RemObjects provided me with the latest beta of Chrome 1.5 (thanks to Marc Hoffman). One thing upfront: the registration wizard which popped up when starting the first Chrome project has been removed. That’s great news!
As already noted in the previous Chrome posting, I’m a big fan of the Object Pascal syntax. I think it’s to the point and looks well structured. One might argue that its wordiness is a bit too much, using keywords like ‘begin’ and ‘end’ instead of curly brackets and so on. I disagree with that. In my opinion, that’s one of the pros of Object Pascal code. Reading Object Pascal code is much like reading English text. It’s so easy to read and self-explaining like no other language I’m aware of, except Python maybe.
But the syntax of Chrome isn’t the thing I was most interested in. If it were the syntax alone, I could just use Delphi for .NET which has a similar syntax and has been around for quite a while now. No, my main interest lay in trying out a few cool language features and simplifications, something I’ve been waiting for in mainstream languages for a long time now.
Such a great feature is the concept of Class Contracts. Class Contracts help in creating less error-prone code by letting you use pre-, post-conditions and invariants. I still wonder why C# doesn’t have something similar. In my opinion, their potential is highly underestimated. They’re like automated tests directly built-in into your code and executed automatically when playing with Debug builds. Chrome seems to be the first mainstream targeting language which has them on board without a third-party extension (there are a few implementations for Java if I recall correctly).
There are more nice features, like the
async keyword which makes asynchronous calls a one-liner, implicit properties, set support, something I’m used to from Delphi and that’s really missing in C# and so on. For a complete list, I recommend to head over to the Chromes features list. There are tons of features which result in writing less and more concise code. Besides the features, another nice fact of Chrome is its up-to-dateness. It’s way ahead of Delphi and on par with C#. Whereas .NET 2.0 support is already available for Chrome (Generics, partial classes, nullable types and so on), users of Delphi need to wait at least until next year.
Don’t get me wrong, I don’t want to dismiss Delphi for .NET here. It has its strong points as well. For example, Delphi has the VCL for .NET, (Visual Component Library), a nice wrapper around the .NET API which helps a lot when porting Delphi Win32 applications to .NET. Furthermore, Delphi has a strong and helpful community, something Chrome doesn’t have yet in the same way as far as I know.
To summarize, if you’re using .NET, like the Object Pascal syntax and are interested in or missing some of the features I talked about, Chrome is definitively a worthy alternative to languages such as Delphi, C# or VB.NET.
Help us improve this page!
What problem are you trying to solve?