Steve Anglin, the Java Editorial Director for Apress, in Java GPL'd: Who really cares?:
Open source Java already exists in frameworks and tools like Spring, Seam, Struts, Eclipse, Tomcat, JBoss App server, and many, many more. In the most practical sense to developers, etc… open source Java has been around for a few years now in a very practical and adoptive way.
I sometimes imagine an alternative universe where Java is actually practical. I call it, The Land of Make Believe. Let’s contrast this fictitious universe with the one I currently inhabit, The Real World.
In The Land of Make Believe, here’s how you install Java™ on FreeBSD:
# portinstall java/jdk15
That’s how everything is installed on FreeBSD. There’s no manual downloads, “installers”, EULAs, or barrier to convenience and automation elsewise.
The Real World is slightly different in that you install Java™ like this:
# portinstall java/jdk15 ** Port marked as IGNORE: java/jdk15: Due to licensing restrictions, certain files must be fetched manually. Please open http://www.sun.com/software/java2/download.html in a web browser and follow the "Download" link for the "JDK 5.0". You will be required to log in and register, but you can create an account on this page. After registration and accepting the Sun Community Source License, download the SCSL Source file, jdk-1_5_0-src-scsl.zip and the SCSL Binaries file, jdk-1_5_0-bin-scsl.zip . In addition, please download the patchset, bsd-jdk15-patches-3.tar.bz2, from http://www.eyesbeyond.com/freebsddom/java/jdk15.html. Please place the downloaded file(s) in /usr/ports/distfiles and restart the build. *** Error code 1 Stop in /usr/ports/java/jdk15.
What that error message basically translates to, for a huge number of developers and admins who appreciate their time and sanity, is that Java will not be installed. It just destroys the single greatest advantage provided by modern Linux and BSD: the package management.
Here’s how you install Java™ on RedHat based distros like Fedora and RHEL:
# yum install java
This will indeed install something that runs most Java programs in both The Real World and The Land of Make Believe but the similarities end there. In the The Real World, the GNU Compiler for the Java Programming Language (GCJ) and its extended runtime GNU Classpath are installed. These Java clones exist for exactly one reason: Java’s license is impractical. Those living in The Land of Make Believe will have never heard of these projects; Sun’s compiler and runtime are installed instead.
In The Real World, installing Sun’s Java on RedHat based systems works like this:
Using a mildly annoyed tone, post a message to the fedora-general mailing list asking what makes Sun so special that installing their stuff should require hopping outside of established process.
Enjoy the history lesson and observe that absolutely no one working at this level thinks that Java’s license is anything other than completely insane.
Follow provided link to JPackage and admire the number of packages these guys have put together.
Ponder how many packages may have been available had installing them been practical.
Ponder how many projects decided to not use Java specifically because they would be this hard to install.
Get setup for building nosrc RPMs.
Learn how to rebuild packages.
At last, install a JDK (this requires another 3 steps of clickity-click-click non-sense, mind).
If you want to get on the bad side of software developers and system admins, the fastest route is to waste their time.
In The Land of Make Believe, the whole idea of “installing Java” is kind of silly. It is installed “out of the box” like C/C++, Perl, Python, Ruby, and other general purpose languages. The reason is that some piece of the base system was written in it. In The Real World, Java is simply not an option for these pieces because it’s impractical.
In The Land of Make Believe, new GNOME applications are often written in Java instead of C#.
In The Land of Make Believe, projects like Jython and JRuby were considered stable and viable alternatives to their C language counterparts a long time ago because running Python or Ruby programs on top of Java would have actually been practical once the language implementation was complete. In The Real World, these projects are mildly useful if you want to add “scripting” to a Java application.
In The Land of Make Believe, the web is dominated by Java because Java is not only technically capable of running everywhere, it actually does run everywhere. In The Real World, the web is dominated by Perl and PHP.
In The Land of Make Believe, nobody really cares about GPL'd Java. In The Real World, nobody really cares about GPL'd Java either, but it has nothing to do with it going GPL.
From my perspective, the GPL puts Java back in the race for potentially useful technologies over the next decade because it makes it possible for Java to stop being such a massive pain in the ass. Whether it reaches that status is yet to be seen but I care about the fact that it is now at least possible.
Discuss
As someone who has worked in both Python and Java for years, I just have to ask, are you a child? I have grown-ups installing Java on RH, Ubuntu, and SUSE Linux all the time without whining. Since when is having to install something in a particular way a bar to using it? You're going to dismiss all of the Java eco-system, including the JVM, because you don’t like what the license requirements do to your one step Linux installs? Are you a child?
— M Lauer on Monday, November 20, 2006 at 07:11 AM #
M Lauer nailed it. You have the “Land of Make Believe” and the “Real World” reversed. Grow up and stop whining.
— Dave G on Monday, November 20, 2006 at 08:22 AM #
Installing Java on FreeBSD is a royal pain in the behind.
On its own, it is not a deal-breaker, but for me it was the epitome of my entire Java experience.
— Andrew on Monday, November 20, 2006 at 08:24 AM #
YES. Thank you. This is a precise distillation of how I feel. Except substitute dpkg and apt commands for all that BSD and RPM nonsense, of course :–).
I get the impression that people like “M Lauer” really don’t get how much of an issue this is. Have you ever tried to image a compute cluster of 50 java VMs? With Python, or Mono — or even Perl, or Ruby, or whatever other reasonably licensed VM you like — (and any modern Linux distribution) it takes about 10 seconds. With Java, it’s a week-long project.
If you don’t think that is a load of fun, try to explain to somebody who bought a Mandriva Linux PC at Wal-Mart how to get the click-through EULA nonsense to work with their package manager.
— Glyph Lefkowitz on Monday, November 20, 2006 at 09:04 AM #
Java’s main problem is poor design and numerous technical flaws. The license is irrelevant.
— Slava Pestov on Monday, November 20, 2006 at 09:43 AM #
FreeBSD: Look into JDK/JRE 1.5 Diablo; it is Sun licensed binaries and requires no patchset, and installs cleanly through ports.
More info here: http://www.freebsdfoundation.org/downloads/java.shtml
— Harlan Iverson on Monday, November 20, 2006 at 01:13 PM #
smack. down.
nice ryan. you're describing lessconfig as the advantage here.
— James Governor on Monday, November 20, 2006 at 01:17 PM #
This is a known trick. Software that has an open source license but in order to download and install the sources you need tremendous bandwidth, hard disk space and to be a guru with a pointy hat and still spend 10 days in furstration trying to compile the thing.
It is the same with teh GCC/Glibc/Binutils toolchain, the GTK/GNOME toolchain, X.org modular, Mozilla, etc.
So while all these programs are open source, you end up just downloading the damn binary {rpm/apt/pkg}s (from a site that may be compromised), and forget about doing anything with the source.
— roin on Monday, November 20, 2006 at 03:20 PM #
M. Lauer wrote:
Since the invention of modern package management.
The problem is hardly limited to “one step Linux installs” but to answer your question, yes, I have already dismissed all of the Java ecosystem, including the JVM, for a wide range of problem areas precisely because of issues stemming from the pre-GPL license requirements.
— Ryan Tomayko on Monday, November 20, 2006 at 03:34 PM #
So, is it fair to extend your argument about Jython, JRuby, et al to say that now that Java is GPL and has potential to be practically usable, that Jython and JRuby could soon follow as practical alternative implementations of those languages? If so, I agree 100% :) Of course I have believed that JRuby is going to be a viable alternative either way, but now that Java is GPLed, there’s nothing standing in the way of Ruby users running JRuby instead once it reaches some level of “complete”. So I think the future of dynamic languages on the JVM is now even brighter.
— Charles Oliver Nutter on Monday, November 20, 2006 at 03:53 PM #
Slava said:
There’s a recursiveness to the thing, though. Had Java’s license been sane from the beginning, would the numerous technical flaws be there today in such severe magnitude? That’s not rhetorical, it’s something I've wondered about for the past few years and don’t claim to have a clear answer to. I'm of the opinion that the license had a major impact on the way Java was allowed to evolve and improve but that’s only the view from my universe. The old license ensured that certain types of developers (this kind, mostly) had a greater level of input on what issues would be addressed and how. Hence, poor design, over architecture, bloat, and everything else we've come to loathe about the platform.
— Ryan Tomayko on Monday, November 20, 2006 at 04:07 PM #
Charles: You don’t have to extend my argument, that was my argument :)
Whose to say we wouldn’t be running JRuby 50/50 today had Sun taken the licensing problem seriously five years ago? I promise there would have been a much larger number of developers willing to work on a Java based VM had the result of such work been practical to use once finished.
Right. If there’s a decent level of feature parity and it offers some additional benefits, what rationale would there be for not considering it? Right now, people don’t think of JRuby as an alternative to CRuby because Java support on mainstream environments is so spotty.
— Ryan Tomayko on Monday, November 20, 2006 at 04:28 PM #
The author tagged and bagged it. To answer the critics:
Try to remember: Java is just a programming language! Running Linux, BSD, or even Open Solaris, I'll tolerate proprietary measures in things like nvidia drivers. I install it once and it’s forgotten. I'll tolerate proprietary ownership of a game. The Quake artists want to be paid for their design work, and that’s got respect. Any frou-frou frill or special-purpose gizmo, licensing is a fair game here. I won’t die without Quake.
But JAVA IS JUST A MOTHER_BLEEPING PROGRAMMING LANGUAGE! What if you had your choice of speaking English, French, Japanese, or Foo, but Foo, even though it was just a language like all the others, required you to rearrange your brain and agree to a license and swear never to teach it to somebody else without a permit and on and on, red tape and strings attached and sign a non-disclosure agreement before reading the dictionary… Forget it! Programming languages absolutely, positively have to be as free as rain or they simply ARE NOT WORTH THE TIME. Not because we're zealots. But because it is just plain stupid to do otherwise. There must be 150 usabe languages on modern systems, and just this one wants to be a big hassle.
If it helps you people understand it better, we also don’t like Visual Basic and C# and DOS. That’s accepted without question. Why is it so hard to see that we have the same problem with Java for the same reason?
— Penguin Pete on Monday, November 20, 2006 at 05:09 PM #
Sun’s whole “reasoning” behind their old weirdo license was that they “didn’t want forking of Java”.
Well, guess what. That’s exactly what they caused.
GPL is the real anti-fork, but I think it may be too late.
Maybe this was some kind of deep deep scheme to get people to go off separately and think about the whole design-of-java-like-languages thing on their own for a while, and now they're calling everyone back to the mothership to hack on the one true java.
We'll see.
— Free on Monday, November 20, 2006 at 05:24 PM #
So true. So spot on.
— Dalibor Topic on Monday, November 20, 2006 at 08:45 PM #
You're right. For Java to be truly open-source, you need to be able to use the standard install tools such as RPM to install BOTH 1) Java development kits and run-times 2) Java Test Kit (JTK) so you can run regression tests on any changes you might make.
thanks, dave shields
— dave shields on Tuesday, November 21, 2006 at 12:00 AM #
What part of implementing Jython and JRuby require Java to be open source? As far as I know, the current state of JRuby doesn’t even compile to bytecode yet.
What factor of the closed source Java license makes developing JRuby and Jython impractical?
— JoeSB on Tuesday, November 21, 2006 at 03:56 AM #
its hard to say that if java had been GPL all along, would it be a much better platform, or would microsoft been more successful at co-opting it for their own purposes, as they tried very hard to do in the late 90s ? Microsoft’s high profile attempt to create an ActiveX'ed and platform-specific Java, with a totally tricked out and non-compatible API, was the “fork” that Sun was worried about at that time. Say what you will, but Sun managed to prevent that from happening.
Of course its a different time now and Sun could have GPL'ed several years ago.
— mike bayer on Tuesday, November 21, 2006 at 04:20 AM #
Yes, I agree that java sucks, because if Ryan cant install it properly on a linux computer then it is clearly the fault of the language. I assume that .NET is the way to go? But wouldnt that suck even more as there is no way to install .NET on a linux computer? Yes, I know of Mono, but there is also Kaffe for java.
Now when Java is released under GPL, will Java suck less?
— Redsolo on Tuesday, November 21, 2006 at 04:41 AM #
Redsolo said:
I said quite plainly that it was the fault of the license.
Yes, because we all know there’s only Java and .NET. What else could you possibly use?
Then you may have also noticed Dalibor Topic’s (Kaffe contributor) comment above?
YES! How many ways do I have to say it?
— Ryan Tomayko on Tuesday, November 21, 2006 at 08:25 AM #
Ryan, I'm not sure people who are not used to deploying and managing their software the emerge/yum/apt-get/ports/gems way can apprecite the huge difference it makes in practice, so I guess a lot of the WTF??? feedback comes from people who don’t see how better deployability of Sun’s JDK improves things for other users.
Oh, and of course there is still quite a difference between Kaffe and Sun’s JDK, one of them is certified as Java™ compatible and the other one is not, after all. Having Sun’s JDK as easily apt-gettable as Kaffe will be awesome for getting Java applications more closely anchored into distributions. I, for one, am very happy about Sun’s licensing choice, and execution of the whole thing so far.
They really seem to be getting that ease of deployment matters.
— Dalibor Topic on Tuesday, November 21, 2006 at 10:04 AM #
Wha??? Java is stupid because it’s slightly harder to install? Um… that’s just… crazy. If you're choosing programming languages based on how easy they are to install you certainly shouldn’t be telling anyone what is or isn’t practical.
I find it very amusing when the GPL lunatics start screaming about the land of make believe. This post is so detached from reality it’s hard to know how to begin a response. PHP dominates the web? Among open source script-kiddies and college students maybe, but certainly not in the “real world”. If someone on my staff used PHP for a business-critical application they'd be fired for wasting company time and money. Come on — if you're going to throw out stuff like that you should at least pick a mildly useful technology like Ruby.
Java has plenty of things that suck about it, but comparing to GNOME, Perl, or PHP makes it look very VERY good.
— Living in Oblivion on Tuesday, November 21, 2006 at 05:18 PM #
Living in Oblivion wrote:
Right, like Yahoo!, IBM, and Oracle for example.
— Ryan Tomayko on Tuesday, November 21, 2006 at 06:38 PM #
And while we're at it, let’s not forget to lump in Wikipedia and everyone who runs a Wordpress blog with “open source script kiddies and college students”. I'd personally hate to have to code anything in PHP ever again, but I'm not sure what it buys anyone (other than some kind of dogmatic techno-religious frisson) to deny that lots of people are using it for lots of projects, and a number of them are just about as successful as it’s possible for a big project to be on the web.
The original point about difficulty of installation is right on the money. I've been using Linux and various unixen for about eight years now. I regularly build stuff from source tarballs if I can’t apt-get it or find it in ports or whatever, and this is sometimes annoying, but it’s nothing to the nightmare that getting any given Java app working has been in my experience. Every time I come across interesting looking software and discover that it’s written in Java, I cringe, contemplate the number of hoops I'd have to jump through in order to use it, and move along. Doubtless there are good reasons for developers to choose Java, but this sheer difficulty of installation (using a language that’s meant to be meaningfully OS independent!) is the first and most obvious reason I can see not to use it. Of course this has hurt adoption of the language/platform and crippled its evolution, and there’s every reason to think that less stupid licensing will at least help the situation.
Right on, Ryan.
— Brennen on Wednesday, November 22, 2006 at 01:39 PM #
Um, I installed Sun’s Java on my Kubuntu box in one step. What’s all the hub bub? It’s been a while so this is from memory, but something like:
aptitude install sun-java5-jdk
and, whatdyaknow, java.
— Not Retarded on Friday, February 09, 2007 at 05:23 PM #
Not bad! I've got new pics of http://www.bebo.com/EbonyA78 – ebony shemale ass or http://code.google.com/p/adultfun/wiki/Ebonylesbians – ebony lesbians kissing or http://code.google.com/p/adultfun/wiki/HardcoreEbonyLesbians – ebony lesbians naked and http://code.google.com/p/adfun/wiki/EbonyGirls – ebony young girls and http://code.google.com/p/adfun/wiki/EbonyTeenAss – ebony anal sex or http://code.google.com/p/pronfun/ – busty ebonys and http://code.google.com/p/pronfun/wiki/CuteEbonyGirls – big ebony girls at http://code.google.com/p/pronfun/ wiki/EbonyGirlsAnal – ebony girls riding and ebony lesbians feet fucking and nude ebony girls or ebony girls fucked and
— Cerdinaned on Friday, June 13, 2008 at 06:57 PM #
Leave a comment