~~~~
August 9, 1996
Dear Dave and Lisa,
This is a great forum, and I'm impressed with the way Sun is handling it.
Thanks for giving Microsoft an opportunity
to contribute.
As you point out, Microsoft and Sun have absolutely conflicting visions of
the future of networked computing.
Microsoft believes in giving customers the option of leveraging the hundreds
of billions of dollars that they have
invested in desktop, server, and portable computers. We know that the 60+
million people who bought PCs and
Macs last year will not be satisfied with applications constrained to the
least common denominator that Sun has
proposed. Programmers and content developers will continue to build great
apps and Web sites that take full
advantage of today's high-performance Windows and Macintosh architectures,
and Microsoft's goal is to make sure
those applications can leverage the Internet. Given the rich, interactive
multimedia capabilities provided by even
today's lowest cost PC, this approach will enable a whole new generation of
more exciting and useful Internet
content and applications. These new applications will drive user and
developer investments for decades to come.
We think the future belongs to a richer, fuller featured, and lower cost
computing model rather than a more
centralized, controlled, and constrained model.
It's worth noting that Sun couches this discussion in terms of Java vs.
ActiveX. (We couch this discussion as the
PC vs. Sun.) At this point, Sun is marketing so many technologies under the
Java brand name that it is difficult to
tell where one stops and the next begins. To sort this out more clearly:
Java - the language
We think this is a great and exciting technology, for lots of reasons
documented elsewhere. We've made sure that
Microsoft Visual J++ is the best Java development tool on the planet. Check
it out and download the beta from
http://www.microsoft.com/visualj.
Java - cross-platform bytecodes and accompanying Virtual Machine technology
This is also great. It gives our customers a cross-platform development tool
and run time. Of course, it's important
to note that there are engineering tradeoffs in using any cross-platform
subset. In the case of Java today it means
that you only get 4 fonts. You get no right mouse button. No QuickTime. No
Sound. No printing. No DirectX.
Layout options are North, South, East, and West. In short, there is no way
on earth you can create a competitive
Macintosh, Windows, or even Solaris application. But in many cases
developers will want to trade off rich
functionality to support multiple platforms, and for these scenarios Java is
a great solution. Of course we've made
sure that Windows is a great, high performance execution environment for
Java bytecodes by making substantial
performance enhancements in the Microsoft implementation of Java. Check out
http://www.webfayre.com for
comparative benchmarks of Java implementations.
Java - the operating system, the chipset, and so on.
Now this Microsoft unapologetically and enthusiastically competes against.
We're in the operating system
business today; we intend to be in the operating system business in the
future. And now that we've dissected
Sun's marketing strategy so that real comparisons can be made, compare the
Java OS against what Windows or
the Mac or any other competitive system platform offers in terms of user
experience, third-party application
support, developer support, price/performance, choice of hardware and
peripherals, choice of tools and all the other
factors that customers use to evaluate operating systems. To say the least,
Microsoft feels pretty comfortable with
this comparison.
Sun makes the point that their vision "allows for the possibility of
connecting any and all electronic devices to the
network -- not just desktop computers." This would appear to be a
significant range of funcationality for one API to
bridge and still maintain Java's "write once, run anywhere" promise. As Sun
ports Java into less and less capable,
terminal-like devices, they have to continue to compress the ceiling of
possible functionality in Java, meaning that
the least common denominator becomes lower and lower. It's not clear to our
customers how Sun will handle this.
Will Sun fragment the "core" Java OS? Will Sun do a minimal version for
terminals, and a richer one for Mac or
Windows machines? We already have seen plans for different Java API from
Sun, from Microsoft, from IBM, from
Netscape, and from virtually every other Java licensee. Maybe having two or
three more from Sun is not such a big
deal.
Now let's talk about ActiveX. ActiveX is a set of technologies that
integrates software components in a networked
environment using any language, including Java. It works great with Java
applets. In fact, it is the only way today
that two Java applets can be scripted together in the same Web page.
Given the heterogenous nature of the software components available on the
Internet, ActiveX performs a critical role
in integrating a disparate array of languages, protocols, software objects,
and scripts. The substantial benefit here
is that it lets content developers more easily create great Web sites by
stitching together reusable components
rather than building everything from scratch.
All ActiveX is intended to do is to let content developers integrate
components written in any language, and to do
that well on any platform where it is implemented. That's it.
As I mentioned above, Java is a bundle of several things: it's a language,
it's cross platform byte codes and it's a
safe-subset environment delivered on several platforms. ActiveX is none of
these things: not a language, not byte
codes, not an operating system, not a platform, and not a safe subset. Nor
is it intended to be. For more on how
ActiveX components provide safety, check out
http://www.microsoft.com/intdev/security.
So how does ActiveX complement Java? ActiveX gives Java developers the
option to extend their Java programs
using an extensive third-party library of components. Moreover, ActiveX
treats Java applets like first-class ActiveX
components, allowing them to be scripted and hosted in any ActiveX
container, and we do this with ANY Java
applet, regardless of whether it steps outside the Java sandbox or not. And
we'll provide this support in our
implementation of the Java VM on UNIX, Mac, and Windows.
Many platform vendors have announced similar plans to extend Java with their
own object technologies. IBM is
extending Java with SOM. Apple is extending Java with OpenDoc. Sun with NEO,
and now with JavaBeans.
Netscape with Netscape ONE.
So given this room full of Java heathens, why has Sun singled out Microsoft
as the pariah?
Here's why: ActiveX is a lot further along than any of these object model
competitors, most of which will simply
never be commercially viable. In fact, ActiveX is the only component
software development model which has a
vibrant industry of third-party supporters behind it actually making money.
Here are more reasons why ActiveX has
become the target of so much marketing rhetoric:
ActiveX is built on 5+ years of Microsoft investment and field testing
of component technology. Now in its
third generation, we've added key features for deployment of component
software over the Internet. We've
also made the technology a lot smaller and faster to accommodate the
bandwidth constraints of most
Internet users.
It works now in literally millions of applications.
It runs great over networks. Will run great on Mac and Unix before the
end of this year.
More than 1000 third-party components (designed from the ground up for
reusability) are available today,
and 14 different development tools, using an array of different
languages. You can see and try out a number
of these on http://www.microsoft.com/activex.
It's a thriving industry: $240 million of components will be sold in
1996, to grow to $1 billion by 2000 (per
GIGA Information Group).
ActiveX works on Windows now, and will be available from Microsoft on
Macintosh and UNIX before the end
of this year.
And now the entire ActiveX community has joined with Microsoft in
handing over the stewardship of ActiveX
to an independent organization, to help promote its rapid adoption and
implementation on other platforms.
So about Java Beans. As a Java customer we are deeply disappointed by the
way Sun has managed the
introduction and development of Java Beans. There has been no design review,
no open process, not even a private
technical briefing, and certainly no spec. Only a press release and a
marketing white paper. We certainly can't
make any commitments to support or ship it until Sun provides us with an
actual specification for it.
So for those readers who may be misinformed: here's how "proprietary"
Microsoft handles technical briefings of this
type: Immediately after we had a preliminary specification for our Java
performance, debugging, and ActiveX
enhancements, we briefed all interested companies on our plans, in detail (see
http://www.microsoft.com/corpinfo/press/1996/may96/javprvpr.htm). As a
result of this briefing, literally every
prominent tool vendor, including Borland, Powersoft/Sybase, and Metrowerks,
joined us to announce their support
for these enhancements (see
http://www.microsoft.com/corpinfo/press/1996/jul96/javapr.htm).
Representatives from
Sun (James Gosling) and Netscape attended. This isn't about being "open",
it's just the way Microsoft does
business. Two weeks after this briefing was held, Sun announced Java Beans.
No wonder people call it ReactiveX.
Right now we don't see how Java Beans adds value over and above the ActiveX
support already in Java. (And no,
we don't care about OpenDoc, and you shouldn't either. Has one prominent Mac
ISV shipped any software that
uses OpenDoc? Please.) It's also important to note that we've provided the
source implementation of our ActiveX
support for Java back to Sun so that Sun can distribute it to other
licensees, if they choose to.
It's also humorous for Sun to try to position Java Beans as somehow more
"open" and cross platform than ActiveX
is. This is basically equivalent to Sun's asserting that it is somehow
inherently more "open" than Microsoft.
Does anybody really buy this stuff anymore? Certainly not the customers who
had been paying for Sun's
proprietary chipset, proprietary hardware and proprietary OS, and who are
now buying equivalent or faster, more
"open" Windows NT machines. And spending much, much less money on them.
Cornelius Willis
Group Product Manager
Internet Platform and Tools Division
Microsoft Corporation
http://www.microsoft.com/activex
--** History 101** Hiroshima 45 - Chernobyl 86 - Windows 95 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- "The only problem with Microsoft is they just have no taste, they have absolutely no taste, and what that means is, I don't mean that in a small way I mean that in a big way. ...I have a problem with the fact that they just make really third rate products."
Steve Jobs, Triumph of the Nerds, PBS Documentary -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- tbyars@earthlink.net -=-=-=-=-=-=-=-=-