"MS Killed Java" (on the Client) JL Founder
jgeelan writes "In a commentary titled "Microsoft Killed Java" the founder of JavaLobby, Rick Ross, revisits the 'death' of Java on the client.
"Five years ago, almost to the day," Ross declares, "Microsoft shipped IE4 with a JVM that was intentionally engineered to provide leverage to corrupt and pollute Java compatibility standards."
According to an Associated Press report, Microsoft Corp has until only October 4 to respond to Sun Microsystems' request for a federal court injunction requiring Microsoft to integrate Java into Windows."
It's interesting to discuss this on the day that Michael Skakel, the "Kennedy cousin", is sentenced to 20 years to life for killing a woman 25 years ago. Someone mentioned to me that it seems a harsh punishment for something that happened so long ago, and I could only reply, "She's still dead."
Five years ago, almost to the day, Microsoft shipped IE4 with a JVM that was intentionally engineered to provide leverage to corrupt and pollute Java compatibility standards. The US District Court clearly found Microsoft guilty of illegal anticompetitive behavior with respect to Java, and that court's findings were upheld and clarified by the US Court of Appeals. Nonetheless, Microsoft has continued to benefit from having used its monopoly power illegally to suppress the emerging success of Java. They have been as free during these past five years as Michael Skakel was since he committed his crime. It is time for justice to be done, and justice demands that Java get the chance to succeed that Microsoft intentionally and illegally took away.
It doesn't matter that Microsoft committed the illegal acts a long time ago, they are no less culpable. I support Sun's motion and hope that the judge who hears this case will understand that Microsoft's illegal acts were made even more severe by the fact that Microsoft committed them early enough to kill Java on the client before it had a reasonable chance to succeed. In the famous words of Barney Fife, they "nipped it in the bud!" It is representative of the worst and most calculated forms of illegal use of monopoly power.
I don't necessarily disagree with all of Mr. Ross's comments, but certainly he could have written his article without comparing Microsoft to a convicted killer, and not made any obvious comparison to Java and a the victim of such a murder. Shame on you, Mr. Ross.
Sun didn't help. For years they complained that Microsoft was implementing Java without proper licensing, and wiping the courtroom floor with MS. Then MS raised their middle finger at Sun and told them where to go today, and removed Java completely. Then Sun let them use the broken client from several years ago in IE5.5 SP2 and IE6.0 as some silly settlement. Now, Sun is whining that MS isn't using their newest client. Yes, I'm sure MS tried to re-invent Java (J++ or whatever they call it now), but remember the facts, Sun was a huge help is screwing themselves over.
There is no reasonable defense against an idiot with an agenda
:wq
Java is not even cold on the client, must less dead. There are TONS of line of business applications written in Java that are used on a daily basis. The web isn't everything. Just because you don't see Java Applets doesn't mean Java on the desktop is dead. Do a little research first.
http://www.naildrivin5.com/davec
5 years ago Netscape was the king of the browsers -- nothing else came close. When MS released it's browser they out leaped Netscape by offering faster JVM and better compatibility. If Netscape didn't just sit back and watch it's browser being eroded from the market and Sun didn't just put all it's eggs in one basket (Netscape) things could have been different.
I am sorry, but all this is not entirely M$'s fault -- the other "big" boys did nothing but enjoyed their short lived fame while M$ continued its assaults.
Karma stuck at 50? Add 2-5 inches.. err.. 2-5x Karmas Count to your pen1es.. err.. Karma all naturally and private
You know what the whole Sun vs. MS regarding Java thing reminds me of? In high school, we had "open lunch", which meant that we could leave the school grounds to eat at the restaurants across the street. Well, after a few years of this, some of the restaurants and stores complained about how awful the students were, and how they were always having to call the police to break up fights, report theft, etc. So the school took away open lunch for a year. Open lunch was re-instated, at the request of those same stores and restaurants, because they realized that those same rowdy students were providing about half of their revenue. McNealy can't have it both ways. Really, he shouldn't have it any way. Say what you want about Bill Gates, but at least he doesn't whine constantly. McNealy and Sun deserve to die a slow, painful death, with their incomplete, overpriced products.
Both a convicted killer and a convicted monopolist are both criminals.
The only real difference I see is that there is only one killer, but Microsoft is a criminal organization - there are a lot more criminals at Microsoft.
I wonder how MicroSerfs sleep at night, knowing they work for an organization as criminal as the Mafia, Yazuka, or the Nazis...
Java still sucks for GUI development today. I use it heavily for server-side development, and I've worked with plenty of Java UIs. The only acceptable Java UI system I've ever seen is IBM's SWT framework, as used in Eclipse. Swing UIs are borderline at best, and AWT isn't even worth discussing. In Sun's defense, creating a decent fully cross-platform UI (without depending on native widgets) is a tough problem. SWT's use of native widgets makes a whole lot more sense - Sun should take note.
Of course, none of this changes the fact that Microsoft did everything in its monopoly power to crush Java. Abandoning Visual J++ and then insulting their userbase with J# and "Jump to .NET" showed that when it comes to crushing the competition, even Microsoft's own customers better not get in the way.
Java on the client was mainly killed by plain old HTML and round-trip processing (CGI, ASP, forms, etc), which proved far superior for quickly and easily building decent, usable UIs, and which downloaded to and rendered on end-user machines much more quickly.
The really stupid thing is that Microsoft was probably Sun's best chance for keeping Java alive on the client. MS had the fastest JVM around for a LONG time, and they had the most bug-free JVM for a long time. (I wrote Java apps for a number of years and had to constantly test on about a dozen JVM/JITs, I even recall the first Sun Java event where Sun people were praising and recommending the Microsoft JVM.)
Microsoft probably could have killed Java, and it's reasonable to assume they thought about it -- although I personally disagree that J++ was an actual attempt to do so (it was a kick-ass environment, and I produced vast amounts of full-compatible code with it) -- but the simple fact is they didn't have to, because Java never really got going on the client. Java lives on in the server-side world as a kind of VB-for-people-who-hate-Microsoft, and that's about it, but MS didn't kill it.
Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005
And Swing is still great when you need a quick, thin (logic-wise) UI that's doing something just out of reach of HTML's capabilities. (native widgets or not, speed and look are often just not important)
sic transit gloria mundi
confusing procedures
For example?
poor performance
Have you used it recently?
repeated incompatible upgrades
Example? The only thing I can imagine you're referring to is the Swing classes that replace or enhance AWT. That was a welcome change by just about anyone's standards.
costly support requirements
What are you talking about, this is pure FUD
and expensive development tools
They never billed me for emacs, I thought it was free?
Look at Flash and its success in comparison: Macromedia positioned it as harmless eye candy (so it didn't catch Microsoft's attention), didn't promise much of anything, had great graphics and animation support, and provided great authoring tools. Flash came in under the radar screen and didn't look like like a threat to Microsoft, and it picked a market and stuck to it (eye candy).
Sun could have succeeded with Java: they should have fixed severe technical problems with Java earlier and standardized it through a standards body. Sun should also have focussed on keeping Java small and on the client. Microsoft would likely have supported standard Java and added lots of proprietary libraries--just like what Apple is doing with Java, for example.
Today, Java is still a pretty decent programming environment with a very efficient runtime and capable libraries. I'd still recommend using it for many kinds of commercial applications. Java will likely continue to be a big deal for server side programming. For lightweight clients, Flash will continue to make inroads. For widespread adoption by the open source community, Java missed its window of opportunity for the most part--Sun's policies still don't make it a good platform.
But what Java is today is Sun's responsibility, not Microsoft's or anybody else. Companies like Macromedia and Adobe have shown that you can compete with Microsoft and that you can ship formats and software that cuts into Microsoft's markets. But if a company behaves as stupidly as Sun did, they will fail. And the fact that Sun has so thoroughly failed with their promises towards the open source community and has failed to keep Java suitable for its original purpose also means that I don't have that much sympathy for them.
"MORE compliant"? Compliant with what? The "Java" specification? Was it more Java than Java?
MS Java was, and is (because it's still out there and it's still a pain) NON-COMPLIANT, which means quirky, of unpredictable behavior, not-following the standard imposed by the brand which they licensed.
If I code an Applet using standard Java and it runs on every JVM except MS, MS Java is crippled. And that's the situation that prompted Sun's conflict with MS.
Ask any Java developer out there that has had to deploy Java Applets on the Internet, where you cannot force your users to download a standard (or non-standard) JRE unless you're willing to lose demographics. They have to target their Applets to either standard JVMs or MS JVMs, or spent code and debugging time testing both as if they were different platforms... because they are.
If your JVM cannot run my standard Java code unless I target it specifically, the JVM is crippled. If the code I target specifically on your JVM doesn't run exactly alike in other standard JVMs, your JVM is crippled (it requires non-portable non-cross-platform code).
Now, MS Java may have been faster (certain parts were), and may have been a nice language/VM set by itself. But it was not portable, not cross-platform, and it was not compliant with the Java specs. Which means it broke Java applications and MS legal obligations according to the license.
Freedom is the freedom to say 2+2=4, everything else follows...
As unfashionable as it is on
Did M$ ship IE with a "corrupt" JVM, i'd sure bet they did.
SO WHAT?
Did they intend to kill the Java adoptions and standards momentum?
I'd bet they sure wanted to (and still do).
SO WHAT?
Just as we in the Open Source and FSF communities are free to get up in the evening and work on any project we want, deploy any OS we want, use any app we want and deploy any available technology we can...
so is M$, they are no more obligated to support java than pepsi is to support coca-cola, than lexus is to support mercedes, than toyota is to support nissan
M$ is responsible for its own karma. If the world wants Java and M$ doesn't support it they way the world wants, they will lose market share....
Microsoft (and any other company) is only resposible to their stockholders and customers, if that means killing off a competitive technology, that's the way the game is (and has always been) played. That's the system.
It was Sun's responsiblity to make Java an important, dominating technology, NOT Microsoft.
If you've REALLY followed the Java Saga, Sun has done as much (some would say more) to halt Java adoption/deployment as Microsoft.
If you're a customer, you vote with your wallet.
If you're a developer/technologist you vote with the systems you deploy/develop and recommend.
You want to "beat" Microsoft?
Do it with better software.
Ten quid, she's so easy to blind. And not a word is spoken...
Look, the notion that middleware is going to magically let you write an app once and run anywhere, results in apps that can only support a lowest-common-denominator of the APIs available on the various platforms. Sure Sun hyped it to the moon, no surprise there, but that doesn't mean it was going to happen. Middleware has *always* had this problem and always will. What happens when Windows comes out with some new feature (USB support say) and then Java doesn't get around to supporting it for a year....all the Java coders are supposed to simply wait a year while native Windows apps use the feature right away? Yeah surrrrre.
- adam
IE5+, Opera, Mozilla, or Netscape 6+ is now a great platform for developing many types of applications. Sure there are incompatibilities but they all generally support a big common set of Javascript, DOM, and CSS that lets you do some awesome things.
The irony of it is that these platforms are using JAVASCRIPT for their language yet are still fast enough in most cases. (Remember the complaints about Java being slow?) All the heavy lifting is done by the browser itself, and that's compiled code.
From a training and learning standpoint, it's a natural progression from HTML and CSS into programming with Javascript and DOM. That's not true for the move to Java.
Well That my freinds is the whole point of the anti-trust act. It recognizes that there is a diffence between a small or competative company and a company with dominant market leverage. And the law says that the rules are different for you and you do have some rules of conduct imposed on you. Yes your liberty as a large entity is restricted for the public good. But of course you are enjoying the fact that your rise to power was enabled by free markets and in return this is what you must not do: Use your market dominance to stifle innovation
the classic example of the latter, is at one point general motors could have made cars that only run on GM gasoline. Of course, they didn't and of course now they would not have the leverage to do so. But that is the nature of the law that protects free markets.
The negative example is APPLE. Sure apple is a closed system. But given their pathetic market share they do not dominate a market sector sufficiently to impose their will on another market sector. Some would argue this by trying to narrowly define a "market sector". And this is exactly what MS has done in court, except they tried to widen the defintion to show they were not dominating a market sector or they tried to widen it to define an OS as encomapssing browsers, VMs etc... Really its not an entirely bad argument for them to make, but that's whay we have courts and that is why it has taken this long to get a decent well considered and appealed decision.
so now we have one and its fair. It imperfectly punishes MS but the crime was vague too. So its a solomonic compromise.
my only regret is that I wish that there was sort of RICO act for this. That is MS has clearly shown that it has made the same nature of violation many many times. I was dissapointed that Penfields decision was not carried out because while the Appeals court was correct in saying the decision was too harsh for the crime at hand, it ignored the preponderance and repetion of minor violations that was ingrained in this comapny and required a structural remedy not a penalty.
Java is not that great that it is not capable of improvement. Sun crippled Java so that it would only work within the area that suited their business objective. Microsoft removed the restriction. Sun then tried to force Microsoft to observe their restrictions by introducing stricter conformance criteria in their next release, Microsoft declined to upgrade.
The initial article is not only insulting by comparing Microsoft's actions to murder, it is also wrong as a matter of fact. The Java case was settled out of court. The anti-trust case did not consider Microsoft extensions to Java.
The only reason why Java was taken out of the browser was the legal action by Sun. If that killed java then sun killed java.
Furthermore the people who claim that C# is unnecessary because we already have java should not also complain that Microsoft tried to modify Java. What Microsoft has made clear they want is an object oriented language that is similar to C, simpler than C++ and open to development. Sun has made it abundantly clear that Java does not meet the third criteria. Therfore Java does not meet the criteria defined by Microsoft, do not complain if they propose something else.
Java was not a novel language. The only novel thought at the time was the idea that anything might displace C++ from the position it had established.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/
If you were talking about the software development platform, you would be correct.
However, the incompatibilities were in MS JVM, which was pre-installed in Windows.
This is on the user-side, and a user is as likely to notice the source of the problem, download and install a new JVM, as he/she is likely to download and install a new set of shared libraries.
Freedom is the freedom to say 2+2=4, everything else follows...
HMM, Really? Which District Court? Maybe you provide
Give us the citation, please?
"... and that court's findings were upheld and clarified by the US Court of Appeals.
Ditto, missed that one, too. How about that citation as well?
"... Nonetheless, Microsoft has continued to benefit from having used its monopoly power illegally to suppress the emerging success of Java."
Maybe you could also tell us all WHY you think M$ is responsible for helping Java succeed?
So using your implied standards, Sun, HP, IBM et al have a responsibilty to help an emerging technology, say
HMMM, that's a novel definition of business competition "You MUST support your competions' emerging products". No wonder you posted AC. Silly Troll.
Ten quid, she's so easy to blind. And not a word is spoken...
Without even considering that there were Java options from other companies too, it is not reasonable to claim that Microsoft simply destroyed Java. There were other options, and it is obvious that nobody uses them too.
Most important of all, which platform other than Microsoft's Windows do you see people using Java all the time for client purposes. I am using Linux at work as a desktop and there is no single Java program I am using. How about Macs, Apple supports Java, but there is still not important Client programs. How about Java Netscape from Netscape and Sun, how about Java Office from Corel? Did Microsoft destroyed them too? We have RAD technology which makes it easy for us to create almost anything in no time with the full performance of that platform.
I like Java, use it, my whole career is based on Java, but the truth is that Microsoft didn't kill Java.
It became so funny to see these claims, because everybody fails and can not compete, doesn't give any nice product, but then they come and blame Microsoft for it. This is the type of behavior which will not get anybody anywhere, unless some Judges will be affected by this type of lies and false claims.
Lastly, Java is far from dead, rocket surgeon. To extend your inane comparison, it's like Michael Skakel being found guilty after the victim walks into the court and says "Hey, uhh, I'm not dead!".
Or even better, if they sentenced him, and, say in a year, she walked in and said that. Then the court drags him out of his cell and sentences him to another 20 years for killing her. Microsoft and Sun already settled this case. Sun just found a new angle from which to attack it after they realized that the settlement wasn't quite what they were looking for (Microsoft says, 'ok, we can't ship our Java, we'll not ship any Java'; Sun says, 'shit, thats worse than them shipping their own Java').
-PainKilleR-[CE]
Bodrius wrote:
.EXE (requiring the MSJVM). And anyone with IE 4 would be able to run it.
.NET/C++). Java might have been a nice language, but the APIs really needed to mature faster and not break things with 1.0 and 1.1. When Sun sued MS to remove Java products, it got what it deserved. Sun attempting to sue MS to add Java to windows is ludicrous. Sun lost market share because they spat in the faces of developers like me who had a legacy with their product. I haven't experienced that with MS.
If I code an Applet using standard Java and it runs on every JVM except MS, MS Java is crippled. And that's the situation that prompted Sun's conflict with MS.
My response:
I was an early adopter, and Java zealot for the first 5 years of Java. I wrote applets and apps with Java using the 1.0 and 1.1 APIs. If you recall history, Microsoft had the best implementation of Java before Java 1.2, when Sun changed the rules, and expected Microsoft to follow.
I was quite upset by the sudden changes in the Java platform. Swing's perf was entirely unacceptable. There were name conflicts like List added to java.util when List was in java.awt.
Microsoft did not adopt the 1.2 JDK, and added stuff so that applet writers could write applets that tightly integrated with applications on Windows. Even though Java was a great language, the Java Platform version 1.2 really turned me off. I had a few other reasons.
1) In order to use the latest advances in the JDK, I now had to require that someone to setup Sun's JRE, which was a HUGE (I think 20MB+) download (Broadband wasn't there).
2) Microsoft's JVM would actually let me distribute my app as a
3) I tested the perf of one of my applications (a ray tracer) on Windows (500MHz P3) and on Sun's latest and greatest JVM with perf features. MS: 4 seconds. Sun: 20 seconds.
4) I was already used to writing with the AWT. It felt like home. I could write the 1.0 style for applets and they'd run on IE and NS. I could write the 1.1 style, and they'd run on MS. I didn't use the MS extensions, but I was leaning towards it for doing things like accessing the Windows Music and Sound APIs. Java had shit for people who wanted to write music composition software.
5) Visual J++. It had a debugger. It wasn't written in Java so it ran fast. It didn't support JDK 1.2 (I dropped JDK 1.2 the moment it wouldn't compile an app of mine). It was the best development environment for Java bar none. And it sped up my Java program development by a factor of 5. Especially the debugging.
I now write for Windows in C++ using Visual Studio (in a few years I might evaluate C#, but VS 6/C++ works a hell of a lot better than VS
That and Sun sued MS. Sun won. Sun got what they paid for. Too bad. The dot com's went bust. The industry is down. Sun's struggling to survive. That's the way I see it.
About three years ago I finished up a large Swing app to be used inetrnally by the company. After some profiling and tweaking, it was pretty responsive running on a P450 with just 32MB of RAM (The minimum spec for machines it would run on). That was just after jdk 1.2 came out.
Swing was great to work with as it was VERY extensible. We had all sorts of custom comboboxes and tables and form entry fields. The app worked really well and the users loved it.
When people try to tell me Java or Swing is not good enough for user facing applications, I have to think they haven't really tried.
On the widgets, Sun DID try native widgets, that's what AWT is!!! To me SWT looks a lot like a spruced up AWT. I'll admit I've not seen Eclipse in action, and I still think the tools to develop Swing apps are not great (though I've evaluated very few of those for a while since I too am mostly into server side programming). All of our Swing work before was done by hand which is very easy to do when you have a good framework.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
"I know win32 programs that won't work with half of the above mentioned. "
Oh really?? Take a guess, what percentage of ALL Win32 apps out there "won't work with half of the above mentioned" ?? And you think Java is the solution to this supposed "problem"?
I've been running XP for a few months now sans java. I haven't hit a single site in the thousands and thousands that I've visited that has required or even used java to perform. Why do I need it now?
What killed java (client side)? Well people will argue to death that it was MS? But what killed ActiveX (client side)? Well people will argue to death that it was Java. What really happened.
There are two things I think happened. Java became "popular" because of things it claimed to do (some of which never materialized). Creating a rise in "amateur" programmers who's only creative outlet was applets on the web used for banners and menus etc. Everytime someone would hit SOME of these sites and see the horrible slow downs that occured with the prominently marked "SEE MY NEW JAVA MENU" then people associated "Java" with crappy GUI development. Java might help certain aspects of coding but it doesn't suddenly create automatically efficient code. You can still use all the memory you want even though you're not specifically allocating it like you might in other languages.
This is why Java was better on the server side. Having a server implies that you have more experienced coder doing the work. This typically (not always) means tighter code and better resource use. Hence java client side received boo's and name calling and java server side is quickly replacing other languages.
Now client side it didn't help that even experienced programmers saw performance problems with their client side applets. I would still say it wasn't the code itself that ultimately caused the downfall. I certainly wouldn't say it was MS. Additionally I think this is a shitty way for SUN to try to get market share. SUN already sued MS and got a settlement along with a nice chunk of change, kicking MS out of that market, and killing a couple of MS's initiatives. They could have taken steps back then to take control of their destiny instead of constantly deferring to MS for the success or failure of Java. They failed to do that.
"Do not be swept up in the momentum of mediocrity." - anon
I've been writing Java code since JDK 1.0. I've done plenty of work with standalone clients, applets, and servers since that time and with every release since then, and blaming Microsoft is just plain revisionist history.
Not only was Netscape's compatibility with the Java standard much much worse than Microsoft's (Sun sued over nits while Netscape had major API differences!), but it wasn't even compatible between versions of itself. Minor point releases had major points of incompatibility with each other, and the stability of the JVMs included with Netscape was very poor to say the least.
I know that's not the popular viewpoint, but anyone who wrote significant java code for the browser back then should recall how painful it was to deal with the Netscape Java flavor-of-the-week and how hard it was to work around the things that would take out the browser. We gave up and went back to HTML.
But I don't think it's fair to blame Java's death on the client entirely on Netscape either. Anyone remember what it was like to write client code with AWT? I'll tell you what it was like - it sucked. It took Sun two major JDK releases (1.1 and 1.2) to fix that with Swing, and Swing is such a pig that you need a pretty heavy client to run nontrivial applications.
So what we had was a GUI library that was not really very good for building clients and a major vendor who couldn't make a stable version or maintain compatibility either within its own releases or with the standard itself. And that's completely independent of Microsoft.
I think any chance of Java making it on the client was killed when Sun decided not to offer it originally as a plug-in. Had it been a plug-in then at least Sun could have controlled the quality and compatibility of the implementations on the street - across all browser vendors. Notice that Macromedia has done an excellent job of that with Flash.
Sun did, eventually, move to that design - but only after the war had been lost.
It might be nice to blame Java's client woes on Microsoft, but in all honesty - as much as I hate Microsoft - I can't do that. Java failed on its own demerits.
jim frost
jimf@frostbytes.com
I have no argument that MS was wrong in its breach of contract (not in extending java, but in extending java in a way that broke its obligations to sun) because that is cut and dried. The thing I have a problem with is now that MS is doing exactly what sun asked (which was to include a compliant version or not include a version at all) they are crying that MS isn't being fair. There is nothing in the laws of this world that says Ford SUV's are required to come with firestone tires and in the same way there is nothing in our laws that say windows must ship with java.
Unfortunately Sun might be able to get the court to decide its anticompetative for MS to include a competing product (C# and .NET which only sort of kind of competes) which I think is an abuse of our legal system.
People are 100% free to download the SUN jvm for windows and use it, the fact that they don't is as much a relfection of the lack of need for the product as anything else.
Its also worthwhile to point out java's great success in the enterprise server application market. Java wants to do everything and sun needs to realize that its not the best fit for every job and be happy with the success they get.
"You can now flame me, I am full of love,"
Windows controls more than 90% of the (full sized) clients.
MS stated that they were not going to lose control of their own platform by allowing cross-platform Java to become the best way to create Windows apps.
Sun, at the same time, was saying that they were trying to make Windows obsolete, so the last thing they wanted was to let Java become "just a better way to write Windows apps".
The only thing they both seem to have agreed on was that they didn't want Java to be too good at creating Win32 apps. So Sun stood on Java's tail while MS beat it senseless, and they both got their wish.
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."