“Microsoft’s rejection of Sun Microsystems’ Java is nearly complete. Save for the occasional nod towards Java’s popularity in enterprise development, Java does not enter into any of the development plans at Microsoft.” Read the editorial at ZDNews. Also at ZDNews, you will find another related editorial, “will C# benefit Microsoft, or the industry”?
Sun-Microsoft: Missed Opportunities
About The Author
Eugenia Loli
Ex-programmer, ex-editor in chief at OSNews.com, now a visual artist/filmmaker.
Follow me on Twitter @EugeniaLoli
19 Comments
The way I always understood it, MS was distributing a *modified* version of Java with Windows and calling it Java.
They were distributing J++ (a Java development environment) under a Java license. J++ included a number of extensions for Windows-specific development, and it turned out that the license didn’t allow for that. The JVM that Microsoft shipped allowed for J++ code to run, but since J++ could also do normal (non-extended) Java development, normal Java code ran as well.
Sun saw what MS was doing and told them to cut it out: (me paraphrasing) “if you call it Java, it has to actually *be* Java”. MS then stopped distributing their modified Java and instead included some crusty old version of Java on Windows, rather than the current one that was readily available.
Sun forced MS to stop shipping any new JVM other than one developed by Sun or approved by Sun. MS could have either been subject to the whims of one of their competitors, or simply shipped what they were allowed to ship of their own code. They can do security fixes to their existing JVM, but under the settlement they can’t make a new JVM. They also have to stop shipping their own JVM at some point (5 years?) in the future.
I believe that Sun thought MS would just bow down and ship Sun’s JVM, but imo they should have known better. Essentially, if you want cross-platform support in Java now, you have to write to MS’ JVM, which is obviously not the most recent version of Java. Sun was complaining about people writing to MS’ JVM before, but now they’ve essentially forced people to do it. The alternative is to find a way to get end-users to download the JVM from Sun, which simply hasn’t happened so far with most Windows users (and frankly, most of the sites I need a JVM for don’t work properly with Sun’s JVM).
If standardization of C# (and more importantly the .Net CLI) opens it to more platforms quickly, I think we’ll see Java development slowly whither away. The only thing that could truly save it would be true standardization, and I don’t think Sun will go for that (especially since most standards bodies will allow the kind of extensions that Microsoft was doing with J++ anyway).
They were distributing J++ (a Java development environment) under a Java license.
Huh? You mean they licensed Java from Sun, implemented a JVM, and then didn’t call it “Java”? Eww.. If I was Sun I’d have felt slighted. Maybe Sun shouldv’e had part of the licensing requirement be that you actually call your Java implementation “Java”. Hmm.. maybe they did. Dunno.
…and it turned out that the license didn’t allow for that.
Hmm… I’d take a guess here and figure that MS’s legal team knew exactly what the Java license allowed and what it didn’t allow. I’d bet they knew what it would get them in the long run (court ordering them to pay Sun) and what it would get them, and went for it.
Sun forced MS to stop shipping any new JVM other than one developed by Sun or approved by Sun.
Wow. That’s weird. You’d think that after Sun got the check from MS, they’d say, “ok, now go ahead and do it like the license says”. Weird.
Thanks for the clarification PainKilleR.
Huh? You mean they licensed Java from Sun, implemented a JVM, and then didn’t call it “Java”? Eww.. If I was Sun I’d have felt slighted. Maybe Sun shouldv’e had part of the licensing requirement be that you actually call your Java implementation “Java”. Hmm.. maybe they did. Dunno.
No, they made an IDE for Java that included extensions and still used the Java name and trademark/logo. The product was called Visual J++, but it had the Java logo on the box and included some sort of statement about Java application development. Sun’s big complaint was that J++ allowed people to develop applications that didn’t work with Sun’s JVM, but still had the name/logo for Java on the box.
Hmm… I’d take a guess here and figure that MS’s legal team knew exactly what the Java license allowed and what it didn’t allow. I’d bet they knew what it would get them in the long run (court ordering them to pay Sun) and what it would get them, and went for it.
Perhaps, but then MS didn’t have much of a legal team until the antitrust stuff came up, and Visual J++ came out back in ’95 or ’96.
Sun forced MS to stop shipping any new JVM other than one developed by Sun or approved by Sun.
Wow. That’s weird. You’d think that after Sun got the check from MS, they’d say, “ok, now go ahead and do it like the license says”. Weird.
They already broke the license once, so Sun revoked the license.
Microsoft was THE biggest Java fan in the software world.
Fastest JVM
Most reliable JVM
Best Java built into a browser
Java extensions to use Windows API to make cool apps
Delegate model for better event handling
And then Sun got on their case because Microsoft’s implementation had extensions that made Java work better on Windows.
Some of these extensions are not too different than what IBM had to do to get Eclipse to work well.
If Sun had made Java an open standard instead of keeping it a closed standard, Java would be the defacto programming language today. There would be no C#.
Sun is stupid, as usual.
Word has it that they are cutting 8,000 people shortly.
Likely that’s just the first cut of many to come.
You can’t have any sympathy for an arrogant company that squanders its marketshare.
#p
“Fastest JVM
Most reliable JVM
Best Java built into a browser
Java extensions to use Windows API to make cool apps
Delegate model for better event handling”
Not to be overlooked, the Visual Studio J++ IDE was widely considered to be one of the best, if not the best, Java development environment on the market (compared to Symantec’s Cafe and everything else that was around at the time).
Microsoft was THE biggest Java fan in the software world. Indeed.
When I was writing Java applets and servlets back in ’96-97, Symantec was considered the IDE of choice. The smart word was to avoid J++ because:
– Microsoft’s proprietary extensions invalidated one of the main reasons of using Java, i.e. write once/run everywhere
– Microsoft’s well-known history of embrace and extend
– lawsuits flying between Sun and Microsoft
– Microsoft kept threatening to pull J++ from Visual Studio, and it did pull applets from MSN while bad-mouthing Java and hyping ActiveX
– rumors and leaks of what turned out to C#/.NET under development in Microsoft’s labs (the so-called Cool project)
These were all related. Microsoft did a competent job with J++ but they were no fans of Java.
If Sun had left Microsoft alone and allowed them to continue on the path they had set out on with Visual Studio J++, many VB programmers, or C++ programmers who sometimes needed to work in VB, would have switched to J++ because it basically had ALL of the ‘advantages’ of Visual Basic with virtually NONE of the well-known drawbacks. It was the true object-based environment that VB should have been in the first place. J++ was a very strong and complete first-class citizen of the Visual Studio language suite.
J++ had huge potential to displace VB in many hearts and minds but Sun put an end to that story, most regrettably.
Symantec Java was a pile of crap. Come on. The IDE was slow, buggy, and crashed a lot. They had tons of language bugs. Their JVM had the world’s worst garbage collector.
Thanks Gil for reminding me about the J++ IDE. Why, it had a debugger that worked. And speed. The Symantec IDE had a very slow compiler and a cruddy debugger.
The Microsoft extensions were there for WINDOWS. Java programmers are the stupidest people around. If you aren’t making a WINDOWS app, don’t use the WINDOWS EXTENSIONS.
At Microsoft, many developers were enamored of Java. It was indeed the heir to Visual BASIC.
Just think how incredible Microsoft J++ would be now with 4 years of evolution under its belt! Every Windows app would have been rewritten in compiled Java.
In the browser space, Microsoft had the very best integrated Java. There is STILL nothing that compares to Microsoft Java circa 4 years ago.
We had an applet that could talk to the web page and Windows at the same time. We used this to make some wicked cool page layouts leveraging the brains of the client.
Netscape Java. Bug city. Netscape anything in those days was bug city. It was no wonder that Netscape made an early exit. They didn’t have anyone who could code worth a damn.
Sun Java is still just a huge mess of libraries, many of them with so many incompatible revisions it is a nightmare.
Anyone want to do something complex with EJB? No takers? No wonder. That whole pile of steaming crap took years for Sun to sort out. And how many Java programmers understand it today? Very few.
Face it, Sun has done basically everything they can to kill Java. They alienated the world’s number one software company who was a big Java fan. What dumb CEO does that? If Microsoft had been able to help evolve Java, it would be the defacto standard programming language on Windows today.
And where is Java going today? Further into some giant IT quagmire it appears. Only big IT apps are written in Java. They don’t care about speed, efficiency, only being able to ship a spec to the trendy third world country of the month and get something back for cheap.
At the core, that is what Java is. Cheap specware. It barely works.
#p
I think Sun’s biggest blunder with Java was when in the lawsuit settlement with Microsoft, it allowed Miccrosoft to break free from the previous contract regarding bundling Java into Windows. In other words, Microsoft could get rid of Java from Windows, without Sun being able to do anything about it, except for crying out load in the antitrust courts.
—
johnG: MS then stopped distributing their modified Java and instead included some crusty old version of Java on Windows, rather than the current one that was readily available.
Windows XP currently loads the last version of the VM available. For me, it is a lot faster than Sun’s VM, no fault of MS. Less anoying too (no Java consoles poping out when a Java aplet loads).
johnG: How so?
Like when the whole world was using X Window System, they insist on NeWS, and disallowed other players from using it. BTW, Swing ISN’T a windowing system. Never was, never will. It was funny though.
johnG: Huh? Please see http://www.jcp.org/
It isn’t a standards body. Until recently, Sun controled every detail of Java. You have .NET to thank for its current policies.
PainkilleR: which simply hasn’t happened so far with most Windows users (and frankly, most of the sites I need a JVM for don’t work properly with Sun’s JVM).
I know what you mean. Amazingly, those sites works well with Sun’s and Blackdown’s VM on Linux, but not on Windows’ Sun JVM. Something tells me it isn’t complete.
johnG: Huh? You mean they licensed Java from Sun, implemented a JVM, and then didn’t call it “Java”? Eww..
The IDE isn’t called Java, but it have a Java sticker. Plus, the JVM also have the Java logo.
stahbird: Microsoft’s proprietary extensions invalidated one of the main reasons of using Java, i.e. write once/run everywhere
Using Win32 extensions was TOTALLY optional.
stahbird: Microsoft’s well-known history of embrace and extend
Some idiots they may have been, picking an IDE based on their base corporate ethics, rather than how good the software really is.
stahbird: Microsoft kept threatening to pull J++ from Visual Studio, and it did pull applets from MSN while bad-mouthing Java and hyping ActiveX
When did they do this? Now compare that date with the one where Sun file a case against Microsoft.
stahbird: rumors and leaks of what turned out to C#/.NET under development in Microsoft’s labs (the so-called Cool project)
Microsoft have thousands of stuff in their R&D lab. Heck, once they started a Word rewrite in their R&D labs, but never used it. Cool project, as the rumours said first, was an extension of Java. Which is why C# and Java was so identically similar.
The Prophet: The Microsoft extensions were there for WINDOWS. Java programmers are the stupidest people around. If you aren’t making a WINDOWS app, don’t use the WINDOWS EXTENSIONS.
Okay, at this point I’m wondering, who are you and what you have done to The Prophet?
The Prophet: At the core, that is what Java is. Cheap specware. It barely works.
Where’s Camel? He let done a flamebait like this? Huh?
J++ could have killed Visual Basic, eventually
Are you sane ? Have you read the bitching VB users have done about VB.Net ? And those changes are pretty minor compared to the differences between VB and a java/c++ type language !
Sun licensed the Java platform to Microsoft, MS didn’t implement a compliant JVM. Before any platform can be certified Java it must pass tests (the JCK). The MS JVM failed. Among the faults were invoking external non-Java code. They substituted their own COM wrapper API in place of RMI and JNI. No it would be fine to include this COM API in addition to the standard cross platform APIs; they didn’t. By forcing J++ users to use their own JVM specific code (no standard Java support for distributed objects), this spread FUD about how Java wasn’t cross platform. e.g. This COM wrapper stuff wouldn’t even run in Sun’s JVM on Windows.
RMI and JNI were part of the Java spec, MS didn’t implement them…
Tyr, these people would bitch if Microsoft renames VB to Visual Basics. 🙂
The difference is that VB users are able to move slowly to J++, while in VB.NET case, they either use an old version, or something significantly different (not minor changes, my frined 🙂
Read the replies for the article from users. There are really really good replies. Actually, the funny thing is the people who are replying know more than Caroll about the case, which is really striking.
I can’t believe how can Caroll be so shallow.
Whatever you people say about Sun being uncooperative is plain BS. NeWS , XWindows, whatever.
SUN did a pretty good job with NFS and NIS, every major UNIX does NFS because of Sun.
Take a look into Internet RFCs and count how much stuff Sun contributed to it and how much Microsoft.
Microsoft is trying to screw with every standard they touch – Sun had enough bucks oppose them.
Just look for Microsoft stepping into security arena –
Kerberos is already quietly killed. Next is PGP, and who needs PGP in Passport era anyway.
The whole concept of Java is to be able to write a program that will run on every OS through a JVM. If a company like Microsoft changes the JVM and developers tools so that the app will only run on their OS, then the concept of Java is broken and you no longer have cross platform applications. This is specifically what MS was purposely doing. They wanted to make sure that anyone creating programs with their development platform would only run on Windows. Anyway that doesn’t understand that is naive.
As for SUN not being a good play mate. Are you laughably trying to say that MS is a good playmate? You can’t be serious. If you are, I’d like to know what drugs you are on.
The whole concept of Java is to be able to write a program that will run on every OS through a JVM.
And Microsoft didn’t have to do a single thing for that to be false. People were complaining about ‘write once, test everywhere’ long before Microsoft had Visual J++ on the shelves, let alone the lead in the browser market (which lead to a lead in JVM distribution).
If a company like Microsoft changes the JVM and developers tools so that the app will only run on their OS, then the concept of Java is broken and you no longer have cross platform applications.
Except that the development environment can create cross-platform apps and the JVM can run cross-platform code.
This is specifically what MS was purposely doing. They wanted to make sure that anyone creating programs with their development platform would only run on Windows. Anyway that doesn’t understand that is naive.
After all, they couldn’t have been trying to make it possible for people to develop fast Windows apps in the language of their choice. That just wouldn’t make any sense, why would people want to use Java to develop Windows apps?
I still get applications from hardware vendors that were never meant to run under another platform (whether it’s Solaris or Windows) but were written in Java either because the developer was more comfortable with it or because some manager wanted Java. People do all kinds of crap with Java that make it impossible to use on multiple platforms, and that’s just the people using the language, not Sun’s competitors (though the newer Sun license agreements sometimes permit them to do so with their development tools and vm). How much of J# was developed to hurt Sun, and how much of it was developed to allow developers to do what they want to do?
As for SUN not being a good play mate. Are you laughably trying to say that MS is a good playmate?
Sometimes Sun makes MS look like a priest (well maybe one of those catholic priests).
I am not sure whether Microsoft rejected Java or Sun forced Microsoft not to touch Java. Microsoft did implement JVM, Sun claimed that it has properties to undermine Java’s portability, but I think that is a really lame excuse.
Sun has a history for being uncooperative. They had their own windowing system originally. Also they didn’t give the control of Java to a standards organization, instead they wanted to control themself. On the other hand C# is becoming a true standard now.
Besides these observations I think Microsoft and Sun should have worked closely and make Java a success on the desktop. Sun acted too greedily.
I am not sure whether Microsoft rejected Java or Sun forced Microsoft not to touch Java.
The way I always understood it, MS was distributing a *modified* version of Java with Windows and calling it Java. Sun saw what MS was doing and told them to cut it out: (me paraphrasing) “if you call it Java, it has to actually *be* Java”. MS then stopped distributing their modified Java and instead included some crusty old version of Java on Windows, rather than the current one that was readily available.
Sun has a history for being uncooperative.
How so?
They had their own windowing system originally.
Yeah, and they ditched it for Swing.
Also they didn’t give the control of Java to a standards organization, instead they wanted to control themself.
Huh? Please see http://www.jcp.org/
Sun has a history for being uncooperative.
How so?
Go and ready history, computer books. Most of the books I have read, articles I have read even before Java, described Sun as being uncooperative in the industry. They always wanted to go by their own way. This is based on several issues of course, one of them is windowing system.
They had their own windowing system originally.
Yeah, and they ditched it for Swing.
lol, I am talking about XWindow vs NeWS (Network extensible Window System) of Sun. Sun never made NeWS open standard but they eventually gave up and included XWindow. By the way it is interesting that you consider Swing as a windowing system. ))
Huh? Please see