Sun to Fully Open Source Java 374
Dionysius, God of Wine and Leaf brings news that Sun Microsystems will be removing the last restrictions on Java to make it completely open source. Sun wants Java to be easily available for use in Linux distributions. We've discussed the steps Sun has taken to open-source Java over the past couple years. From Yahoo! News:
"'We've been engaging with the open-source community for Java to finish off the OpenJDK project, and the specific thing that we've been working on with them is clearing the last bits that we didn't have the rights,' to distribute, Sands said. 'Over the past year, we have pretty much removed most of those encumbrances.' Work still needs to be done to offer the Java sound engine and SNMP code via open source; that effort is expected to be completed this year. Developers, though, may be able to proceed without a component like the sound engine, Sands said.
MySQL (Score:3, Insightful)
One problem with open sourcing (Score:0, Insightful)
I know that Sun are addressing this issue but I still think that it is inevitable.
Re:Kudos to them, I guess (Score:2, Insightful)
Re:What will happen to GNU Java? (Score:5, Insightful)
Re:One problem with open sourcing (Score:2, Insightful)
Re:MySQL (Score:4, Insightful)
open source vs license questions (Score:4, Insightful)
Does this mean the Classpath exceptions will be removed? Not clear. Kind of a problem for some if it is removed.
FTA: "Once Java is 100 percent open source, it can be shipped as part of Linux, Sands said. Ubuntu has distributed Java as separately available commercial software, he noted. But once Java is fully open source, it can be offered as part of the free Ubuntu distribution and other Linux variants, Sands said."
For me, and I assume most people interested in open development platforms - the real question about using Java will be around the license (once it is open source) and what that means in terms of success, options, and longevity for the projects we build.
Re:Kudos to them, I guess (Score:5, Insightful)
I suspect that the closed sourcing is also why support for Java on non-priority systems has lagged behind. It's been a while, but I used to support Java apps that were running on FreeBSD. At the time, the state of Java there lagged behind the big three (Linux, Windows, Solaris) considerably- the latest versions of of the JDK/JRE weren't always available, and when they were there were sometimes weird bugs lurking in them that would cause applications to puke. Support for other languages wasn't anywhere near as far behind because it was much easier for BSD developers to track changes in the source of languages that primarily targeted Linux.
For that matter, despite Suns attempts at making Java a universal platform, support on some platforms has been better than others. My employer bought a 3rd party Java HR application for employees to use for leave/VK time reporting, with the promise that it would work for any system since it's Java (a lot of people have Linux or Mac). No such luck. It's interface is an applet that works on only certain versions of the JRE under windows. Maybe the vendor is just incompetent, but Java is supposed to simplify the writing of cross-platform applications. I strongly suspect that these kinds of problems are a consequence of Sun keeping the source closed: priorities on development of the JRE/JDK had to be constrained by Sun's resources and economic priorities. No matter how enthusiastic the user community on lower-priority operating systems, they couldn't fix problems themselves.
Re:Better late than early (Score:4, Insightful)
We were looking for something cross-platform, and at that time Java was every bit as proprietary as VB and other close dead-end languages. I understand why Java wasn't FOSS at that time, but that still made it ineligible as a serious contender for long-term development. Had Sun made Java's openness a goal a lot sooner, many companies (including mine) might have chosen it over whatever else they decided upon.
Re:Better late than early (Score:0, Insightful)
Bullshit.
Re:Kudos to them, I guess (Score:5, Insightful)
Re:Kudos to them, I guess (Score:3, Insightful)
Re:Better late than early (Score:4, Insightful)
By "we" he probably means "a group of knowledgeable developers who are lucky enough to be employed somewhere that they can choose the best tool for the task instead of having to go with whatever the PHB thinks is the hot buzzword this week." It's very true that the "real world" can be a difficult place, but people with attitudes like yours don't help make it any better. Fortunately, there are businesses where management knows enough to get the hell out of the way and let the developers make their own decisions on which tools to use.
Re:One problem with open sourcing (Score:2, Insightful)
Let's look:
C: GCC is one of the worst offenders for non-standard extensions, but very few compilers are 100% compatible.
Javascript: 4 main implementations (IE, spidermonkey, webkit/kjs, and opera), plenty of small differences in the core language, lots of differences in the DOM/Event support.
PERL: only 1 implementation, never will be standardized, requires a perl parser just to parse the syntax.
Re:Kudos to them, I guess (Score:5, Insightful)
Not caring about licensing questions probably means that you've failed to consider them in depth. That probably seems like a very reasonable choice - if you wanted to worry about legal issues you would have gone to law school - but it's also very short sighted.
"Freedom" seems abstract and irrelevant until you find out that the elegant technical solution you want to implement is disallowed by the license of some component you're using. This rarely happens immediately, because you wouldn't have picked a tool if it didn't let you do what you initially wanted, but it comes up pretty frequently when you try to do something that you didn't initially consider.
Examples:
- You design your application using Oracle as the database. $20,000 a server seems fine - until you realize that the whole design would be more elegant if you moved a bunch of logic into the database and replicated it a bunch of times (say... at each client site). But $20,000 * 100 sites isn't in the budget, so you're forced to scrap the best technical solution for legal reasons.
- You design a data entry interface in Flash. The project expands, and it turns out that it'd be more effective if the users used tablets rather than PCs to do their data entry. So you bring on a hardware team, and they tell you that ARM tablets cost 1/3rd what x86 tablets would cost. Sadly, there's no flash player on ARM - and with your budget it would have been a simple port, too.
Far from being irrelevant and abstract, the issue of licensing is directly relevant to anyone selecting software to build anything important (software or any business process). Proprietary licensing means usage constraints - both explicit constraints like the limited set of Flash platforms and economic constraints like the per-server Oracle license fee. Developing on proprietary stuff is like working in a mine field - sometimes you have to do it, but it's sure as hell something you want to avoid.
Re:Better late than early (Score:3, Insightful)
Re:Will this mean a 64-bit plugin sooner? (Score:3, Insightful)
Re:Better late than early (Score:5, Insightful)
Dead last?! Spoken like someone who has never been fucked over. Just wait 'til a proprietary compiler/runtimelibrary vendor tells you, "No, we're not ever fixing that. And you can't fix it, either." It's even better when you have to tell the same thing to your client.
Sympathies to the FoxPro guy. I was once a Clipper guy. I don't know whether the availability of maintenance is number 1 or 2 on my list, but it's waaay up there. Never again. Never fucking again will I have that kind of shit in my life. I'll get out of IT and flip burgers for a living, before I write another line of code that has miserably crippled and hopelessly unmaintainable dependencies.
Re:Better late than early (Score:5, Insightful)
Who cares? We're a company, not a bunch of broke kids, and don't have problems spending money if we need to. "Free as in speech" is much more important to us than "free as in beer", even though the lack of price tag is a nice bonus.
Let's bet on how many PR they can generate! (Score:4, Insightful)
Re:This is good news... (Score:5, Insightful)
Major distros will ship proper java by default (some already are shipping java builds based on the code sun has released so far with bits from elsewhere to try and plug the gaps) and they will be able to patch it themselves to backport security fixes or fix issues with new versions of libraries (there was a bad one involving sun java 6 and a new version of some library recently, I don't remember the details but I do remember sun took ages to get a fix out).
Re:One problem with open sourcing (Score:3, Insightful)
The language for a specific Java version might be consistent but the libraries won't be. Between 1.3, 1.4, and 1.5 there were/are huge changes in the language and libraries, some which broke some of our applications because they went ahead and deprecated some functionality.
I agree that C and Javascript are also a huge pain to work with between versions but you can't say the same about perl. Perl has maintained an incredible job at being backwards compatible with some pretty ugly code. We've been able to take perl code that was written 6 to 8 years ago under perl 5.5 and dump it on perl 5.8.7 without any changes. Some perl libraries you can get from cpan are only compatible with a certain newer version of perl (usually 5.6) but that's because they probably utilize/need newer features in perl. The same is true for Java where 1.4.2 has things that 1.3 didn't have and 1.5 has things that 1.4 didn't have.
You also mention ActiveState perl which kinda went in their own direction as far as packages and other things. But if you want perl for windows that is closer to perl for nix then you might want to try Strawberry perl [strawberryperl.com]. Strawberry perl includes a Mingw C/C++ compiler and a "make" tool [perl.org] so you can use cpan.
Re:Better late than early (Score:3, Insightful)
Re:Kudos to them, I guess (Score:2, Insightful)
Open-source extremists have no one to blame but themselves.
Java's source-code was open to the public for over a decade now. The only thing that changed recently is the license, but that license never prevented you from bundling it beforehand.
Thank god. Kill GCJ. (Score:2, Insightful)
Re:Java? (Score:3, Insightful)
Re:Better late than early (Score:2, Insightful)
The funny thing is that of those 15,786 jobs, not one has any economic impact on Sun's bottom line. It's like the old joke - what do Bill Gates and Scott McNealy have in common? Neither can make a dime on Java.
My $BIG_FORTUNE_500_EMPLOYER uses a ton of Java...but I don't think Sun makes a dime on any of it. We certainly aren't using their IDE tools, nor running the code on Sun servers.
It's nice that Sun is open-sourcing Java. But it's also kind of funny/sad that only Sun would invent a hugely successful product, not make a dime on it, and yet keep it closed-sourced for 13 years.
Re:Kudos to them, I guess (Score:5, Insightful)
Seeing into the future is *really hard*. Given a choice between a proprietary platform with potential future licensing woes and a high quality free platform, selecting the free platform simply due to licensing is a good first approximation at the right choice.
Re:Kudos to them, I guess (Score:3, Insightful)
Just a bit faster machine -> bing!
Just two cores -> bing!
And with source you get the added benefit of new compilers! Bing bing bing!
Most of the problems I have encountered with Java are exactly same: badly written un-tested programs which cannot handle slightly changed, sometimes concurrent, execution paths.
Re:What will happen to GNU Java? (Score:3, Insightful)
Random BedHead Ed wrote
Even better, the two compilers can be compared, the better ideas identified and the final compilers can get better. Think of the Multics Emacs in lisp and RMC's evenual rewrite of the TECO emacs in lisp.
--dave
Re:Better late than early (Score:3, Insightful)
Like it or not, companies *like* the idea of a big corporation being the face behind something like Java. It means stability, predictability, support, long-term viability. It means someone you can bitch to if things go wrong. I means, in short, a sort of corporate legitimacy that's craved by upper-management types. And you can't that by simply being technically better (not that Python is better). Otherwise, we'd all be running around hacking code in Lisp and Smalltalk.