Two Takes on the Java Dilemma
Joe Barr writes "NewsForge is running a pair of excellent commentaries on the plight of Java and the Java development community following the recent "settlement" between longtime rivals Sun and Microsoft. One is by Rick Ross, the articulate leader of JavaLobby, entitled "Where is Java in the settlement?" The second is "Free but shackled: The Java trap" by Richard Stallman. Good reading. Both commentators put their finger on the heart of the problem, albeit from different perspectives." Yes, Newsforge and Slashdot are both owned by OSDN.
RMS has a very valid point. My open source Java software depends on non-free java compiler and runtime environment.
I continue to write free software in java because Java is sexy, and I believe that Java will one day be free (or have some free implementation). Many of the things that I can do in java would be very hard in any other language. Namely having a GUI program that can run on Windows, Mac OS X, and Linux.
I disagree with RMS that we should not accept this even temporarily. I write open source Java libraries under the GPL so that people who find them useful and want to use them must adopt the GPL. Planting open source seeds in the Java community will help in the liberation of the platform as a whole.
Having such a setup is currently non-trivial. I have tried many times but have yet to get one to work. The gjc compiler is not hard to get working but getting a jre and the classpath libraries set up is beyond my skill level. Rather than appealing to developers, making free runtime easy to set up is the best way to make this happen. I applaud RMS for his work in this area, but it is not yet practical to take his advice.Get real. See all those Java jobs out there? I know a few months ago there were more of those than any other language. I doubt that has changed... or will change in the near future.
Sun could drop off into the Pacific tomorrow, and Java would keep on going because in a lot of places it's the best tool for the job. As much as they would like to, neither Gates nor Stallman is going to change that fact. If Sun (under MS's influence) tries to corrupt or hamstring Java, IBM, Blackdown et al will simply fork it, and everybody will start using theirs.
Garg
Garg
Alumnus, Xavier's School for Gifted Youngsters
The whole thing was a mistake for Microsoft, because they never really supported platforms outside the x86 architecture, and rarely code for other OSs (Office for Mac). .NET was Microsoft's attempt to fool the industry into thinking they were ready to embrace and extend open standards... but when it came down to it, they just weren't ready to take the risks to their existing monopoly.
The problem is that Java is already incompatible across various implementations. Even if the syntax is identical, you never know if your program is going to work on Blackdown or Classpath just because it works on Sun's JVM. And lord only knows if the "standard" libraries you're using are available on the user's machine.
Quite frankly, the stupidest thing Sun did was force MS to give up Java. MS wanted to make Java ubiquitous by making it the standard platform for writing Windows apps. In order to do this, they needed to add a few features (like delegates -- function pointers, essentially). Sure, people would end up writing "Java" programs that wouldn't necessarily run on other JVMs, but who cares -- they would be Windows programs anyway! And besides, every single one of those Windows developers would also be a Java developer, spreading Java everywhere.
So now, instead of having a solid, fast, best-of-breed implementation of Java (with a few extras) on every single Windows machine on the planet, everybody who wants to run Java apps must install their own JVM. This does nothing but hinder use of Java. And of course, all of those would-be Java developers are still using VB or have learned C#.
Come to think of it, had Sun incorporated MS's improvements, such as delegates and enumerations, they would have an excellent language for GUI RAD. Instead, they stuck by their NIH ways and we don't get these features until 6 years too late.
aQazaQa
Java and C# are crufty languages anyhow.
I don't care much for OO myself, but many people say at least the newer Java implementations are really quite good.
What put me away from Java since the beginning is the size of the executables, and their truly atrocious speed. And also the size and speed of another monster called Swing.
But, I remember a certain OS called Unix that used to be the archetype of bloatware, with a graphical system that used to open 2 megabyte (gasp!) temp files, in the past. Now that computers have caught up with it in terms of memory and speed, Un*x looks thin compared to Windows, and its creators seem like precursors and visionaries.
So sometimes I wonder if I'm not missing a boat with Java : perhaps it too is ahead of its time, and one day nobody will balk at the speed, because it'll run fast by virtue of the underlying hardware.
But I guess now that Microsoft and Sun have agreed to kill it, the question of whether or not I should try it is getting moot.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Well, since Microsoft couldn't do that, they just switched to plan B. They used 5 years of hindsight to write a new language like Java, but with some nicer new features, then they applied this new language to their OS monopoly to get instant market penetration with little effort.
Meanwhile, Microsoft froze their support for Java until it was hopelessly obsolete; this passive-aggressive move blew a hole in "write once, run anywhere" all by itself. Microsoft's moves seem to have succeeded in taking much of the steam out of Sun's goal of taking over the world with Java.
It seems to me that this course of events was a big factor in Sun's recent "surrender". I don't see how things have come out any better for Sun than if they had set Java loose.
I actually read the Stallman article (yeah I know this is slashdot). One thing bothered me as I read majority of the article is Stallman's use of GPL and free interchangebly.
My main problem is "free" means free. But in the GNU context "free" means "GPL'd". There is a problem here GPL'd software is not really free, it is freedom with restrictions. Java is also free software with restrictions, mainly not being able to modify it. GPL goes one step further allows modification but with the restriction that the modifications also be made freely available. Thus GPL is a little more free than Java but not completely free in the true sense of the word.
Suppose I released some software completely free. Free to use, modifiy and redistribute without realsing any of the modification under a new FSL (free software License). Said software would also be shackled when run with dependencies of GPL'd software which is not as free as the software I just released, lets call it the GPL trap. Or any software linked with GPL'd software must also be released under the GPL. Java doesn't require you to follow its licensing terms, one may release Java programs under the GPL.
As I have just illustrated, different degrees of freedoms exist in the world and mean different things to different people. Java is free, as in no monetary cost to use, GNU software is more free as in it is free to modify, but there is also a definiftion for free as in "no restrictions, no cost" which the GPL'd software like GNU/linux is clearly not. So I would like Mr. Stallman to please stop using the word free interchangebly with GPL'ed software, so as not to confuse readers.
Freedom is a deeply philosophical term of which excrutiatingly long discussions can ensue. However, Java is free, albeit with restrictions, GPL is a little more free but also with restrictions.
If the corporate world decides that Java will not be supported with improvements from Sun, and without IBM able to take over due to no Open Sourced version, they will drop Java faster than you can say C#. Nobody is going to run their business on obsolete stuff, no matter how good it is now.
The reason this is true for you says more about your quantity of experience in Java compared to your experience in Lisp than it does about the quality of either language. An experienced Lisp programmer would probably say exactly the opposite. (In fact, someone in this thread remarked that he does pseudocode for other languages in a Lisp-like syntax, which I found interesting.)
Similarly, I'm a Perl programmer and have never understood why people say the language is "write only" and similar snide remarks. Perl is instantly readable to me. Put me in front of a bunch of C, though, and I have to puzzle for awhile to work out what it does. That doesn't mean Perl is better than C (although every good programmer knows it is :P ); it just means I'm much more fluent in Perl.
Secession is the right of all sentient beings.
Your whole post is unsubstantiated anthropomorphization of Sun and Microsoft, boiled down to "MSFT made a better Java than Sun, and Sun wanted to hog the credit, so they rejected every reasonable offer simply out of spite". Amazing that this gets modded to +5 insightful... Please, go tell this story to a room of kindergarteners.
Sun worried (rightfully) about the proprietary extensions MSFT was adding to Java, which would have had the result of tying "Java" to Windows and shattering the "Write Once Run Anywhere" promise, while at the same time having the (mostly false) appearance that MSFT was playing nice with its competition. And that's just one part of the whole issue.
Get your history right, or at least don't try to pass off your skewed opinions as fact.