Friday, July 01, 2005

The Desktop War and Java

Yesterday I had a conversation with a friend of mine about linux, mac, windows, etc. He is a big fan of the mac and suggested I get one so I could have the best of both worlds, meaning windows and linux. I made some comment about not needing to buy new hardware just so I can run OSX. Linux has everything I need with the exception of good solid gaming support, which mac currently is one up on linux because they can run World of Warcraft natively.

But in all honesty the desktop I run is meaningless to me. Software is more important right there with getting done what I need to get done. I don't even care what the desktop looks like. I run blackbox on linux if that tells you anything. Sure there are features of a desktop that are nice, like OSX's drag and drop to/from anything, but visually speaking I am too busy programming or playing games in fullscreen mode to care if the menu's fade in/out, have drop shadows, or what is animated. This is all fluff. And desktops like Gnome, WindowsXP, KDE, etc just eat up system memory that could be put into better things like the applications I run.

Given that I don't care about the desktop but software is important it makes sense to acknowledge that I should run the desktop with the best support for the software I like to use. But software should not determine what Desktop OS I run. Java developers need to grab hold of this concept. There are a lot of native packages that have been ported to all different platforms. Java developers wake up, this is a sign. More and more people are demanding good software run on anything. And no matter what anyone says, Java is the best solution. Write your code on any platform, compile to bytecode on said platform, deploy anywhere. There is no other language that can do this. There is no other language that makes it easier to develop for any OS. If you are developing applications for multiple platforms and you aren't using Java, you are wasting valuable time in cross platform development. It's natural only to Java.

Writing code native to a platform only makes sense if there are features of that platform that java can't get to and you are only planning those features on said platform. If you are writing an application that interacts with MS Outlook, then just write in C# or VB.NET or even C++ and MFC. I am 100% for using the best language to get the job done. But I'll always consider Java as the first language of choice and if I don't feel it can accomplish the tasks at hand, I'll find something that can. But honestly, there isn't much that java can't do these days.

The desktop war can only last so long until people get really sick of paying high prices for fluff. Windows, Mac, Linux, I don't care. I just want to run software and get my work done. Give me all my tools in Java and the desktop war is over!


Chman said...

That's a great point of view that every java developers should have.

Nothing more to add.

Linux Unix said...

Informative blog. Check out my kde blog.