Thursday, November 23, 2006

The Flatface Musings - Java has harmed Unix but helped Windows win

Java has harmed Unix but helped Windows win

(November 2004)

There is an unusual reason why I believe that Unix is losing and Windows will win the battle - the Java programming language. I woke up this morning in Masterji’s cube and had a revelation. I realized that I no longer see the ubiquitous black xterm windows on most software developers' desktop screens.

For decades, it used to be that a programmer would do a remote login from his desktop PC to a Unix system for his daily work - to code, test and deploy his application. At first, the Windows PC was used only to connect to the mother-ship, the Unix box. On the Unix box, there were also programs for email, word processing, and surfing the internet. Then gradually with an improved suite of applications from Microsoft, the PC began to take over. But Unix was still indispensable.

No longer. Java was designed to be portable, to work the same on Unix, Windows and Other. So one can simply code and test now on his desktop using the version of Java for Windows! Unix is reserved only for deployment in production but with the larger population seated on Windows, I believe it is only a matter of time before Windows also takes this space. The crack has imperceptibly grown into a chasm. Heavyweight products like web servers, application servers hitherto in the Unix domain are now released for Windows. The code should work exactly the same on the Unix box as it did on the programmer's Windows desktop, and this is effectively guaranteed by the makers of Java.

The irony of this is can make one laugh loud in amazement - Java was birthed at and owned by Sun Microsystems, whose battle horse is Solaris, the high end flavor of Unix!

Indeed, the Sun is slowly setting because it believes its Solaris workstations are losing ground to Windows and Linux. It does not realize it is slowly being killed off by what it gave birth to, with much labor and pain.

Java encompasses a panoply of software technologies, from databases to distributed computing and web servers, from cell phones to transactional systems and more. This means that these technologies are now brought to the desktop, where Java will also run.
Indeed during Masterji’s college days in the late 80's as a Computer Science student, he says, “I never even once switched on a Windows PC. All of our work was done in Unix. DOS/Windows was a laughably primitive system. Now it is sobering, and a watershed moment for me to realise that I have not logged in to work on a Unix system for over two years, except to push code for deployment to production. This weekend, I shall delete the Linux partition on my aging dual-boot desktop at home - I do all my programming in Java in the Windows environment now”.

What can halt this slide? The answer is obvious and simple. Sun has enormous leverage over its creation and so can simply stop releasing the version of Java that will run on Windows. IBM, HP and Sun must simultaneously push the Linux desktop to the consumer. This must be done as a sudden shock and not gradually. Programmers will rush out to install Linux/Unix on their PCs in order to continue working. More applications will run on Linux/Unix. The balance will then shift away from Microsoft and open up competition. This will once more bring diversity back to the world of software.

Copyright Anil Philip 2004, 2005

1 comment:

emission said...

I think I disagree.

It was java that allowed big companies to try out Linux back around 2000. Many of them liked the lower cost, and stayed with Linux (I believe Amazon, other big ones). If java had not been in the picture, they probably would have deployed on Windows, since it was perceived as the (completely) dominant platform then.

Java provides a level playing field where Linux can compete on equal terms. C/C++ do not really provide this, both because they lock you into the platform (unless you take considerable care), and because the VC++ environment is really better than the C++ environments on Linux.