I am seriously worried! Wake up call!
I perhaps should be worried about peace on earth, financial crisis, cost of energy, climate changes... and indeed I am... but thats not whats on my mind right now.
Whats on my mind is that Im seriously worried about the future of my beloved programming language Delphi. Since 1995, I have used Delphi extensively. Since 1998 I have contributed to the Delphi community via various projects. Since many years I have been a Borland/CodeGear Technology Partner. In other words, I have been living Delphi, breathing Delphi and dreaming Delphi... (sort of...
).
I have been following Borlands rollercoaster ride with Delphi being the rising language, setting the standards for how to program, thru the very, for Delphi and the community, unfortunate (lets call a spade a spade... stupid) decisions that Borland have made over the years. The constant uncertainty about the direction of Delphi. The rise of cool technology which gets to some level of adoption, after which its being dismissed from one day to the next etc. It certainly have been a ride where one have had to have a certain stamina and to some extent, naivity and optimism to stay on board.
After these initial mind travels, I think its in place to wish RemObjects congratulations with their agreement with CodeGear about the new CodeGear/RemObjects joint project with codename Prism. What is Prism? Its also called Chrome and later renamed to Oxygene. Its an Object Pascal variation designed from ground up for the .Net platform. It contains alot of cool features, not found in Delphi today. Because its close to being a 1st citizen development language on the .Net platform (programming language wise I would consider C# the only true 1st citizen due to the direct ownership and management by Microsoft that 'owns' the .Net platform), its also able to integrate with all the new cool features of the .Net platform... nearly anyway. Its using Visual Studio 2008 as the IDE. Actually I think its really something of an impressive feat by the RemObjects guys to lift this project to the level it has reached today.
Hence, despite RemObjects and C4D's rivalery on other areas, I clearly recognize the technical merits of their product Oxygene.
So all that aside, get to the point old man!
What have historically made Delphi a development tool of choise (the list may not be complete, add your own reasons)?
- Fast one pass native code compiler
- Good debugger
- Integrated debugger, editor, compiler and designer (RAD)
- Good structured language
- Good backwards compatibility between releases
- Generally well designed control and component framework (Visual Control Library - VCL and RTL).
- Good price point
- Very good community support
- Not really any other development environments out there with the same featureset and usability.
In addition, slightly later in history, further reasons made it compelling to use Delphi:
- One source Linux support via the product called Kylix.
- One source .Net support via the product called Delphi/.Net.
- One source Win32 support via the product called Delphi/Win32.
Hence people started out with Delphi on the Win32 platform and some eyed an oppertunity to move their applications or components to other platforms as they were made available. Even today some people use Kylix as the development tool to delivery their applications to the Linux platform, many years after Borland made yet another stupid (spade=spade) move.... to discontinue the Kylix project.
Later Java and specially Visual Studio.Net have made serious ripples in the RAD development waters, blurring the originally apparent advantages and image of Delphi. Both have gained alot bigger market shares in the corporate environments than Delphi ever had. Specially Java has been able to (to some extent) replace existing mainframe oriented programming paradigms.
On the desktop, new requirements related to graphics, 3D, animations and the user experience are constantly rising. These are areas where specially Adobe's Flex and Flash RIA solutions have gained a very strong foothold. A foothold I doubt even Microsoft will be able to seriously dent. JavaFX, Silverlight and WPF are technologies also competing in that area. And our beloved Delphi have very little ammunition to provide there, except for relatively disconnected 3rdparty component providers trying to provide some of that functionality in the Delphi environment.
So to sum up the situation.. Delphi has lost foothold in the Win32 desktop space. It has no foothold in the Linux desktop space. It has no foothold in the Apple desktop space. It also have no foothold in any mobile spaces. Further it has lost whatever foothold in the server arena, where it has never been really really strong, partly due to conservatism and later 'Noone is shot if a project fails when one have chosen IBM, SUN or MS for the platform/development tools'.
So whats left? Mostly small developers who still have the freedom to choose according to their hearts rather than their wallets or corporate policies.
If corporates want to develop new projects for the MS platform, what will they choose? C# is most likely the answer.
Will corporates choose to develop native Win32/Win64 applications for new projects if they know those are going to reside on the MS platform only? Most will probably not. They will choose to use .Net due to the hype and the maturity of the platform.
Hence Delphi's iceflake is really melting rapidly from all sides. And that sentence is the trigger for my now almost complete loss of faith in the Delphi environment as a future proof platform.
CodeGear may have chosen a superiour compiler for .Net by hooking up with RemObjects, but they have also ensured that all existing projects and components that have already been made available for Delphi.Net on the .Net platform now see no future with Delphi. If they want to exist on the .Net platform, they only have the choise to use Prism/Visual Studio.Net ... or C#/Visual Studio.Net. The safe bet is to use C# as it, without doubt, will be the most up to date development language for the .Net platform for as long as MS decides that the .Net platform have a life.
Net result is thus that existing Delphi developers, who have played on the horse of cross platform support using single source, now have to choose to create multiple source trees, or simply to go where the cake is bigger and the current new technology emerges from. And thats not in the native Delphi world.
I have said it for years... Delphi's absolutely biggest advantage was the feasibility of RAD cross platform deployment based on single source, and the originally very vast developer and 3rdparty vendor community supporting the product.
CodeGear have essentially chosen to cut the legs off Delphi or put differently, to put a flame torch to the ice flake on which Delphi stands.
Not providing single source, multi platform support, equals dropping the one single feature and unique sales point, that made Delphi stand out these days, and that could make small/medium sized corporations think twice before jumping in bed with C#/VS.Net or Java.
Its unfortunately a very depressing outcome, and not so full of optimism and joy, as many previous blogs about CodeGear, that I have made.
Cross platform, single source .... cross platform, single source .... cross platform, single source .... cross platform, single source .... cross platform, single source!
THAT WAS YOUR UNIQUE SELLING POINT - EMBARCADERO/CODEGEAR!
/Kim Madsen