Every now and then I like to step back from the trenches and try to think like a CIO. I was a CIO at one time, so I can actually do such a thing. And lately, when I think my CIO thoughts, I've been thinking about the impact that Java has made on the Enterprise.
That impact tends to be a great deal different than it would be to a programmer. To a programmer, the game is about having a language that makes it easy Ð and fun Ð to do the task at hand. You don't see hordes of programmers moving to COBOL to write Internet programs Ð it's not the right tool. It's not fun in COBOL. You pick a language that makes sense to write in.
At the high level though, what makes sense "for the company" may be in stark contrast to what makes sense at a micro level. There the decision may not involve what language to use, but whether it makes sense from a business standpoint to even be writing Internet programs, especially if your staff is mainly COBOL programmers.
When I examine Java from that dizzying height, I see an interesting facet. Java is not really aimed at winning programming wars. It's aimed at hardware. Let me tell you why. On the surface, and in the mind of the individual programmer, Java is primarily a software movement. An open software movement, one that says write once, run everywhere. The goal of Java is that any Java bytecode should run on any Java VM, from any vendor on any operating system running on top of any equipment. Further, Java is about removing the need for an operating system, at least in certain cases, such as with embedded processors.
So how is that about hardware? Here's how. Once we have a substantial base of code in Java, Java Applications, Java Applets, JavaBeans and EJBs, the investment will be made in software. At that point Java becomes one of the standards by which the Enterprise is run. We'll have application servers to house our code, they'll talk to each other using RMI or CORBA and we'll have a lot of software that can run in a lot of places. So far so good?
Now we get to the $64,000 question. What do we run it on? Let's forgo applets and applications for the moment and consider a business that has developed a set of partitioned applications. Java will run everywhere, so where do we run our business? The answer is...on the platform that offers the best combination of scalability, interoperability and affordability to our company. And that's mainly a hardware question. I'll grant you that you can run several operating systems on some hardware, but for the most part server hardware is so tied to the operating system that you can consider them a single unit. No one buys a SUN box to run Linux in a production environment. You can have any operating system you want on an AS/400 - as long as you want OS/400. Given that the business logic is unseen, there's no need to argue over who has the better GUI. The choice comes down to what hardware is best for the task. We can compare TPC benchmarks, MFLOPs or any other standard that's meaningful in order to determine what's best for our company. The hardware vendor that will win the game is the one that ultimately understands how to combine processing power, affordability, service and marketing in a way that's cost effective to its clients and profitable to itself.
I'll admit this still doesn't help with the desktop, but let's face it, the war's over there. Microsoft won. But it does offer alternatives when the main corporation application is developed in Java as opposed to being Microsoft Office. If a browser is all that most people need, we might be able to change the face of the desktop in the Enterprise.
Of course, the users may take the "You can have my PC back when you pry the mouse out of my cold dead fingers" attitude, and that's likely to be a significant impediment to the NC concept. Even Larry Ellison has begun to recant on the feasibility of NCs in an era of cheap PCs. Still, the possibility exists for dramatically decreasing costs for the desktop by providing most of the corporate applications via a browser, or via Java applications.
So much for the CIO hat. I'll hang that up for a while and put on my construction hard hat, then get ready for some heavy-duty Java development. It's fun, and anything's better than COBOL. Thanks for reading, and have a great holiday season.
About the Author
Sean Rhody is the editor-in-chief of Java Developer's Journal. He is also a senior consultant with Computer Sciences Corporation, where he specializes in application architecture Ð particularly distributed systems.He can be reached by e-mail at firstname.lastname@example.org