Tuesday, October 04, 2005

"Java, my hero"

I now understand why so many developers on MS Windows cling to Java so tightly, it's their saviour from the hellish experience that is Microsoft Visual C++.

Developing cross-platform applications on a Mac or a Linux machine is not that difficult. Getting those same applications to build on a MS Windows platform is not that difficult. The problem is, what if someone needs to do development work of cross-platform software in the MSVC++ environment? It is possible, but the amount of work required is immense. The quasi-solution of switching to a different compiler/IDE is an option now, but what about 5+ years ago?

Java to the rescue! Well, sorta, application development in Java has many of its own gotchas and "write once, run anywhere" is malarky; but, for developers using MS Windows, Java development frees them from MSVC++ and (this is just a bonus) lets them build applications that are multi-platform. To sweeten the deal, Java has development tools and build processes that are standard on all major platforms. With more marketing than necessary, Sun was able to transform the animosity towards MSVC++ and MFC into migration to Java and AWT/Swing.

As Qt and GCC on Windows gain visibility, I wonder if we'll see some Java application developers downgrading (or is that upgrading?).


Anonymous Victor said...

Without all that marketing, Oak would not be so popular as it is now

1:03 AM  
Anonymous Anonymous said...

I don't agree with that, if you don't care about portability (you are building a win32 app, for instance) MS VC++ is actually a great environment to work in. VS is probably one of the best really integrated IDEs out there.

If you do care about portability (and you want to use C++) then you just do what you said: develop in a "standards compliant" environment (for instance: BSD, definetely not Linux) and then polish the edges in MSVC++, which is not hard.

I've never seen any animosity against MSVC++, in fact I see more animosity against Java these days.

9:09 AM  
Blogger Denis Fuenzalida said...

As i see it, GCC on Windows still will be an option on Gaming development, where you may need that 5% of performance using native C++ code.

And for QT, i've heard that there's an issue with QT on Windows: licencing is paid for commercial applications (Open Source apps. are ok).

Now, for Java desktop applications, there are many good IDEs: Netbeans 4+ has a good Swing desinger, JDeveloper also has something similar, and i think that Eclipse must have some good plugins for desktop app development too. And you can get those 3 IDEs for free (as in beer).

Think also that with Java you have a massive stack of libraries for most purposes, so you can focus on what your application does better, instead of fighting/learning obscure win32 APIs.

I did some game programming in the 90's on DirectX version 5 with C++. It was hellish. If i had to do it today, i'd go with some Java2D or some SDL wrapper for Java.

-- Denis

9:11 AM  
Anonymous AC said...

Doesn't it seem that this is becoming an increasingly irrelevant issue? Outside of content creation (office, etc) and small-market, specialized applications (GIS, etc) many applications that were traditionally the domain of the desktop are now moving to the web. The mass migration of enterprise apps away from the client/server, Visual Basic paradim is a good example of this.

12:08 PM  
Blogger Matt said...

Doesn't it seem that this is becoming an increasingly irrelevant issue? ...[M]any applications that were traditionally the domain of the desktop are now moving to the web.

I disagree that this issue is irrelevant. Web-based applications that work as well as their desktop ancestors would be great, but presently not a reality.

Just think about all the application types that people use on a daily basis: word processor, email client, IM client, web browser, music player, graphic design, photo management, and games.

Those are fairly common applications, and some of them exist in web form; however, the desktop equivalents are superior and more widely used.

Until AJAX, web applications have either been a compelete pain to use due to slow response times between submitting input and receiving output or have made use of some technology (Java, Flash, etc) that is just a desktop application downloaded on demand.

1:04 PM  

Post a Comment

<< Home