Last night, we ran the RTM build of the latest Delphi Prism release.
Delphi Prism 18.104.22.1681 is the result of over a year of work from the team here at RemObjects, and marks the probably single biggest release we ever have done, since ‘Chrome 1.0″ shipped back in the spring of 2005.
The Road to a New Project System
The funny part is that the biggest new feature is one that most users will not notice, or take for granted – and that is a complete rewrite of the core IDE integration engine. You see, back when we first shipped the product, Visual Studio .NET 2003 was the latest version of Visual Studio, and the way to integrate with that was cold, hard C++. We didn’t like it, but we had no choice. We tried to implement large parts of our IDE smarts (code model and code completion, these sorts of things) in managed code, but the crucial parts that talked to Visual Studio, the parts that were the most difficult, were done in C++
With Visual Studio 2005 and later 2008, Microsoft introduced the option to create full project systems in managed code, but for one reason or another, we never made the switch. The thing was working, after all. and we had better things to do with our time, like adding new features.
With Visual Studio 2010 looming ahead, and with integration into MonoDevelop also starting to look like more of a possibility, we finally made the plunge last year, after the Spring 2009 release was out the door, and started serious work on the new project system. We did a lot of refactoring, to separate VS-specific code from generic code, with the goal to be able to share as much code as possible between IDEs, and have as little IE specific code for Visual Studio or MonoDevelop, as we could get away with.
This all progressed great, but as the August 2010 release date was approaching, we realized there was way too much work ahead of us, too many Ts to cross and Is to be dotted for us to deliver a quality release based on the new code, so we rowed back, and in a branch of our VSN repository combined the old “May 2009” IDE code base with the latest compiler, to ship the August release, “Delphi Prism 2010”. At the same time, work went on in the main trunk, on the new project system, which we are now shipping, half a year later after having waited for MonoDevelop 2.2.2 and Visual Studio 2010 to finalize.
So, the big feature for this release, as far as we are concerned, is that you don;t really see a difference between this release and the last, but that Delphi Prism is seamlessly integrated into two brand new IDEs: Visual Studio 2010 and MonoDevelop.
Visual Studio 2010
Along with Visual Studio comes of course a host of new features – i’m tempted to say ‘for free” when of course many of these have been a lot of work under the hood, for us. There’s support for the new Silverlight 4, better WPF support and – most importantly, the new .NET 4.0 runtime, which allowed us a lot of new and advanced compiler features, from Dynamic Types over Tuples and Big Integers to obscure (but cool) things such as generic co- and contra-variance.
There’s also things that truly do come for free with the new IDE, such as new new WPF based code editor (which is very nice to use and due to WPF’s smooth (and dare i say Mac-like) font rendering very easy on the eyes. There’s also the new Visual Studio debugger, which as been vastly improved in many areas, not the last of which the debugging of multi-threaded programs. The list goes on – just search for what’s new in VS2010, and the vast vast majority of what you’ll find will apply to the new Delphi Prism.
Of course Delphi Prism 2011 will install into an existing version of VS2010, or come with and install its own copy of the Visual Studio 2010 Shell, if you don’t own VS2010 yourself. (Delphi Prism 2011 will also still install with Visual Studio 2008, if present, but it won’t bring it’s own copy. If you need both VS2008 and VS2010 on a fresh install, you can install the August 2009 release, and then upgrade to the new version, to get both Shells)
But wait; Visual Studio is not where it ends. Delphi Prism 2011 also supports MonoDevelop 2.2, on both Windows and Mac OS X. When you run the Delphi 2011 installer, it will automatically detect MonoDevelop (if present) and offer to register with it, or offer to freshly install MonoDevelop 2.2.2 for you, if you don;t have it yet.
So you can choose to use either VS, MD or both IDEs, depending on your preference.
For the Mac, we have a separate distribution of MonoDevelop.app that includes Delphi Prism; this will be a .zip file on your ISO or DVD that you can simply unzip on your mac and copy to the Applications folder.
On both Windows and the Mac, Delphi Prism integration into MD will give you the full development experience that MD has to offer. This includes the Gtk# visual designer on Windows (the MonoDevelop guys don’t yet support that on the Mac, i’m afraid), integration with MonoTouch (if you own a copy) on the Mac, and so on.
Of course MonoDevelop as an IDE is still very young, so compared to Visual Studio there is still a lot of catching up that needs to be done, both on the IDE itself, and on the more advanced IDE features that Delphi Prism supports. Our goal for this release was to provide a basic set of functionality that allows you to start working and be productive in MD. Over time, we’ll work on feature parity with VS, bringing more of the advanced features (such as “Paste C# as Oxygene“, or the Oxfuscator integration) over.
We’ll also be working on adding support for Linux as third MonoDevelop platform to Delphi Prism.
Of course there’s a lot more to Delphi Prism 2011 than “just” two brand new IDEs. I finalized the official change log for this release a couple days back, and amazed to see that we have close to 400 bug fixes and minor improvements thru-out the product (and that does NOT even include any fixes and enhancements that happened witjhin the product cycle [such as, any “fix” related to VS2010 or MD support, which never shipped before]. that’s just fixes and improvements over the previous August 2009 release.
There’s also roughly 30 major new features (such as for example new Expression types, MacPack Integration, a cross-platform helper library for Mono) and 30 less major but noteworthy enhancements (such as enhanced functionality in Cirrus, compiler optimizations, framework multi-targetting or support for T4 template files).
The next release of Delphi Prism is already looming ahead, this fall alongside the new RAD Studio. Because the current release was such a major milestone (and is shipping such a vastly new codebase, for the core IDE integration), we’re planning for that next release to be a pure maintenance and bug-fix release only. To start with, our team here at RemObjects will take a week or two off to recover from the rush of getting such a major release out the door.
After that, we’re planing to get back to a regular cycle. We want to release weekly new beta releases (as we have done over most of the course of this past beta cycle), combined with monthly “stable” releases that focus on fixes and improvements in various areas of the product. The idea is that (if you join the beta program – and remember, every Delphi Prism customer is welcome to join, and we’d welcome your feedback), you have the choice of frequent latest builds, or regular “production level” builds, as we move from the current release towards the August 2010 one.
When can You Get it?
As mentioned at the beginning, the RTM build was signed off to the team at Embarcadero yesterday. The team in Scott’s Valle will go thru some final QA cycles and prepare for the distribution to customers. If all goes well, i’m told the new release should be in the hands of people within about a week, both as new public trial, and as free update to all customers with Software Assurance (you do have Software Assurance, right!?).
Even if i were to just link to the direct download, for this release you will need a new serial number, which you should receive from Embarcadero in time.
Thanx for reading, and i hope you’ll enjoy Delphi Prism 2011 as much (if not more ;) as we have enjoyed creating it. Let us know what you think, either here, via email, or on the ongoing beta program.