Any software programmer treats major releases of his or her programming environment with enthusiasm and trepidation at the same time. Within the last fortnight, Embarcadero released Delphi 2009, a nicely-wrapped enticement to leave Delphi 7 behind and take up the 21st-century's best development language.
I downloaded the 14-day trial and let it sit there for a week and a half, blaming work and my computer kerfuffle of the last week as an excuse NOT to peek under the wrapping. I knew that I did NOT want to 'want' the upgrade. Expenses are a little tight right now, and buying the upgrade and then the obligatory upgrade to all my purchased third-party libraries would be expensive. Thousands of dollars. But better, faster, prettier and possibly more capable beckoned.
The update this year is centred around the internationalization aspects of Delphi. The first Unicode-smart version of the language has been long lusted after by many, many programmers. Delphi is very popular all over the world, save for the place it was invented, America. (I lump the USA and Canada in this case). Unfortunately for me, as a raison d'etre for an upgrade, I'm uninterested. Closest I get to a foreign language is my Point of Sale software running a comic book shop out in Atlantic Canada (Halifax to be precise).
Other new features were put on display over the two weeks preceding the release of Delphi 2009. Nothing important to me, wasn't already available to venerable old v7, thanks to my copious collection of third-party libraries, acquired over the years from literally every corner of the globe. I knew all of this going into testing out the trial. But I had heard rumours.
They were going to let users have the old classic undocked interface back!
THAT's been my biggest reason for turning thumbs down to earlier incarnations of the studio version of Delphi, which first came out in 2005. I HATE the Microsoft Visual Studio-inspired multi-document interface. I HATE it, I HATE it, I REALLY HATE it! If I wasn't afraid of Angela or AJ stumbling on this blog, I'd have a slightly stronger way of saying I %#*(%_)#*( HATE having everything showing up in one window, one form or code editing panel at a time. Afterall, I bought multiple monitors for the specific purpose of having many, many windows open at the same time, copying things from one to the other, using line of sight. I want the form right there beside my code, NOT REPLACING the window with the code. I can hover the mouse over controls and get their names, important when I might have two dozen forms and thousands of controls strewn all over them. I HATE the interface, I HATE the interface, I REALLY HATE the interface!
But I had hope. Hope that was dashed seconds after I clicked the option to change to the "Classic Undocked" desktop. Liars, Liars, LIARS! Sure, I could spread the supporting pick lists, the Tool Palette, the Class Explorer, etc. and move them to the second monitor. But guess what I couldn't do? That's right, I STILL couldn't separate form designer from code. And I couldn't float the separate forms. Aarrrgh!!!!!
With MDI still a reality until Microsoft abandons it with some future release of Visual Studio (rumoured to be a fact in the next release), I suspect Embarcadero's CodeGear arm to stick to the concept well after it's Best-before date. But maybe, just maybe, they'll give me the true SDI interface from my Delphi 7 as an option. I know OTHERS like MDI and I know MOST people think the true stumbling block to acceptance of MDI is the tool palette. I could care less. I think the 2009 Palette is okay. It's useable. I prefer the Delphi 7 format, but I even fool around with the default format of that. So, that's just smoke. The CONCEPT of the MDI is what's stopping me cold.
There were other little things that I didn't like. For example, after setting up a menu in an application, in Delphi 7, I can click on the menu as if it was live. Clicking on a live item then takes me to the code behind it. In Delphi 2009 (and for all I know, every version since 8), you have to open the menu editor. It's a little thing, but it's annoying. Some of the default options seem anti-Delphi until you turn them back to Delphi or Classic Delphi.
The database end of things moves along, without tools for moving people away from the deprecated Borland Database Engine and into spiffier stuff. Bluntly, as much as I detest MDI (Did I mention how MUCH I HATE it?), I'd probably make the big jump if there was something that was drop-in and replaceable for the current BDE data connections. I have talked with David Intersimone of Embarcadero Codegear about this. He seems to think it's easy, although he hasn't replaced 400 plus connections like I am facing in my major application. I also addressed the issue with Gerrit Beuze of Modelmaker fame to see if he might concoct a tool. He thinks its easy to write too and suggests *I* do it! Maybe if they got to know me, they wouldn't type such silly things!
Given the previous litany of outrage, you'd think I've lost faith in Embacadero and it's Codegear brand. Couldn't be farther from the truth. If you are designing a one-form application and can write code form-unseen, then this release is REAL GOOD. Lots of little helpers. The overall help system, a burr for the last three years, has improved greatly. The install took me less than an hour (that report turned out to be factual). That's an improvement of ohhhh, say two hours over the other studio versions I trialed. The guides when laying out forms is as good as it gets in the programming business. It compiles quickly and lays out compile errors in an intelligent way. The code it produces isn't assembly-language lean, but it shames the Microsoft Visual Languages code's bloated size.
I would recommend ANY new programmer to pick up Delphi. Being self-taught, I can attest that you can make a decent enough living with the language. On the other hand, if you are a Delphi 7 programmer thinking about making the move out of your comfort zone, I have a different reply.
In the immortal words of the leather-lunged fan in the bleachers who has just seen his beloved baseball team eliminated from further contention, "Wait'll Next Year!!!!"