views:

67

answers:

2

Hello,

I just posted a question about whether WPF is a good choice for a long term project, and it got me thinking in general about development for long term projects.

If you have to choose the technology (language/environment/framework) for a project that is expected to last for many years (at least 10), what would you choose? Which technologies that we take for granted today are expected to disappear in 3-5 years?

Will C# exist in 10 years? Will Ruby? Will Python's interpreter 5 years from now still run Python 3.0 code?

What would you choose? What would you definitely not choose?

+2  A: 

Tying your project to C# is about as risky as tying it to Windows ie not very.

Windows won't disappear overnight no matter what happens barring extinction level events.

Other than that it's hard to say because it simply depends on the project you're developing. The likelihood that something is developed now and will require absolutely no maintenance or modification for the next 10+ years is... remote.

But just look at the difference between now and 10 years ago:

  • Java was around 10 years ago but those JDKs (1.0/1.1) have long since been EOLed and those apps will have needed updating to work on Java 5+ (the current minimum supported JDK);
  • Apps written in C/C++ for the Win32 API are probably still mostly OK although Vista (and to a lesser extent 2000/XP) did break some things that worked just fine on Win95/98. Still, DOS games from that era (for example) typically still run on emulators;
  • Perl is still around and still on version 5;
  • There are some COBOL applications that have been running for decades although there's almost zero chance any of them have gone 10 years without modification.

So I really don't know what you're expecting. Software is a living breathing thing. If you don't feed it and maintain it, it dies. What you should be concerned with is catastrophic change (like if you'd bet the farm on the success of BeOS for example) and anything tied to Windows or Linux will be just fine. Java, .Net and Python will still (I'd bet) be around. But care will be required.

cletus
Besides which - the core of WPF (xaml and everything that goes with it) has counterparts in Silverlight and Moonlight (unlike winforms) - so it doesn't even (necessarily) tie you into the OS.
Marc Gravell
+1  A: 

The more people are invested in a technology, the more likely it will survive. That said, an awful lot of VB developers were annoyed when the classic VB was discontinued and VB.net was not compatible with VB6.

Personally, I'd place my bet on Java. But it's a bet anyway.

ammoQ