I was browsing Delphi tagged questions in stackoverflow yesterday, when I encountered this question. It’s all about generics in Delphi 2009. Whether they are actually usable. Here are a few clips from the answers :
I'm using generics extensively in Delphi 2009, and I can say it's not easy as you are often required to work around an ICE
All this trouble seems to be gone in Delphi 2010
Bottom line: if you want to use them, upgrade to 2010.
I have also personally mentioned before that the IDE just doesn’t seem to recognise the existence of generics (try any refactoring or code completion). So basically what we are saying is that if you bought Delphi 2009, and you want to use generics in any meaningful way, you need to fork out more money and get Delphi 2010.
Does anyone else find that disturbing? Let me give you a comparison. Let’s say you have just bought a Dell laptop. It cost about the same as Delphi 2009. The (fictional) Dell Longitude 2009. Among it’s many features, is built-in wifi. When you got the laptop, wifi kind of worked, but the laptop didn’t really recognise it had wifi, and you had to do a lot of manual stuff to get it working. When you did get it working, you noticed in some circumstances, it just refused to work, and in others it only kind of works. You complained to Dell, and they released update 2 and update 3 (some kind of bios update), which made things a lot better, and you were kind of happy. Less than a year later, Dell release the Longitude 2010. It looks like they’re not going to fix the existing wifi problems in the Longitude 2009, but if you have a 2009, they’ll give you a special price on a brand new 2010.
Would you buy Dell again? Would you not expect Dell to fix your Longitude 2009? And if they can’t or won’t, don’t you expect a refund?
I’m not singling out Embarcadero here, it is apparently industry practice. What other industry could get away with it though?
What worries me is that I have to go to my boss and ask to upgrade to Delphi 2010. I am lucky, that I work for a company that has no problems in giving us the latest tools, whatever the cost. And in the grand scheme of things, to even a small company, the price of Delphi is insignificant. However, my boss will definitely ask the question, What does Delphi 2010 give us? I can wax lyrical about increased IDE productivity, and improved RTTI, but at some point I’ll have to add the line. Well, we had a few problems with generics in D2009, but it’s all been sorted out in D2010. What kind of confidence does a line like that instil?
17 comments:
I am very upset, that generics don't work fluently in D2009. Since generics were the reason to buy D2009. I am sure that we have the same problem with D2010. The cool new features will only work fluently in the next release.
Conclusion: If you are looking forward to a new cool feature, wait until the next release. Then maybe it will work as expected.
Perhaps the answer is to leave certain features in beta until they are properly finalized. Therefore Delphi 2009 would have been released with generics still in beta. That way, expectations are lowered.
If a feature is not expected to work, don't release it! I could understand such a buggy release only if the product has continuos updates (not just 3 or 4)...
BTW Delphi 2010 should really be Dephi 2010 update 5!
Windows only kinda worked in Win3.11, was usable by Win95, but was only really reliable by WinXP.
Difficult to say how much is deliberate industry practice and how much is deciding it must go out the door so we can pay the rent.
If the "release betas, fix later" mantra is followed for the 64bit compiler and cross-platform support, these features might be usable in 2020. Hooray !
Bottom line : when Embarcadero annouce a new revolutionary feature for Delphi 200X, wait (at least) for Delphi 200X+1 if you want something usable.
'Bottom line : when Embarcadero announce a new revolutionary feature for Delphi 200X, wait (at least) for Delphi 200X+1 if you want something usable.'
Would it not be easier for Embarcadero to only release in 200X+1, thereby saving me the hassle? Or release it in 200X, but make crystal clear it is only a beta feature.
We, the consumers, are ultimately the ones to be blamed for the current state of affairs.
We will promptly buy a product that has new features. But think twice about buying an improved, more stable and mature product.
Take the case of Apple's Snow Leopard. I think it has significant under the hood improvements for a reasonable price (US$29).
And then look a Microsoft's failure with Vista. Microsoft delivered a much better looking (debatable) OS instead of delivering a much better OS.
We must demand new features shortly after quality and stability has been attained. Otherwise we will fall on the same trap.
That's been the BorCodeDero policy since at least Delphi 4. All important fixes to new features go to the next version.
I had to buy Delphi 2007 because the type library editor in 2006 was totally broken, and localization as well (it still didn't work in 2007).
And I had to buy 2006 because 2005 was not working at all.
That's why we didn't upgrade to 2009. We were waiting for fixes to Unicode, generics and new VCL controls.
The real problem is BorCodeDero refuses to switch to a two years release cycle as MS did.
It's clear that dev tools became too large to allow for a one year release cycle, although 64 bit looks to have a ten year release cycle. They're still using the "milk the cash cow every year as long as you can" approach, and customers are going to become tired of it.
> What other industry could get away with it though?
Most do.
Remember the CD100 from Philips, the first hi-fi CD player actually built? It had awful error correction, unprecise mechanics and a DAC that wasn't even on par with old-style records. Or Sony's MZ-1, the first MiniDisc portable: a clumsy device, the battery lasted only about 1 hour during recording, and the first version of the ATRAC codec was about as good as a 64k MP3.
All these inventions were revolutionary in a way. All of them were brought to perfection subsequent product releases.
I thought that was why they had trial periods for the software. If generics were THE reason to get 2009 I would assume that someone would have downloaded the trial and used it.
'I thought that was why they had trial periods for the software.'
First of all with Delphi 2009, you only had 14 days. This has now been addressed. Secondly, generics kind of works in those small test applications you run when reviewing something. It's when you start to really use it that certain things start to bug you.
'I thought that was why they had trial periods for the software.'
I was spoilt with MS Visual Studio, which was stable with every release from 2003 upwards. Was may fault to believe that other commercial IDEs are as good as ... but now I am a bit wiser and some money poorer.
Anonymous: I wrote one of the comments quoted in here. I understand your frustration, and it bugs me that they didn't fix everything with Update 3, but the problem isn't as general as you're making it out to be.
Generics was a *major* change to the way things work, and they had to write a bunch of new compiler logic to support it. And from what I've heard, it was added in a bit of a rush, later in the D2009 development cycle than it probably should have been. That was a mistake IMO, and under those conditions, it's to be expected that there would be bugs lurking in some corner cases.
I worked really hard during the 2010 beta to dig out as many of them as I could and report them to the Delphi team. They've got some great people working there, particularly a guy named Uwe Schuster who was very helpful in localizing some of the trickier glitches. Things are much, much better now.
Meanwhile, there are some new features to play around with, particularly the extended RTTI. I worked a lot in that to prepare my CodeRage presentation, and it looks pretty solid. Can't say much about the touch/gestures support, though. But I don't think any of the new stuff is anywhere near as flaky as generics were for 2009 RTM.
I don't blame CodeGear for not getting generics correct in 2009, many of the problems were not found until after it was used in the wild, and they did release several patches to get it somewhat functional. You can still use 2009 to use generics in most cases, and it will work fine. There are a few issues still remaining that were not patched that they instead put into 2010, along with many other enhancements.
At some point you have to cut over and focus development on the new versions...or they will never exist. This includes bug fixes. Also take into consideration the fact that they need to get Delphi back on the top of the development chain. I would rather them work on new functionality (cross platform, 64bit, touch, ect.) than spend extra resources fixing the initial release of the product.
Funny you should mention the Dell analogy. My brother had just that experience with a Dell laptop, right down to, "Oh, it's a known issue on that model, but we fixed it on later models." Well, it was the card slot, not the WiFi, but still...
FWIW, I did find D2009 generics useful, if fragile.
"Oh, it's a known issue on that model, but we fixed it on later models."
Ok, so maybe I'm naive! Let's put it this way, if it was my business, I wouldn't treat customers that way.
They do fix some bugs in updates etc. but some you find are fixed in the next release. So, I stopped upgrading. My last version of Delphi was Delphi 2006.
I decided to buy Delphi 2010 because it had generics that appeared to be working, and the IDE seemed faster. However, help is still dreadful. I think I'll buy upgrades when I think it's worth it (which may not be very often).
Post a Comment