Somebody just mentioned in b.p.delphi.non-tech that Delphi featured on Digg, or actually some page is featured on Digg that mentions Delphi:
Ghosts in the Machine: 12 Coding Languages That Never Took Off.
I don't know about the other languages mentioned there - I haven't even heard of some of them - but there was one particular sentence that I took offense to:
The real Delphi killer was the advent of Visual Basic 6. Under Visual Basic versions 4 and 5, there were still a lot of things Delphi could do better and easier than under Visual Basic.
Now, as some might know, in my last job I was using Delphi7 and VB6 in parallel for several years and I think I have become quite proficient in both. So I think I can form a sound opinion on that matter:
There is not much that can be done better in VB6 than or even as good as in Delphi 3(!). And Delphi 2007 is definitely an improvement over all earlier versions.
Also VB6 is dead and I say: Good riddance.
Just a few things VB6 could not do but Delphi can:
-
DLLs: VB6 could only create COM servers (Delphi - of course - can also create COM servers)
-
true OO programming: VB6 did not have any inheritance
-
Services: VB6 could only create programs that could be "turned into a service" by using an external program as a wrapper
-
Exception handling: VB6 knew only the On Error Goto (or worse: On Error Resume) statement. There is no decent error handling possible with this syntax. In addition a VB6 program just crashed, losing all data, if an unhandled error occurs, while a Delphi program will display an error message and usually still allow you to save your data afterwards
Add to that a crap debugger, an annoying IDE and a language that is essentially a glorified scripting language and you get VB6.
I have probably already forgotten a lot of the pain since it has been a happy 6 months without touching VB. (No, my employer didn't see the light, I switched to a different job.)
There might be several reasons why Delphi has been constantly losing market share during the last 10 years, but it was definitely not because VB6 was better.