views:

417

answers:

10

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?

+4  A: 

He's still dependant on Windows. Microsoft can, have (and likely will again) change Windows so it breaks more than a few existing applications. But that's life in the technology world; it's a constantly moving target.

But just as he compiles against one version of Delphi, he could easily pick one version of the .net framework or one version of java, Python+pygtk, etc and stick with it. It's possible to have multiple versions of frameworks installed for this very reason.

They are dependencies, but they're not difficult to meet. Their benefits far outweighs any deployment issues.

Oli
+8  A: 

I find it a weak reason to stay away from Microsoft. If Microsoft changes the .NET framework and it breaks applications, I'm pretty sure all hell will break loose. Also I don't quite agree that Java is not an option because if bad UI (I can't think of anything better than Eclipse as a counter example).

If all your friend know is Delphi, well, that would be a good reason. Frameworks are in no way a threat to app developers.

Otávio Décio
+3  A: 

IMHO, this is like saying "I drive a Model-A because Ford won't be changing it anytime soon." Is your friend not "dependent" on the Delphi compiler? Do they not make updates/changes/improvements? Perhaps not as often as Microsoft does to .NET, but I'm sure he has to do some continuing education.

Microsoft has not made any framework-wide changes to .NET since 2.0. .NET 3.0 and 3.5 were additive releases that added new functionality to take or leave as requirements dictate. .NET is available in open-source form and with Reflection you can dig into its deepest guts (I've reversed-engineered templated server controls in ASP.NET for my own purposes.)

In my experience, professional development requires staying current with the pace of technology. Microsoft and Sun would not be multi-billion dollar companies if they were in the habit of making developers' lives hell with breaking changes in each update.

Dave Swersky
+2  A: 

Each dependency, including a framework, is a cost. There is also a benefit to each. The question is, does the benefit outweigh the cost. This has to be answered on a per-project and per-framework basis, but in my experience it is clearly well worth it in almost all cases.

As an aside, a .NET Framework application (or library, etc.) can be made to target any version of the Fx. If he writes his code against v3.5, and something in v4 breaks it, no problem, just don't change it to target v4.

fatcat1111
+2  A: 

It's an interesting position for your friend to take, because his customers are accepting a dependency on Delphi (which, unlike .NET, has no second source), and even more critically, they are dependent on a small and shrinking pool of development and support resources (including your friend.)

le dorfier
You do get the full source of the entire VCL framework that Delphi builds upon, and it gets amended with community contributions.
Wouter van Nifterick
A: 

Well, different versions of .NET framework can co-exist together.

I don't see a real problem developing to version 2.0, as an example.

+5  A: 

Some of your friend's problems attracting candidates may just be marketing related.

For example, if he advertises a job opening for "Experienced Delphi programmers" he won't be likely to get many inquiries from people who have never used Delphi before, because they won't think they have a chance of getting hired.

If that's not the issue, then he may be able to improve his chances of recruiting people by focusing on the nature of the work and the greatness of the working environment.

For example, if the job entails using Delphi to build really cool products, then it would be attractive to more people.

Finally, if he builds a really great environment for the programmer to work in, and pays well, then that might help as well.

Ideally he would be able to offer:

  1. Really exciting work
  2. High pay
  3. A great work enviornment
  4. A "cool" programming language to work in

If one of these is missing, he can make up for it by "beefing up" the other ones.

However, the more that are missing, the more difficult recruiting will be for him. I'd say that if he is missing two or more, then he is in trouble.

It sounds like he doesn't want to change "4". I would recommend that he look at the other 3 and see if he can tout those a little more. That might help.

Scott Wisniewski
Another problem is, that he wants people to stay for multiple years. So he does not want people to leave within 2 years to look for better opportunities. Being one-man, there might not be much room for people to grow.
IceHeat
Are there Delphi developers who started using Delphi less than 8 years ago?I think many Delphi developers are Turbo Pascal dinosaurs. I'm not a dinosaur yet (32 yrs), but I started with TP a long long time ago.I think it's the harder to find junior Delphi developers than experienced ones.
Wouter van Nifterick
+4  A: 

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

Stephan Eggermont
Agree with all this- though it begs the question: would you recommend a Delphi-based application to any but the smallest businesses? As long as he has no growth plans he can certainly stay with Delphi.
Dave Swersky
+2  A: 

As pointed out by Oli, you can target any framework you like. However, MS has introduced almost no breaking changes in any of the frameworks. They've even kept in poor APIs (ReaderWriterLock) in order to maintain backwork compatability. As of 3.5, C# now has features which reduce development time for complex tasks by at least an order of magnitude. Using the framework you can create communication layers with WCF, create easy nice looking UIs with WinForms, and use a threadpool with multiple locking APIs for multithreaded apps. For each problem, C# has multiple solutions that would take much longer to implement in other languages without the .NET framework. What I've done at work in the past month would have taken me a year to do correctly in C++ (my first language) which I'm quite proficient in. The startup may be too expensive for him, but anyone who doesn't think that the .NET framework is the future of Windows development has their head in the sand. There are cases where you need to roll your own solution, but the framework simplifies many repetitive coding tasks.

Steve
A: 

I am also delphi developer and i don't see any reason why anyone would switch from delphi to .net. Delphi is based on VCL which is stable for i don't now 10 or more years, if someone started to develop application with Delphi 1.0 its still can be compiled in Delphi 2009 or Delphi for .Net.

Delphi is also much faster than .Net, you can not notice speed if you develop database applications but if you work on image processing or other intesive algoritams delphi code is faster comparing to C#/Vb.net.

Delphi cominity is also bigger to than .net, VCL has also more stuff than .net.

Microsoft C++ is only compatible with previous versions, but coding in C++ is horror, i know its powerfull but can't be comparad to delphi when time is critical, for those who did't use delphi just search google for VCL components and see how big is delphi comunity.

I also know programmers who developed applications in vb5 and could not continue development in vb6 without lots of changes, and when .net releasd they must stick with old tools, or rewrite evrything.

Sorry for my bad english.

Edin
I my opinion Delphi is not stable. Almost no D1 - D2007 real world project will work with a simple recompiled in D2009. If you use any 3rd party components, upgrading to new Delphi is always a mess.I know programmers who has sticked with Delphi7 as every release since has been rather "unstable".
mliesen