Are you tired of people yacking about how Linux isn't a serious application server platform? I know I am.
Are you tired of people yacking about how Linux isn’t a serious application server platform? I know I am.
Anyone with two neurons to connect together knows that Linux, armed with Samba and Apache, kicks ass as a Web server, and as a file and print server for Windows PCs. Still, the critics whack Linux. Lately, they snipe that if Linux can’t reliably do eight-way symmetric multiprocessing (SMP) and the like, it’s not an enterprise computing platform.
OK, so maybe they have a point there. On the other hand, have you priced Microsoft’s Windows 2000 Datacenter server with its eight-way SMP processing lately? Try a cool million bucks and change, baby. But, sure if you really need high-end business computing, Solaris and AIX are the way to go.
But is that really true? What do you really run on high-end servers anyway? If you’re doing massive data transfers, maybe you should pick up an IBM zSeries (mainframe) or an iSeries (AS/400) with Linux. Most of us, however, use high-end servers for application servers, and for that, Linux servers and Java 2 Enterprise Edition (J2EE) do just fine.
And this isn’t me just spouting off. IBM offers WebSphere, its J2EE server and the heart of its entire middleware family, on Linux for all four of their hardware lines.
IBM isn’t the only one who’s got the Linux and Java middleware religion. Oracle is working closely with Dell (hardware) and Red Hat (Red Hat Advanced Server) on their J2EE-flavored Oracle 9i Application Server. BEA Systems, another leading J2EE light, is right in there too, with its Java Virtual Machine, WebLogic Jrockit, and WebLogic Server 7, its J2EE application server.
Even Sun is becoming a Linux/J2EE middleware believer. In February 2002, Ed Zander, then Sun’s COO and president, said that Sun would port “the entire Sun Open Network Environment (ONE) implementation to Linux.” And, since then, Sun, the anti-Linux Unix company, has been keeping its promise.
And needless to say, there are several open source Java efforts as well. Of these, the most important is the Apache Software Foundation’s Jakarta Project (http://jakarta.apache.org). Jakarta’s game is to create and maintain “commercial-quality, open-source, server-side solutions for the Java Platform.”
So far, with numerous Java community awards and the allegiance of a goodly number of Java developers, the Jakarta program family seems to be doing a good job. Tomcat 4.03, which delivers Java Servlets and JavaServer Pages, and JBoss, a work-in-progress to build a completely open source J2EE-compliant server, are the most important members of the family.
But Jakarta is also serving as the umbrella for many other Apache-licensed Java efforts such as Ant, a Java-based build tool, and POI, a Java API for working with OLE2 document formats. If you want to just write Java code for workstations, there lots of tools to do that, too.
In short, while C and C++ are what built Linux, Java is the key to Linux’s future, whether you’re building standalone applications, application servers, or Web Services.
I know, I know: to many of you Java is this wishy-washy language that’s way too wordy and structured. Still, while building many hot-rod applications is still a job for C or C++, the simple truth is that for application servers, most programmers like Java.
.NET? As I write this in July 2002, .NET Release Candidate One has missed its internal release deadline again. Yep, all of those .NET success “stories” you’ve been reading about are pilot projects using beta code. In short, no one except Microsoft is making money from .NET at this point, and even they’re making only a trickle.
Of course, there are attempts, most noticeably Ximan’s Project Mono, to create an open source implementation of the .NET development platform. Eventually, Project Mono hopes to ship open source implementations of everything Microsoft includes in their .NET Framework — ADO.NET, ASP.NET, and Windows.Forms. My big question about Mono is why program for Mono (when it will always be a step behind Microsoft’s implementation as Microsoft continues to constantly change it for both technical and marketing reasons) when you could just program for Microsoft and .NET?
Sure, C# and the CLI are now ECMA standards, but that only standardizes the tip of the iceberg. Given Microsoft’s track record of changing and hiding essential details of their application programming interfaces, I just can’t see .NET programming on Linux being successful, no matter how hard Project Mono tries.
I predict that just as we now see Linux vs. Windows 2000 Server as a major battle, we’re going to see Java on Linux combat .NET on .NET Server in the middleware battle of battles for the next few years.
In fact, I don’t see how it can be any other way. Do you?
Steven J. Vaughan-Nichols is a long-time Unix guru and technology writer. He can be reached at firstname.lastname@example.org.