According to Justin James, .NET and Visual C++ developers should check out Embarcadero's Delphi 2010 -- as long as they don't mind learning a new system, a new language, and a new way of doing things.
Embarcadero Technologies recently released Delphi 2010. Embarcadero provided me with a review copy of Delphi 2010 and, after a bit of experimentation on my own, I spent some time with Embarcadero's Mike Rozlog, who took me on a whirlwind tour of the feature set. Overall, I like what I saw.
I loved Delphi version 1 when I first used it nearly 15 years ago -- perhaps it was because Pascal was the first language I used that I really liked. Sitting down with Delphi 2010, the old memory banks fired up, and after about 15 minutes, I remembered enough Pascal to hobble along. What really struck me about the Delphi system is that as an IDE it is extraordinarily productive. Its feature set felt very much like Visual Studio 2008 with ReSharper added on top, which is a great experience.IDE Insight Even better, the good folks at Embarcadero came up with a brilliant idea called IDE Insight. It is like IntelliSense (or the Windows Start Menu search system) is applied to the entire IDE. Just press [F6] and start typing what you want to do, and a list of choices comes up and gets narrower as you type. For example, if you're editing a form, press [F6] and start typing TButton, and you will see the TButton class appear in the list. If you hit [Enter], then bang! a new button gets dropped onto your form. Want to add a new form to your project? Press [F6] again and type TForm as the text (Figure A). In a code editor, you can do all sorts of cool things with IDE Insight. For example, [F6] + for will drop a for loop right in (Figure B). I know this sounds like such a minor item, but it really does speed things up. Developers who prefer to not take their hands off of the keyboard will really appreciate the keyboard-driven productivity of IDE Insight. Figure A
Using IDE Insight to create a form Figure B
Using IDE Insight to start a for loopDataSnap Another item that I really like is DataSnap, which is similar to WCF in concept, but in execution, it feels much smoother. WCF (as of this time) still requires an awful lot of manual plumbing; DataSnap is a more mature technology with the tools in place to rapidly create a service or a consumer. DataSnap feels much more polished than WCF and produces JSON output, which means that non-Delphi sources can consume it as well. (Figure C) Figure C
Creating a new DataSnap ServerSupport
Delphi 2010 supports all sorts of new goodies, including multi-touch and gestures. By beating Visual Studio 2010 to market by nearly six months (assuming Microsoft hits its March 22, 2010 RTM for Visual Studio 2010), Delphi developers get the chance to be first to market with apps that use the "latest and greatest." This is great news for developers targeting kiosks, tablet PCs, and other scenarios that use touch interfaces. The touch system is designed to degrade gracefully on operating systems that do not support it, too.Debugging Delphi 2010 has good tools for debugging multithreaded applications, which is an increasingly important item; it shows each running thread and provides the ability to freeze and thaw each thread, as well as view the source for a thread and switch to a thread in debug mode. (Figure D) Figure D
Importing a WSDL with Delphi 2010Web development
I found Web development in Delphi 2010 to be a touch frustrating on my Windows 7 machine. Windows 7 applies a strict permissions model to IIS, and the IIS 7.X management tool makes you work a bit too hard to do what needs to be done to make a Delphi Web app run (Embarcadero uses the CGI model). Once I jumped through the hurdles, it made sense. I feel confident that these difficulties will be resolved soon; Mike took copious notes while I walked him through how I solved the problem.Comparisons
I'm sure that a lot of readers are probably looking for a comparison to other IDEs. Comparisons are tempting, but there is also a huge danger when comparing, say, Visual Studio 2008 to Delphi 2010, which is confusing the languages, the libraries, and the IDEs. So, I'll be as precise and specific as I can.
When I was evaluating Delphi 2010, there was never a point when I wondered why such-and-such feature was omitted. And as already mentioned, the IDE Insight system blew my mind. Even other Delphi developers are going to take some time getting used to it; watching Mike do his demo, he kept forgetting about it. But as I followed along, I found myself constantly waiting for him to catch up because I was using it and he was not. For someone in a heads-down mode, IDE Insight rocks.
When I was comparing Delphi 2010 to Visual Studio 2008, I found a massive difference of opinion regarding development. Delphi is a tool for writing native applications, and as a result, you are expected to work with native APIs. .NET development encapsulates most of the functionality of the Windows API (and other native APIs like GDI+) into the massive .NET Framework, providing easy access and consistency.
If you really like low-level access to the system and a "nothing but what I specify" approach to what ends up being compiled into your code, you will love Delphi's attitude; but if you do not feel comfortable with the native APIs, you will probably be frustrated by Delphi.
I admit that I have become very, very spoiled by the .NET Framework, and it was a tough transition for me to work on even a simple application in Delphi because so much of what I expect to be in the standard library wasn't there. But if I were a C++ or a VB6 developer, I would feel right at home. This is not a criticism of Delphi in the slightest; some people love working like this, and it is merely a matter of personal opinion.Pascal
The other thing that struck me is that the Pascal language that I loved years ago felt very strange to me. When I first learned Pascal, I was coming from COBOL and BASIC, and Pascal felt very fluid and smooth. But now, Pascal feels a bit odd to me, like having to declare function prototypes before actually implementing the function. Again, this is 100% a matter of opinion, and there is nothing to criticize or applaud here. But be aware, you probably are not going to be able to just pick up a demo copy of Delphi 2010 coming from a VB.NET, C#, or Java background, play around with it for a few hours, and feel comfortable or be terribly effective. That said, you can't exactly go from Java and Eclipse to C# and Visual Studio and be effective either, despite the surface similarities between language syntaxes and frameworks.
If you want to do Windows development, and you want to work with native code in a native style, I think that Delphi 2010 is a very productive tool. It combines a lot that really saves time (such as DataSnap and IDE Insight) with the power and flexibility of native code. If you need support for certain functionality (especially touch-related items), it is the only shipping product on the market that does these things.
Every time I work with the Embarcadero team, I feel like they are writing the tools that they would love to use; they really are "developers' developers," and they understand the development process very well and implement it as tools quite nicely.
If you don't mind learning a new system, a new language, and a new way of doing things, Delphi 2010 is worth a long look for .NET and Visual C++ developers.
J.JaDisclosure of Justin's industry affiliations: Justin James has a contract with Spiceworks to write product buying guides. He is also under contract to OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and other articles.
---------------------------------------------------------------------------------------Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!