Guest Column: Will Open Source Lose the Battle for the Web?
Aug 14, 2001, 06:56 (319 Talkback[s])
(Other stories by Ganesh Prasad)
How to Help Your Business Become an AI Early Adopter
It's the applications, stupid!
Straws in the wind - Why did Apache slip?
This article argues that the shift towards web services has reduced
the attractiveness of the current generation of Open Source web
products. The only solution is for Open Source to adopt a web
services architecture, and fast. Fortunately, there is one at hand,
and it's not dotGNU! Can the Open Sourcers wake up
and save the world before it is too late? Read on to find
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
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
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
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
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"
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
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
"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
"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
(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.