views:

122

answers:

6

Say if you had to develop a huge windows desktop app what language/technology you believe will be supported longer by MS (or by its manufacturer if not MS product)?

What language/framework would give the app greater longevity without the need to be adapted or rewritten in order to run on newer versions of windows as they are released?

C++ Win32 API?(will MS ever rewrite those?)

C# .NET?WPF?

Delphi, wxWidgets, Qt or some other crazy thing?

Please for the sake of the argument lets not dwell on other aspects of the question. What will give the app greater life is the question here.

A: 

Much of .NET runs on top of Win32. It's been around a long time, and will likely be supported well into the future.

landon9720
Microsoft is actively trying to kill Win32. I don't see them succeeding very fast, but they have to keep on trying.
Stephan Eggermont
A: 

I will go for Java + SWT which give u absolute Native feel. I think SWT is somehow a reincarnation of wxWidget in Java world. You can run it on different platform though.

janetsmith
Unfortunately, I have had Java applications no longer run when upgrading my version of JRE. I'm not confident in it running "long-term" without having to make tweaks and changes over time in the future.
scwagner
That's really sad thing to hear.I was under the impression that Sun put a lot of effort to maintain backward compatibility for each version.
janetsmith
Even writing native c program may encounter problem with each upgrade of Windows. It's very difficult for you to revert back you OS in order to run your problem. However in Java case, what you need to do is just install another JRE in your computer, and switch to it. You can even install several version of JRE in same computer. :)
janetsmith
A: 

Win32 is a safe bet to target if you are interested in running on Windows with an eye for when it becomes legacy. What this implies is that there are several libraries built on Win32 that will suit your purpose.

Keeping in mind that while Windows has had a strong consumer base for the longest time, we are seeing changes as they try to move away from Win32. They have a much reduced capacity to produce low level code (Vista, Windows 7) and improvements to their operating systems, instead relying on the same core of kernel code and userspace implementation. To me this is the sign of a company that may not always be the wisest investment.

So, it might be good news to know that projects like WINE will likely continue to implement a "free" version of Win32 long after it has been abandoned by Microsoft. Kinda like how people get Commodore 64 or NES emulators ;) Either by the company taking a whole new direction or being eroded away by competition (Linux).

So, if it has to be Windows now, any library that is reported to run well on top of WINE. If you can give the idea of a platform not based in Windows, you will reap the benefits of free and open source software! Software that most often can run on Windows and countless other platforms.

I see a suggestion for Java, that's a safe bet too, but Java can sometimes be frustrating for certain people.

I find Java apps have the longest lifetime and when coded right work on all platforms in a way that just gives me a buzz!

But again, not trying to take you in any directions. That's just the landscape of things :)

Omega
Personally I expect a Grand Reunification down the road a piece for Java and .Net, though the culture around each as well as the pressures from Wall Street won't let it happen soon. But if Oracle buys Sun, then Microsoft buys Oracle..
Bob Riemersma
A: 

I am sure .net will be supported for a long time.

Shoban
May be. but what framework? :P
Umair Ahmed
;-) thats a good question. I would go for the latest available and then upgrade if required. .net 2.0 apps still work.
Shoban
I think the way coding is done in one framework changes dramatically in next framework. furthermore MS might drop support for older framework. not even sure if future framework would be compatible with old ones. eg (1.1 and 2.0)
Umair Ahmed
A: 

If you're creating a large application, it will require maintenance one way or another anyway. From time to time, that will require changes to support a new OS. Get over it :)

I don't think Microsoft are going to make anything go away, but they might make incompatible changes occasionally.

We run our applications in "a cloud" providing SaaS to people, and even we have to change stuff for new OSs, as the old ones stop being supported by the hardware vendors any more.

MarkR
+2  A: 

There's really no safe bet. Just pick one of the major ones and hope for the best.

My employer makes a 2 million line windows app, originally started in 1995. At the time they knew it was going to become a large long-living code base, so they faced the same choice. At the time, java was nothing, .NET didn't exist, qt and wxwidgets were meaningless specks on the horizon. The choices were C++/MFC, Delphi and VB. They chose Delphi, because VB didn't seem powerful enough, and C++ seemed too complicated to retrain the existing developers for.

Delphi was and is the smallest platform in marketshare of those three, but surprisingly it has proven the best choice. There hasn't been the major porting effort that happened in the VB world with the .NET transition. At the same time, Delphi has kept up with new windows api's as they were introduced. Crucially, because it's more high-level than C++, the codebase has proven quite manageable for a small team.

All this is to say that you never know whether you're making the right choice. If you pick one of the major platforms, it's likely that you'll have sane upgrade paths. Likely, but not a given.

Joeri Sebrechts
if you would make that choice again today, what would you choose?
OldJim