IBM and Microsoft are squaring off for leadership of Enterprise development. Rational (IBM) is ramping down in fact on .Net support (they’ve been paying lip service only for quite a while), and Microsoft’s Ballmer (“Developers, developers, developers”) is positioning VS 2005 on the high end to be just what Enterprise developers have always needed.
Who wins and who loses here? And how does this affect the existing industry alignment (Microsoft vs. Everybody Else)?
News this week
Over the last few years, IBM and Microsoft have co-existed in relative
peace because they've concentrated on different markets. In the last year
or so, though, there's a definite "ain't enough roon in this town for the
both of us" feel to this landscape. IBM, whose stronghold has always been
big, big business, has made quite a bit of noise about breaking into the
SMB market. Microsoft, on the other hand, has been working hard on
building enterprise features into Whidbey, its next development platform.
The last time IBM and Microsoft really squared off against each other in a
meaningful way was when OS/2 and Windows were duking it out. In that
battle, IBM appeared to go quietly into the night, preferring to harvest
the more profitable pastures of hardware sales and high-margin services.
As the dust settled, they found themselves owning some big-company high
ground (good), but with very little platform or developer penetration (bad).
This was the point where they jumped big-time into Linux and Java support,
which made a good deal of sense for them. After all, they'd be able to
make a good living on services following this strategy. In addition, if
they couldn't own developers, they wanted to make damn sure that Microsoft
didn't either. Snapping up Rational added more fuel to this fire, fitting
well with the Java development and big-business focus. The final piece of
the puzzle for them was Eclipse, started as an IBM-sponsored open-source
Java development IDE. Ironically, in order to really woo the open-source
community, IBM had to relinquish control of the project, which has gone on
to be wildly successful.
So, IBM finds itself with a strong enterprise presence and strong ties to
Java and open source development. They have, however, no direct control
over a big-time language, OS, or IDE. They have an app server and a
database that are both respected but certainly not dominant. Finally, they'
re still outside looking in at the SMB market.
Microsoft, on the other hand, has owned the SMB market for as long as
there's been one, and they continue to advance their well-respected IDE.
They own the IDE and languages (C#, VB.Net), and they're chasing the
problem IBM had with eclipse: people are afraid to commit to platforms
owned by one vendor.
Microsoft has been vulnerable on the hobbyist programmer front relative to
open source platforms like LAMP (Linux, Apache, MySQL, and PHP/Python).
These platforms are free and it's easy to find cheap hosting with this
environment already set up, creating an uphill battle to attract weekend web
In the enterprise, Microsoft has been losing to Java again because people
are afraid of vendor lock-in. Sun, HP, BEA, IBM and others have been quite
successful convincing big-time IT tha the only way to ensure scalability is
with a J2EE software stack on *nix. The apparent portability from one
vendor to another has also helped create the perception of safety.
Microsoft just hasn't had an answer to this, and going proprietary with .
Net didn't help their cause at all.
Today's Playing Field
Looking at this week's announcements, IBM can clearly be seen to be
retreating, while Microsoft is in attack mode. Microsoft's biggest
vulnerablility continues to be its single-platform direction, though there
are some signs of softening (cooperation with Sun, discussions with RedHat).
If Microsoft would publicly get behind cross-platform .Net efforts like
Mono and Mainsoft, I think there would be a big boost to .Net adoption as
companies see vendor and platform options become available.
IBM continues to shoot itself in the foot by taking on Microsoft directly
and even by poking at its most loyal developers (IBM created an uproar in
the Java community by showing interest in PHP; Java developers felt that
this was a show of no confidence in Java). Product offerings from IBM
continue to be disjointed and confusing, contributing to the perception
that IBM's products exist only to sell IBM's services.
The wild cards right now are vendors like Oracle and BEA, who have been
reasonably quiet in recent months. BEA just began a major campaign to
launch their next-generation SOA platform, which claims to be the optimum
platform for SOA regardless of language. Oracle is still digesting
PeopleSoft, but appears to be interested in taking the enterprise from the
applications front rather than the development front.
As IBM's grip on enterprise development loosens, support for Java will
become more fragmented. The strong, widespread support for Eclipse ensures
that Java is in no danger of disappearing any time soon, but there's also
no sign of any unifying force for Java as a whole.
Although UML has never been really dominant (even IBM says that only about
6% of developers use UML), Microsoft's continued upward pressure will spell
the end of UML as a mainstream modeling tool. Rational will become
marginalized as a boutique vendor.
Finally, the big one. As BEA continues to position itself as the platform
to run the enterprise on regardless of language, they will integrate .Net
CLR support into WebLogic, perhaps through a derivative of Mono. This is
viable for them because they're already acknowledged as a leader in the
J2EE space, and nobody seriously considers Microsoft to be an enterprise
application management platform.
Although some have considered the possibility of a Microsoft/BEA
acquisition, it's actually more valuable for Microsoft to have BEA
establish .Net support while still independent. As an independent company,
BEA can relieve the single-vendor lock-in problem that's limiting Microsoft
today, facillitating much more rapid .Net adoption in the enterprise. As
the first application server to support J2EE and .Net, WebLogic will surge,
forcing Websphere and JBoss to follow.
There you have it - remember, you heard it here first!