I know someone who has a one-man company developing applications in Delphi and Pascal. He is running into problems in handling the workload. Thus, he needs to find an employee.
Having trouble finding people, he said his company is not attractive for graduated students. One of the reasons was that he uses a platform that is not that popular to develop in, as alot of development is done in .NET or Java.
So I asked, ‘then why not switch to .NET or Java?’
His answer was that he did not want to have a Microsoft dependency. MS could change the .NET framework, breaking his applications. Java was also not an option because of bad UI’s.
As Delphi targets Win32, it seems very attractive if you want speed/portability. Also there is no need for a virtual machine.
Are frameworks a ‘threat’ to applications developers? However, I do not know much of delphi, but because of its high-level nature, is it not a framework also?
The problem is of course that to get significant development performance in either java or .net, he needs to invest a lot of time. That is exactly what is lacking. It is a typical lock-in situation. It is not as dead-end as is earlier suggested, as FreePascal is slowly getting to the point where it could replace Delphi, and is 64-bit and multi-platform, but still difficult.
With significant time invested in Delphi and VCL, he probably is capable of turning out applications very fast now. Getting to that same point with java or .net, understanding the idioms and patterns to use, is for a one-man business simply too expensive.
Microsoft and Sun make developers life hell with breaking changes, and also with really bad advice. For Sun you only have to think back to how we were supposed to develop J2EE apps and Microsoft leaves an easy-to-follow trace of tried-and-abandoned technologies.
[response to comment] I don’t have a problem recommending a Delphi application to larger companies. Current development style in java or .net is unlikely to have a longer lifespan than Delphi. Starting new application development in it I probably wouldn’t do. I would also take a good look at the team composition, to see if it can handle the expected lifespan of the application, but that goes for all developments environments