"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."
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...
But isn't the fact that they aren't allowed to touch it the strongest guranatee that it will be secure? Or at least it won't be "Microsoft Secure(TM)", a new concept of security whereby things are required to be treated as if they are secure until Microsoft is forced to admit that they aren't, but don't worry because nobody will figure out how to exploit the problem anyway. And the EULA doesn't allow you to discuss this or we take your firtsborn.
As with many things from Sun that have had trouble flying, the sometimes serious external attacks on their technologies have allowed them to ignore the serious internal "attacks" (or at least misapplications/poor management). I don't need to describe the external attacks, since you're probably already a either hardened believer or non-believer in the illegality of what MS did. But consider this for a moment, did Sun's well intented handling of Java actually hinder it more? My reason for saying this is that they still hold to two separate cross-platform doctrines that should have been decoupled a long time ago:
Consider this: in the time Java has been available to the public, has there really been any serious development on a modern compiled language with one solid, standardized API across all-platforms? I can't think of any (or at least any that have caught on). Apple started down this road with Cocoa, but gave up on anything but their own platform.
In the end, two of the biggest losers due to that second doctrine has been Linux and the Mac. In order to get a vendor of an existing Windows app to produce a native Linux or Mac app, you have to convince them that it's worthwhile to branch off an almost complete re-write of their app to port it over. Imagine if there was a really usable language that they could code in, that wouldn't hinder their abilities and/or speed on Windows, but required little more than a cross-compile to target to Linux, Mac, Solaris, etc. We'd be up to our eyeballs in good apps on all platforms.
"There is a thin line between ignorance and arrogance, and only I have managed to erase that line." - Dr. Science
IAAJP. I'm the lead programer of a medium-large sized database client used in trade unions in Sweden. I developed the program three years ago and have maintained/expanded it ever since. I take exception with your exceptions :-)
The applet security model (breaking the box)? 4 different "standards" so far, all confusing and incompatible.
- Netscape
- IE
- Java 1.2
- Java 1.3
Java 1.2 was worst by far... Required the end user to run PolicyTool from a prompt and specify specific operations to be allowed on a per-program basis. In java-esque syntax, no less.The pre 1.2 situation was also horrible. I managed to make a system in which the same code could be run, trusted, in both Netscape and IE, while also cacheing the jars locally. NEVER ask me to do something like that again! I lost half my hair.
The situation is pretty OK now, though.
Only every day, my son. On a very fast modern computer with Java 1.4 it now runs like a sloth in a snow storm, as opposed to a turtle on its back. At least the actual GUI is now barely usable, though startup time is still horrible.
AWT to Swing, yes. Also the Swing move from com.sun to javax, the three different printing API's... Not to mention the fact that the original Swing was horribly broken in many ways (focus handling, tables), so that everyone had to make hacks and patches to make the damn stuff even work. Hacks and patches that will (did) break the program in later JDK's.
Even if your program is 100% kosher, there is a grave risk that it won't work as planned in any other Java version than it was built for. Which is why most Java apps ship with their own JRE.
I'm not sure what he's getting at, but having five sysadm guys running around for a week tweeking the individual clients to make the app run could cost a bit. Though you should be able to program around that.
Totally agree. The JDK is free. Emacs is free. Heck, NetBeans is free, and JBuilder is cheap.
I choose to remain celibate, like my father and his father before him.
It was Sun's responsiblity to make Java an important, dominating technology, NOT Microsoft. [...] You want to "beat" Microsoft? Do it with better software.
You're missing the point. Microsoft, because of their desktop OS monopoly, was/is in a position to make or break anybody's desktop software. No matter how excellent Java (on the desktop) could have been, Microsoft could (and arguably did) keep it from becoming a success.
When the operating system you distribute gets put on 95% of the computers out there, if you don't want something to exist on it - it won't. Microsoft wasn't allowed to embrace-and-extend Java, so they dropped it completely. And since most computer users haven't the slightest idea about how to install it, Java on the desktop has died a pathetic, twitching death.
Say Toyota had a monopoly on car parts distribution, controlling 95% of car parts distribution centers world-wide. They decided to only supply Toyota brand parts for Nissan cars, which were crappy and caused the cars to break down all the time. They would be using their monopoly position to destroy the competition, which is illegal.
47% of all statistics are made up on the spot.
...that will mark the end of the dot-com bubble.
My guess is that Sun's mis-management of Java will be studied in business schools for years to come. The moronic notion of launching lawsuits to beat the competition is also worthy of discussion. (Think RIAA here, too.)
I still don't buy the Softee is a monopoly argument, either. I can switch drives in a minute and have a completely non-'Soft machine, and I always used the free version of Netscape. Standard Oil... Now that was monopoly! Guess they don't make 'em like they used to.
Imagine how much harder physics would be if electrons had feelings! -Feynman, maybe
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.
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.