Delphi's Product Manager, Nick Hodges, has started a very relevant discussion asking Delphi users: why aren't you upgrading? The same discussion is happening also on the non-tech newsgroup. First of all, I think this is a very important move: listen to users, including potential and past users. And show you are listening. Second, most of the posts have been relevant and sincere, more than the average for a similar topic. If you haven't done so, go to Nick's blog or the above newsgroup thread and add your voice.
I have to say that I agree with many reasons expressed. While I mostly use Delphi 2006, I have a copy of Delphi 7 installed for programs I had problems porting over, mostly because of third party components or web services-related troubles. On the other hand, I see in many replies the echo of myths that I feel relevant to try to rectify. But let's start with the positive first. Here is a list of reasons not to upgrade I find relevant (even if they don't all apply to me):
- "The Help file provides less information". Yes, this is very annoying. Most links among pages are gone (including some obvious propetrty type to type description links). However, keep in mind that if you disable portions of the help (like C++ and .NET areas), you won't have to pick Win32 every now and then. I wonder if the process of adapting the help to users needs should not be improved, beside fixing the relevant content problems. If my project is Delphi for Win32, why in the world would I want to know about C++ and/or .NET topics when pressing F1?
- "Lack of upgrades for some third party components", including those originally in the box like Quick Reports. Upgrading from old versions of Indy can cause a lot of changes in your code, as well. For many third party components, you have to pay for the upgrade... and maybe you get something new and not fully compatible.
- "BDS reputation, particularly the IDE stability and memory consumption, is awful". And for some good reasons, even if patch after patch it is now fairly good... but it takes much less effort to throw away your reputation than it takes to build it. Two attempts in a row (D8, D2005) and things get out of control.
- "Lack of native 64-bit compiler". Although I wonder how many people are running Win64 these days, it is a relevant issue with a too vague commitment in the roadmap. Anyway, I'd really love a 64-bit compiler from DevCo: Kylix 64 (most of my servers, which would benefit of 64-bit addressing, run on Linux).
- "My development is in .Net 2.0" (not mine... but fully understandable).
- "If you follow too closely behind Microsoft, your customer base will continue to erode" (not stribly an upgrade issue, but fully agreed: either leapfrog them, or take a different road!)
- "I'm still waiting for Kylix4": me too! On the same topic: "True cross-platfom compiler."
- "I do not like the fact that the new Delphi IDE requires/uses dotnet."... I wonder if this decision cannot be reversed, but it it probably too late now.
- "Unicode for ex. is covered by freeware 3rd party libraries"... while the VCL doesn't support it (if not at the database level in Delphi 2006). A Unicode VCL would be a great reason to upgrade for most European and Far East developers, at least.
- "I will miss CodeRush."
- "Well written textbooks and reference book are absolutely required"... relevant for my perspective!
- "Because D7 is the best product that Borland ever made, after Turbo Pascal 7 of course." Good point!
- ".NET framework. Most of the Delphi users never needed this framework anyway." Interesting point of view... I partially second it.
- "Price is definitely an issue"... in particular outside of the US, where Delphi is mostly sold.
- "I would like to see Delphi not only as a language and IDE but more like a platform of its own"... very interesting appraoch.
- "No new Object Relational Mapping tool for Win32 in the product" and supported by the IDE... unelss you install InstantObjects. ECO is for .Net only, what about promoting a Win32 framework as well? (unless you want to build another one, which seems a waste of time to me)
- "A subscription based model with shorter release cycles", probably not a reason to upgrade... but a way to make more people upgrade, if the price is not too high.
On the other hand, this is a list of myths I wish to address (although I don't have time to cover each of them in details):
- "Delphi 6 is so good". The IDE was certainly very stable, but the compiler has a couple of relevent bugs. String concatenation is broken in Delphi 6, for large strings it takes about 100-times Delphi 5 and or 7. Null variant operations, even if partially fixed in the Update 2, are troublesome and have been fixed in later versions.
- "There is nothing new in Delphi 2006 for Win32 programmers". I'm sorry, I don't buy this. There is a lot of new stuff. There are many new language features, relevant improvements in the RTL and core VCL libraries, not the mention the IDE (editor, form designer, much improved debugger...). There might not be enough new features for some users, for sure. But my impression is that many new features are not well know. Reading my Delphi 2006 free ebook might benefit a few...
- On a similar tone: "Lack of new modern language features (try-catch-finally, generics)". Yes, it it lacking those, but Delphi 6/7 are lacking also class data, for-in, static methods, nested types, records with methods and operator overloading... so I'm not sure this is a real reason not to upgrade. For example, I'm sure people would have said "Delphi lacks operators overloading" if this was the case. Now the Win32 language has the feature and you here "nothing new in the compiler". Taking excuses?
- Again, someone mentions "Improved compiler optimizations for generating faster code" failing to notice that inline do exactly that. It is the most relevant optimization since Delphi 2, as far as I know.
- "BDS 2006 for Win32 doesn't produce executables that remarkably different from Delphi 7". This is true only if you install a better memory manager than the native one in Delphi 7!
- "The old IDE was extremely productive"... and it certainly takes time to get used to the new one, but Live Templates or the new Palette, after you've got used to them, can make you much faster. Getting used to a new system takes a while, I hope people are not rejecting the idea altogether. I really don't want the old Component Palette back, it was almost impossible to find the components there. Someone said "Bring back the OLD IDE"... I'd say, "no please!".
- "Lean IDE": just remove from BDS the stuff you don't use/need and it becomes way faster to start, way more stable (in particular without Together), and also takes less memory. Truly, the Turbo versions could have been more "aggressive" on this side, cutting features but providing a more responsive IDE. MAybe DevCo should provde a default installation/registry setting with a super-fast IDE, and then let users add/activate extra features at the cost of a slow-down. This will change the perception...
I hope this helps the positive discussion I've seen so far, and helps DevCo concentrate on both improving the product and telling the world how good it is! Because it is true recent versions of Delphi have now been shining in quality (quite the opposite!) but my perception is that there is also a lack of knowledge of the new features. This summer I gave a 4 days calss at a company. They were looking to advanced topics, but the class included a one day Delphi 2006 introduction (Win32 only). At the end of the day, they decided to upgrade...