"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."
Everyone, I've made a new platform-independant language and virtual machine. It's called OJ. Microsoft won't put it in Windows. This is killing my business model. Where do I sue to force them to put OJ in Windows?
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
The typical argument for "MS Killed Java" is not that Java died because it was not included in Windows, but rather because it was included in a crippled way that misrepresented the language.
It would be the equivalent of Microsoft giving away a Linux distribution "MS Linux" that crashes often, doesn't run most of the GNU programs (gcc included), has a different set of C libraries with their own quirks, and uses a really old version of Gnome as a fixed, non-configurable GUI.
Then everyone would say "I tried Linux, it came with Windows, but it sucks" and it would take a lengthy, unwanted explanation to let them know that their "free Linux" was crippled. Even then most will never try it again.
It's not clear that MS killed Java on the client. In my opinion, Java was not ready for the client and therefore it killed itself with the Applet hype.
But that doesn't mean shooting a man dying of cancer is not a crime.
Freedom is the freedom to say 2+2=4, everything else follows...
This sucks that Java has died. I just finished up my first week of a Java programming course. And, now, I find out that I am learning a dead language?
When will it end?
(sarcasm skills required for reading this comment)
Moon Macrosystems. Sun's biggest competitor.
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
Take a look at Dan Bricklin's hysterically funny parody of client-side Java. It says it all. Just as funny and relevant as when it was written.
.NET can avoid the same issues.
It will be interesting to see just how
Demo software like Bricklin's is usually used to present a positive view of technology that doesn't exist... this is the first time I've ever seen demo software used to present a negative view of technology that DOES exist.
"How to Do Nothing," kids activities, back in print!
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
You're right, it wasn't that good of a comparison. I am sure the murderer was worried about getting caught and punished, and had to constantly look over his shoulder. Microsoft does not. Yes, murder is worse that illegal monopolistic practices. Duh. That is not the point.
My beliefs do not require that you agree with them.
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.
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...
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.
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...
Just for novelty value, perhaps you could try reading the article before commenting. Then you wouldn't look quite so foolish when you respond to someone quoting the entire article.
++ Say to Elrond "Hello.".
Elrond says "No.". Elrond gives you some lunch.
I think ActiveState should file a lawsuit to force MS to ship a PERL runtime with windows under this same argument. Where does it stop? TCL? Python?
If you want it, download and install it.
it's not going to stop until you wise up, no it's not going to stop. so just give up.
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
Actually, I think Netscape did more harm to java in the early days then Microsoft's. I actually read one of the affidavits in the case by a technical expert, who outlined the incompatibilities. They were tiny. *TINY*. And yet, Netscape was still shipping only the java 1.0 API. People couldn't write code for the newer, more robust 1.1 API and have it work with Netscape. They could write the code to work in IE, however. And if they avoided Microsoft documentation that might mix the incompatible stuff with the regular stuff they would have been fine.
Did MS purposely taint the API: almost certainly, there was no reason for them to put their functions and code in the Java.* packages. Did it really matter: not as much as Netscape sticking with 1.0.
Microsoft might have made stuff worse over time, but who knows. But anyway, microsoft probably wanted to kill Java and in a way, they succeded.
autopr0n is like, down and stuff.
According to repeated surveys of job adverts over the last 3 years Java is the 2nd most popular programming language after C++ and occasionally it has ranked above C++. Visual Basic generally ranks as 3rd most popular language in these surveys. I run a web site aimed at Java Programmer Certification (http://www.jchq.net) and it gets many tens of thousands of page requests per week. Reports of the death of Java have been somewhat exaggerated.
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
If you take a look at Apple's system architecture:
OSX you can see that Apple is putting the JAVA API at a coequal level with the Classic, Carbon and Cocoa APIs - all the others being Apple products. This is exactly the kind of treatment Sun has always wanted; Sun's Java being setup as a major part of the system architecture allowing it to run cross platform with the same capacity as native apps.
Now where is Sun supporting Apple in this? Apple offers a standard set of development tools as part of the OS - why isn't Sun writing or co-writing tie-ins for interface builder and Swing? Why aren't they optimizing the JAVA Apple API for Darwin? Why when you click on Java at Sun do you see absolutely virtually nothing about the Mac OSX platform? Why doesn't Java include routines to handle files with resource forks better?
If this isn't proof that Sun has no intention against standing behind Java implementation with real resources and real money I don't know what would be.
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
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."