Guest Column: Will Open Source Lose the Battle for the Web?Aug 14, 2001, 06:56 (319 Talkback[s])
(Other stories by Ganesh Prasad)
It's the applications, stupid!
It may be true that one swallow doesn't make a summer. But equally, sometimes, the first swallow doesn't appear until summer is well under way. The 5% gain in Microsoft's webserver market share at the expense of Apache is distressing, but if anything, overdue. Apache is like the cartoon character that has walked off the edge of a cliff a while ago, and has just looked down.
This may seem a harsh and unfair pronouncement, but we live in a technological environment where we need to keep running just to stay in the same place. So it's nothing short of miraculous that Apache managed to retain its market share for about two years while essentially treading water. Let's face it, in spite of a few point releases, Apache hasn't introduced any significant user features in two years. (For example, has Apache even managed to deliver a standard GUI configuration tool in all this time?)
Many Open Source supporters greeted the news of the Apache setback with derisive disbelief ("Why would anyone in their right mind switch from Unix/Apache to Windows/IIS?"), but they miss the point. Those users who switched from Apache to IIS did so not for the superior HTTP-serving capabilities, if any, of IIS. That's commodity stuff, and Apache does it well enough for them not to look further. They switched because they had begun to look beyond web servers to web services. Right under the collective nose of the Open Source community, the battleground has shifted. People need vanilla webservers today like they need Rolodexes in an age of digital organisers.
IIS, by contrast, isn't just a webserver anymore. It's being positioned as the vanguard of the .NET server platform. The Microsoft marketing machine is convincing decision makers that web services are the way to go, and that .NET is the leading web services delivery platform. Our low-cost, standard, commodity products were the Maginot line that Microsoft could not cross, but alas, how easily they have walked around it. They have turned the "good enough" argument against us. IIS on .NET is a web services delivery platform, but it's also a "good enough" webserver, if that's all the customer wants today. Using IIS will satisfy today's needs as well as tomorrow's!
What would a user rather have -- a free server that does plain webserving, or a moderately priced one that does webserving plus e-commerce? Faced with such an adversary, does a plain webserver stand a chance, much less one that is virtually stagnant? True, the dramatic drop in Apache's market share comes from just two large ISPs, but will they be the only ones to switch?Web services - Where we need to go
.NET may be largely vapourware today, but we in Open Source have been amusing ourselves with our own, -- Mozilla 1.0 on the client and Apache 2.0 on the server. How wonderful it's all going to be! Mozilla supports XUL and a cross-platform component object model! Oooh! It's more than a browser, it's an application platform! Aaah! And Apache 2.0 is both multi-process and multi-threaded, it has a new API for modules, and is so much more stable on Windows! Swoon!
We've been so carried away by our own hype that we fail to see that's not the way the web is going. Even Apache 2.0 (when it finally deigns to appear) won't offer any really revolutionary user benefits. It's just a better architecture for a vanilla webserver. What we need today is no longer a webserver, but a web services delivery platform. Sorry, but Apache doesn't cut it anymore where newer web applications are being built.
"Web services" is a simple concept, and its basic technological underpinnings aren't rocket science, either. This is all about applications advertising their own capabilities, searching for other applications on the web and invoking their services without prior design or negotiation. Reduced to the technological basics, it's just XML over HTTP. And the relevant specifications aren't closed either. They're Internet standards. This is classic Open Source territory, an invitation to commoditisation if there ever was one. So why hasn't Open Source produced a web services platform? Why are we still tweaking yesterday's product to make it a wee bit better? This is the syndrome of engineers putting features into a product with no input from marketing. It's a great technical product, guys, but the market doesn't want this anymore.
There will be Apache defenders who will bristle at the suggestion that it is a vanilla webserver. Look at PHP, they will say. PHP actually has greater market share than ASP. You can build fantastic web applications with PHP at a fraction of the cost of any commercial alternatives, including Microsoft.
That's great, but when will PHP grow to become something more than a web scripting language? Where is the PHP enterprise component architecture? What about clustering and failover? Where are the WSDL and UDDI implementations? Don't show me bits and pieces here and there. Show me a framework. Show me a reference implementation. Show me a friendly interface. Not there yet? So PHP has been left in the dust as well, while ASP is morphing into ASP.NET, the browser delivery front-end of the Microsoft web services platform.
What we're witnessing is Microsoft doing an end-run around Open Source in the web applications space.The other power
All is not doom and gloom, however. While Microsoft has been nimbly outflanking Open Source on the Western front, another power has been successfully engaging them on the Eastern front. Far from being vapourware, this is a real Enterprise architecture, a set of well-designed interfaces, and plenty of stable implementations to actually provide a viable alternative to .NET. That's the Java 2 Enterprise Edition, or J2EE. The trouble is, the way the big J2EE vendors are repeating history is textbook Santayana. Their greed for high margins is causing them to abdicate the low end of web services to Microsoft and .NET. Big mistake. We remember how high-margin Unix workstations ultimately fared against "low-end" PCs.
It needn't be this way. J2EE doesn't have to be an expensive alternative at all. There is an excellent Open Source J2EE server called JBoss, which provides a solid foundation on which to base a platform. Most Open Source enterprise components such as databases, directory services, message queues, mailservers and the like already support J2EE interfaces. What we need to do now is add Open Source implementations of web services standards (WSDL, UDDI, ebXML) and combine them all with a nice user interface (can anyone say "drag and drop"?). In fact, some of these standards are already implemented as Open Source (e.g. pUDDIng). That would be the Open Source answer to .NET.
Java has mindshare, maturity and corporate respectability. A Java-based web services framework will completely turn around Open Source's fortunes. From an architecture-less motley collection of software based on mid-90s technology, the Open Source web services framework will emerge as a proven, comprehensive solution and a compelling direction for forward-looking organisations. So what is holding us back?The mote in their eye, and the beam in ours
My dear fellow Open Source supporters, I share your frustration and exasperation at the blind spot that most people seem to have regarding Open Source. I share your pain when they simply don't get it. However, forgive me for pointing out your own football-sized blind spot about Java. I'm afraid you don't get it either.
"Java is not free", the refrain goes. That's right, it isn't. But does that mean we shouldn't touch it with a barge pole? Does it justify all the nonsense about dotGNU and Mono, the Open Source implementations of .NET? Of all the architecture ideas in this world, did we have to go and embrace .NET? To our eternal mortification, we are again reduced to chasing tail lights. A proud Unix community is letting a desktop application company teach it how to build distributed enterprise applications. The shame of it! In our eagerness to snub Sun, we are legitimising Microsoft and belittling ourselves.
We can quibble about whether dotGNU will help or hurt Microsoft. We can argue about whether it will help or hurt Open Source. But there's no denying that it will hurt J2EE by strengthening the appeal of an alternative architecture and technology. It's like allied bombers suddenly starting to blitz Moscow instead of Berlin. Wrong city, or at the very least, awful timing.
"Your points are valid, Mr. Prasad, but you need to be lecturing Sun, not us." Right. Our house is burning, but we're not going to do a thing because it's the fireman's job to put it out. Don't look at us.
"Sun is a bunch of control freaks just like Microsoft. Why exchange one tyrant for another?" Because Sun simply doesn't have the exclusive power over Java that Microsoft has over any of their technologies. The community participation in Java is too far advanced for Sun to wrest back control now. Once we build Open Source implementations of Java virtual machines, compilers and libraries (we're almost there), we don't need Sun at all. They can't change the Java spec without breaking their own (and their partners') products. If we can implement J2EE with half the zeal some of us are trying to implement dotGNU, we'd be far better off.
"But Java is slow, as everyone knows". Can we do better than regurgitate second-hand comments dating from 1995? Because, by the same token, Linux is a command-line environment, as everyone knows. Tried server-side Java lately? That's a good example of what "Enterprise-class" means, with all its requirements for robustness, scalability and performance.
Now this is going to be controversial and will not win me many friends, but I think the Open Source community has to get real about a couple of things. There is nothing in the Open Source stables to match J2EE (No, CORBA is a poor alternative). Linux and Open Source alone cannot beat Microsoft and make the world safe for open standards. Open Source needs Java's help to beat off Microsoft. We need to swallow our pride, ideology, or whatever else is standing in the way of our embracing Java. If there is one thing I'm asking of my readers, it is a commitment to be at least open-minded about Java.Pragmatism, or One thing at a time
Churchill and Roosevelt knew they had to ally with Stalin to beat Hitler. It took another forty years to liberate Stalin's empire, but ultimately both battles were won. If they had been pigheaded about Stalin in the first place, we would all be living in the Third Reich right now.
Yes, we need to fight to make Java free, but that's tomorrow's battle. Today, the Anschluß of Austria has occurred, and it's a wake-up call. In a few years from now, it will either be a Java-Linux world, or a .NET world. The choice is ours.References and further reading
About the author
Ganesh Prasad is a Sun Certified Java Programmer, a web architect by profession and a Linux user by choice. He is a devout follower of the pro-humanity Java-Linux religion. When depressed, he tries to cheer himself up by reading his own optimistic article of 2000, "The coming Java-Linux duopoly".
Copyright (c)2001Ganesh Prasad. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html.