The recent announcement from Apache regarding their plans to embark on their own J2SE implementation called Harmony has re-ignited the long-running Java/OSS debate. James “Father of Java” Gosling reacted in an unexpected way by giving a misleading view of what open source is really all about. Now that the dust has settled a little bit, it’s time for an article that is not championing the cause for the relicensing of Sun’s implementation under more permissive, open source terms, but simply a look at what could (and could not) happen under the open source model.
Whilst obviously aiming to be as objective as possible, I think it fair to let you know my leanings. I’m a big OSS fan. I’ve been using various forms of the GNU/Linux platform for around 8 years. I’m not a purist though: I will use propriety products if it does the job. Proof of this is that I am also a big Java fan. I started learning it around 5 years ago, although it’s the last 3 years or so that it’s been my main language. I honestly don’t have an issue with the Java team, or Sun in general about their decisions. I don’t always agree with their approach, specifically their licenses, but I don’t mean to be anti-Sun, even if it should appear that way in this article (just anti-FUD).
The charges
In an interview with DevX, Gosling made some comments, which, to anyone already sceptical or ignorant of OSS, give a completely false impression.
“It’s often difficult to get a good picture from the open source community of what they actually object to in what we’re doing. In what way could we be more open? Since day zero, 10 years ago, all of our sources have been open and available, very similar to how many projects in open source work.”
Later, he adds,
“We’ve got several thousand man-years of engineering in [Java], and we hear very strongly that if this thing turned into an open source project – where just any old person could check in stuff – they’d all freak. They’d all go screaming into the hills.”
And in a subsequent interview on Vnunet:
“I understand why [the OSS community] would like it to be different. From our point of view that would actually be more destructive than helpful. It boils down to forking: they believe that the ability to fork is an absolutely critical right.”
Let’s be clear here – these are Gosling’s opinions, not those necessarily of Sun. Gosling and Stallman famously had a fracas over Emacs which became the impetus for the GPL, so perhaps it’s not so strange that Gosling has anti-OSS sentiments, and that Stallman has all guns blazing at Java. However, I’ve seen them echoed within various quarters of the Java community itself, and so it’s a worthwhile cause to have a closer look, I think.
Who wants a free cup of coffee?
From an ideological perspective, Richard Stallman is clearly at the front of the queue here! Free to see the source code; free to modify the source code; free to redistribute the code. It’s a freedom of speech thing really! OSS isn’t necessarily about giving products away for free (i.e., without payment). You can still charge for it, but your source will be visible to the end-user (should they care to look). The Java platform is free as in beer, i.e., you don’t have to pay. You can look at the source. You can modify and recompile. You can’t freely redistribute modified Sun code. Tut tut: hell hath no fury like a RMS scorned…
From my experience, people don’t like open source software because they can exercise the freedom of hacking with source code. They like it because it tends to deliver stable products; because it innovates; because it responds quickly to bugs and security issues; because it does the boring stuff that no-one else wants to do!
I’ve been fortunate to have an excellent contact regarding the Java/OSS issue in the shape of Dalibor Topic. He’s unashamedly pro-free software and is the lead developer of Kaffe, contributor to GNU Classpath and Harmony participant. A tad biased one expects, but he always delivers decent explanations of the current situation – starting with Apache’s motives,
“Apache Software Foundation, an organisation that’s been quite successful at writing, maintaining and encouraging donations of Free Software written in the Java programming language eventually started thinking that a full J2SE implementation might be a good thing to have under Apache’s umbrella as well, beside a huge chunk of the stack above it.”
I couldn’t agree more! The ASF have released some fantastic Java libraries that add tremendous value to the platform. Think about Ant, Log4j, Lucene, Struts, all the XML projects, and then there’s Jakarta: Commons, POI, Tomcat, Velocity, Tapestry and so on. It’s not just ASF who want an open J2SE to complete their stack, there is the wider free software community who need it. Dalibor notes:
“These days, there is an almost full Free Software stack, going from the Linux kernel, to the supporting GNU libraries from one side, and going from certified, compatible enterprise software development and deployment environments and their supporting libraries from the other side, like JBoss or JOnAS. The only remaining non-free card in that software stack is a fully compatible Free Software runtime for programs and libraries written in the Java programming language.”
But I just made you a cuppa
There even seems to be some dissent within the OSS community itself. This is because OSS is itself a broad term and encapsulates a whole spectrum of ideologies. You don’t have to look far before you find a complaints that Apache appear to be duplicating the efforts of GNU Classpath and VMs like Kaffe or GCJ. This isn’t the case. The Harmony team want to reuse as much of the pre-existing components as possible (you would be foolish not to!) The issue is that there is a slight conflict between the GPL license and the Apache license. The difference essentially boils down to the fact that redistributed GPL code must preserve the GPL license (and thus remain Free) where as Apache lets you redistribute under your own license. But, Classpath has an ‘exception’ clause similar to that found in libgcc/libg++ which permits linkage in binary form under your own license. This means that Harmony could work by having Classpath as a binary dependency, thereby avoiding the reimplementation of the class libraries. Likewise there’s already talk of using JCVM as a base for the VM. So, reuse is clearly on the agenda and Harmony is seeking all Apache friendly resources to evaluate their potential. Any shortcomings will of course have to be met by the Harmony developers and may require implementation of that component from scratch.
Forkin’ hell
The biggest argument for resisting the opening of Java is that it permits forks of the platform that would lead to incompatible versions all competing against each other. The idea that all open source advocates want to do is fork everything is a slight exaggeration. Still, this is a very real concern that should be considered carefully. The example given is to think about all the hassle you have making sure your web page looks correct on all the mainstream browsers. Even closer to home was the controversy of Microsoft’s non-standard JVM.
I personally don’t think there will be many instances of a fully forked Java platform. It’s pretty darn big! And I don’t think any one wants to see a fragmented platform. What I think would happen is what I call ‘micro-forks’: stripped down versions that are designed for specific purposes. I also imagine you’d see the JVM ported to several other platforms that are not on Sun’s radar at the moment. Dalibor speaks of Kaffe’s success on reaching new platforms:
“Kaffe is one of the most widely ported pieces of runtime software around. In total, it has been ported to more than 70 platforms, ranging from good old x86 GNU/Linux to WindowsCE and PlayStation 2. There is a lot of interest on niche platforms in having ready access to Free Software written in the Java programming language, in particular if the platform in question does not have enough marketing value for some large corporation to step in and fund the porting and certification effort of a non-free runtime.”
Sun already has a method to ensure the fragmentation of Java is avoided with it’s JCK compatibility test suite. Since anyone is free to write their own Java compiler or runtime, Sun wanted a system that gives you the seal of approval, in that your implementation conforms to the specifications. It contains comprehensive testing of all aspects of the platform and at last count the number of tests it contained was around one-hundred-billion-trillion, times infinity, plus 1, plus tax. So, it’s quite thorough and without it, Java’s lawyers will hunt you down if you try and stick the ‘Java’ badge on your implementation. Dalibor pointed out to me:
“The major argument against breaking the platform is that on the broken platform the wealth of good software written in the Java programming language will not work, so it would be a pointless exercise now, after 10 years of software development. No one would switch to something broken when they can use the real, working thing.
“One must also note that official and unofficial extensions to the Java programming language, like support for generics, have existed already for years without the platform breaking apart. The ‘everything will break and collapse’ argument has been thoroughly refuted by the history of the platform.”
A typical real world example I have come across: Java applications are often bundled with their own local copy of a JVM (to simplify deployment, as opposed to relying on the user installing the required version). Say I spot a bug in a core class that’s causing me a head-ache. I look at the source and notice it’s a really trivial error. I correct it and resubmit to Sun. If it gets approved, I then I could be waiting up to 18 months for the next official before I can get hold of a JRE that fixes the bug which I can legally deploy to customers. I can’t distribute my fixed version of the class. Therefore, depending on the bug, I have to sub-class and fix by over-riding affected methods. A lot of work for what was a simple fix (cue cries from the Aspect Oriented Programming crowd). If it’s a JVM bug, then you’ve no chance. There are also developers who simply want to remove packages that are not needed by their application – no source changes at all, but even that is not permitted. Would this really be a problem?
Get off my land!
The very notion that an open source project is automatically open to anyone to mess around with is laughable. Imagine I have an OSS project called CupOfTea. If you get hold of the source, you only have a copy of my source. You can mess that up as much as you like, but it will never affect CupOfTea. Now, OSS projects tend to promote the idea of gathering a community of programmers, but it’s not the law! I have control of CupOfTea’s source, and if I choose to, I can grant someone else access to modify the code, but it’s very rare to see a project which allows an untrusted person access to the main branch.
For any large OSS project, structures and policies become part of the development process to ensure only worthwhile and tested submissions are committed to the development source, and meritocracies typically determine who gets access to the source. Sun would be no different when it comes to managing their Java source. If “any old person could check in stuff” into Java (if it were ever open sourced) then that’s just bad management, which Sun simply wouldn’t let happen: it’s not as if they’re open source virgins (think OpenOffice and OpenSolaris). Basically, it’s a myth and Gosling should know better than to spread this one around.
Keep the change
Only the most eternal optimist is expecting Java to open their platform in a OSI compatible fashion. The free software world has accepted over the last 10 years that it’s not going to happen. Heck, that’s all part of free speech too, by the way. It’s not that OSS communities expect a free lunch here. Sun has invested so much in the platform and is undoubtedly the reason why it’s reached such success in a relatively short time. They just want an open Java platform that can happily co-exist with their open OSes. Sun’s Java license has a nasty clause under section B regarding the distribution of the JDK (and similarly for the JRE):
“…(iii) you do not distribute additional software intended to replace any component(s) of the Software,”
The interpretation is as follows: say I’m about to release MyOpenOS and am deciding which packages to bundle, if I put the Java binaries on it, I can’t then have alternatives like the Jikes compiler, GNU Classpath, Kaffe VM, etc., bundled too. Open OSes won’t accept this clause as they believe that users have the freedom to pick alternatives if they wish – and therefore Sun’s JRE/JDK doesn’t often get bundled. This is a shame because installing the official JRE/JDK on Linux isn’t as user-friendly as its Windows equivalent. It would have been an advantage, therefore, for Sun to leave it up to the OS maintainers to do the work to ensure easier deployment of Java on open platforms.
This is why there has been so much effort by the OSS community over the years. Sun won’t open up Java, so the OSS guys will do it for them! Gosling may exclaim that Java is “open” enough, yet once again this shows a lack of understanding of what free software is about. Dalibor makes a solid case:
“I find Sun Microsystems’s marketing staff’s desperate attempts funny, to try to rub off some the magic Open Source pixie dust of great street-credibility and coolness by pretending that their non-free implementations’ licenses are just as good as Open Source ones. I think it would be equivalently futile if someone tried to confuse developers and users about the fact that Kaffe is not Java(TM), in the same sense that it is not Pepsi(TM) or Coca Cola(TM), or that GNU is not Unix(TM).
“When Kaffe eventually passes the official compatibility test suites from the JCP, then it (or a suitable fork of it) may get branded with the Java(TM) label. If Kaffe or Apache Harmony were trying to rub off some magic from Sun Microsystems’s Java trademark before they meet the rules for the use of that trademark, such behaviour would be very misleading and rude towards Sun Microsystems. Proprietary software marketing efforts trying to rub off the good Open Source image without the marketed software meeting the criteria to be called Open Source, are an equivalently futile and funny attempt to mislead Open Source developers and users.”
Allow me to take a small diversion… OpenSolaris has been taking its time because it had to work around 3rd party licensing issues. I expected similar constraints in Java that could hinder an open implementation. For anyone with more than their fair share of spare time, you can have a look at the 3rd Party Readme that accompanies the J2SE platform. I couldn’t see much in the form of propriety licenses, but you’ll quickly find that Java benefits from a number of open source projects, including:
- Apache Xerces (XML parser)
- Apache Xalan J2 (XSLT processor)
- SAX (XML API)
- Nullsoft NSIS (Windows installer)
- IBM ICU4J (Unicode support, software internationalisation and globalisation libraries)
- IAIK PKCS#11 Wrapper (Cryptographic Token Interface Standard implementation)
- CUPS API (*N*X printing APIs)
- MESA (OpenGL library)
- Apache BCEL (Byte Code Engineering Library)
- Apache Jakarta Regexp (regular expression package)
- JLex (Lexical analyser generator)
- Crytpix (Crypto package)
It’s not many in the grand scheme of things, although the XML related projects are very key components to the platform. I wouldn’t be surprised to hear if Java engineers have helped many of these projects since utilising them – fixing bugs or extending features, and re-contributing back (although I don’t know for sure). Yet, it goes to show how commercial projects continually benefit from open source projects – even Java – so it can’t be that bad, eh?
Drinking from the same cup
What gets me is that the Java crew know that many enterprises are scared of open source and hence are likely to “run for the hills” at the thought of Java being opened. However, instead of merely vocalising these fears, how about some education? You see, just like when someone moans at me and says “isn’t Java slow?”, I don’t sit back and let them dwell in their ignorance, I’ll explain why this is an untruth. It would have been nice that if in Sun’s consultation with their customers, instead of playing on the fears of enterprises, and hence helping to reinforce their fear-based closed-source stance, they clarify things, “No, Mr BigCustomer, open source isn’t what you think, it can help with A, B, and C, but it isn’t helpful in X, Y, Z. Therefore, we’ve decided to keep Java closed, whilst doing what we can to promote a community of volunteer contributors…” But it doesn’t – it sends out mixed messages. Sun has just recently responded to customer demands with the new JIUL license to allow them to modify the JRE within an organisation. Dalibor’s observation was:
“It is fascinating to see how Sun Microsystems’ customers, the same people who according to some would run straight to the hills on mention of Open Source, are at the same time apparently asking for freedoms to modify Sun Microsystems’ implementation and distribute those modifications. The same freedoms that are granted and protected by Open Source software licenses.”
The thing is, you can’t deny that with open source, you open the door to forks. Yet the assumption that they are all bad is perhaps unfair. With the Linux kernel for example, you see several high-profile forks, which are essentially kept in sync with Linus’s release, and have a set of patches on top that do additional things like tightening up security, performance boosts, etc. People don’t actually want to deviate far from the main branch, just the freedom to tweak if they so feel like. This experimentation helps because successful advances can be reincorporated back to the main branch if they prove robust. Dalibor speaks of his experience:
“Kaffe has been forked a lot of times for specific purposes, and those forks have been great for the development of the project. They lead to fresh code and insight from developers and researchers taking it to new tasks like isolation, single system image, real-time or runtime environments for handheld platforms. Those different research goals could have been problematic to manage within a single project that users and developers expect to build and run for each release on more than a dozen of rapidly evolving platforms. Therefore researchers are encouraged to fork Kaffe if they have some really specific research needs, and, if they want, send patches back when they are done. By having people fork off a stable release, and integrating their work back later when it is ready, the Kaffe project is able to both sustain a fast rate of progress and gradually incorporate exciting new code from projects like JanosVM, Kangaroo or Jessica.”
I personally don’t think Sun is terribly worried about what the OSS community would do with Java – I think they’re worried what a certain three-letter-acronym with a fondness for the colour blue would do with it.
Summary
So, let’s recap,
- OSS doesn’t mean that Sun loses control of its Java platform (NB Sun never had control of the clean-room implementations in the first place).
- OSS doesn’t mean that any one can mess with the source – you copy it and mess with your own.
- OSS doesn’t mean forking. If derivatives do come, then they don’t twist anyone’s arm to force them to use it. There must be a compelling reason for it. Therefore, enterprise customers can stick with Sun – whilst the OSS boys play with their toys – and needn’t go running to the hills after all.
It occurs to me that with increasing pressure from .Net, Sun will have to be looking over its shoulder to ensure it stays ahead of MS and its seemingly bottom-less pockets. I want to see Java succeed well in to the future and I personally see leveraging the energies of the OSS community will give it greater strength. You could submit patches back to Java, if you’re happy with the license and faxed their form back! (NB, if you ever sign up, or even look at Java’s source, you are no longer eligible to contribute to OSS Java projects as you are now contaminated!) There will be many who want to contribute but won’t until it’s under an OSI approved license. In the meantime, I simply hope that the sceptics have a better understanding of what the OSS community is about. Regardless of whether you’re pro- or anti-OSS, at least you can make a more informed decision now. I’ll finish with an optimistic view of the future from Dalibor:
“In the long run, though, GNU Classpath, gcj and Kaffe will probably pass the official test suites eventually, lead to a whole set of related Free Software runtimes passing those compatibility tests, and in turn make bytecode runtime environments as much as a commodity as GCC and g++ did it for the C and C++ development tools.
“If anyone can make the ‘write once, run anywhere’ slogan true, then it is a set of compatible Free Software runtimes for all occasions and environments.”
About the author:
Andrew Roberts is a computer science graduate from the University of Leeds, UK. He remained at Leeds to study further towards a PhD in Natural Language Processing. He has been using Linux for almost 8 years, and Java has been his language of choice for advanced language processing and machine learning during the last three years.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
I have been a Java developer for a couple of years and
i do not see the need for opensource Java. Most opensource
developers carry the Midas touch, only that whatever they
touch turns to shit. For all these years, i could trust
the SUN Java class library to be tested, well documented
(surprise surprise) and industry proven.
The Apache fanboys may well try to do whatever they want
and they will probably implement another half-baked, buggy, monstrosity project (like most of their Jakarta output,
what a mess) that will go nowhere. Their only hope is
that a commercial company may pitty them and throw them
some code.
“The recent announcement from Apache regarding their plans to embark on their own J2SE implementation called Harmony has re-ignited the long-running Java/OSS debate”
Wasn’t the open-source QT clone (before the trolltech license change) known as “Harmony”?
Losing any control of java might hurt $$$ pocket. Example of losing dollars is that some might lose interest in buying Sun tools.
Let me say this about java performance before anyone bashes . If java had gone with a pure interperator and a choice of a real compiler to native code instead of bytecodes with VM then I think lot wouldn’t be critical of java performance and startup time. I don’t think people understand the java byte code compiler and time it takes. Nobody complains of python or perl performance. They are both real snappy because of no need to compile to bytecodes.
Example of interperator and true c compiler is Euphoria. It’s kind of like C. http://www.rapideuphoria.com/
I totally agree with what you are saying here.
Anyone who doesn’t understand the need for open source Java needs to RTFA. Can’t say much more. Well done.
I want to beat it too!
1. OSS doesn’t mean that Sun loses control of its Java platform (NB Sun never had control of the clean-room implementations in the first place).
Let’s just shoot this theory by saying if IBM gets hold of Java it can effectively usurp being the “gatekeeper” of all things Java. Now everybody lines up for IBM’s Java services, IBM’s tools and IBM’s consultants. Microsoft came close but Sun made them backoff. A clean room Java could never be called Java so how do you tell your customers that it works like **** (where **** are the letters J, A, V, A)
2. OSS doesn’t mean that any one can mess with the source – you copy it and mess with your own.
Let’s say IBM messes with their own copy of Java, now IBM Global services goes and installs IBM’s java at all customers place, boom, Java from Sun and Java from IBM are now incompatible – who’s Java will the Open Source community trust?. (I think the answer is clear – it’s IBM’s Java beacuse of all the brown-nosing IBM does).
Remember how Mandrake was a fork of Redhat and suddenly Mandrake became the most popular distro (www.distrowatch.org) – that’s forking in progress. A lot of things have forked – eg X.Org from XFree86 – and all because of a license. Xemacs from Emacs and a lot of cases, the fork has become the standard much to the discredit of the original developers.
3. OSS doesn’t mean forking. If derivatives do come, then they don’t twist anyone’s arm to force them to use it.
Oh yes they do!. OSS zealots will rant-rave-screem if they don’t get their way – look at how Ubuntu forked from Debian and has effectively replaced Debian as a defacto “debian” distro.
There must be a compelling reason for it. Therefore, enterprise customers can stick with Sun – whilst the OSS boys play with their toys – and needn’t go running to the hills after all.
Sun’s got the right to keep Java closed and more power to them if they managed to make Java as successful as it is today.
Too bloody bad the open source people stand around with a feeling of entitlement while companies are doing innovative things like Java, PDF (Adobe), AAC (Apple). Do something to counter Java and .Net but essentially threatening to make open source clones of them ain’t fooling anybody into submission.
Specifically, he said that:
“I understand why [the OSS community] would like it to be different. From our point of view that would actually be more destructive than helpful. It boils down to forking: they believe that the ability to fork is an absolutely critical right.”
The ability to fork has NOTHING to do with the reasons to support OSS. For one, forking only happens when there is a disagreement in the community, but the original and the forked projects tend to continue side by side. And in fact, I’m not a big fan of BSD because they HAVE forked so much.
Secondly, you’re confusing open source and free software – OSS is a catch-all term for licenses which allow you to see and modify sources that *includes* the free software (GPL) license, but is not limited to it. I can’t think of a *single* FS project that HAS forked, except for *functional* reasons – to make Linux run on hardware that doesn’t have an MMU, for example.
Surely one could see Mac OS X and Mac OS Tiger, or Win95/98/ME/NT/XP Pro/XP Home as forks – but are you going to complain about them, too?
Thirdly, whilst we GNU supporters are often accused of being freaks, fundamentalists, etc., increasingly I’m seeing insulting and inaccurate posts on FS and OSS forums like this one, from supporters of more-or-less *proprietary* software, and less from OSS developers and supporters. I think this is a good sign (for us).
Samba forked. And them merged that code to make a better product.
Innovation requires change. Change is more rapid when everyone can make their changes without interfering with anyone else. Sometimes that means forking.
If you can’t deal with the heat get out of our way.
Samba forked. And them merged that code to make a better product.
Yes, exactly. By contrast I don’t see *BSD remerging anytime soon. Not that that would necessarily be better. I can see the point of each of the main BSD’s (Free, Net, Open) foci. I just don’t much see the point of the others.
they believe that the ability to fork is an absolutely critical right.
Well this is sort of true though. After all the redistribution of code with your own patches in it (differentiating it from the main product) is the core of what open source is all about. You could consider this forking.
Surely one could see Mac OS X and Mac OS Tiger, or Win95/98/ME/NT/XP Pro/XP Home as forks – but are you going to complain about them, too?
Those are branches, not forks. Different versions of the same software blessed by their developers.
Thirdly, whilst we GNU supporters are often accused of being freaks, fundamentalists, etc., increasingly I’m seeing insulting and inaccurate posts on FS and OSS forums like this one, from supporters of more-or-less *proprietary* software, and less from OSS developers and supporters.
I think your opinion on BSD is pretty inaccurate, but I won’t start a flamewar 😉
Yes, exactly. By contrast I don’t see *BSD remerging anytime soon. Not that that would necessarily be better. I can see the point of each of the main BSD’s (Free, Net, Open) foci. I just don’t much see the point of the others.
The 3 main BSD’s are pretty much all that matter, all the others are minor variants of the kind Linux has too. Experimental stuff.
And the BSD’s share a lot of code, a lot of innovations in NetBSD and OpenBSD go into FreeBSD for example (RcNG, openSSH, ..)
I don’t think anybody would contribute to Sun’s Java implementation anyway. Look at what happened to Netscape 4 when it was open sourced — the code was so terrible that nobody could comprehend or modify it. Same will happen with Java, so open sourcing Java is a non-issue, I think.
>Thirdly, whilst we GNU supporters are often accused of being freaks, >fundamentalists, etc., increasingly I’m seeing insulting and inaccurate posts on FS >and OSS forums like this >one, from supporters of more-or-less *proprietary* >software, and less from OSS developers and supporters.
I think your opinion on BSD is pretty inaccurate, but I won’t start a flamewar 😉
Sorry, I didn’t mean that BSD’s are more-or-less proprietary. In fact I think they’re more-or-less free. I was referring to comments by fans of lock-up-your-daughter-style closed source software (though fans of BSD-style licenses also obviously aren’t often fans of GNU!).
Yep.
Whoever controls the present controls the future. Whoever controls the past controls the present. — George Orwell
This one of the best articles I’ve read in OSNews. Insightfull, well written and very interesting. It’s a pitty the troll like comments that haunts this excellent news site.
Excuse me, Ubuntu did not “fork” from Debian. Ubuntu takes Debian’s immense packaging effort and focuses effort on polishing the desktop so that it is useable out of the box. Ubuntu does what I used to spend 2-3 days doing after a fresh Debian install: making the damn thing useable.
Someone wrote on Ian Murdock’s blog:
“I would have thought that everyone realized that the only reason that Ubuntu can offer such a fine finished product as Hoary Hedgehog is that it is based on such a fine unfinished product as Sarge.”
That’s exactly right. Debian is an amazing volunteer effort; every time I explain how Debian works to a crowd of people, they all go “Wow–you mean all those developers, all over the world, put together an operating system with thousands upon thousands of free software packages? And they do all this for free?” Yes, they do. So bare with them if the end-result isn’t so pretty from a Desktop Linux point of view.
All Ubuntu does is say, “Okay, Debian is great, but let’s make it a polished desktop, a nice user experience, and then let’s support the software that we choose from Debian so that users don’t have to deal with breaks on upgrades and things like that.”
I still run pure Debian on my desktop, but I run Ubuntu on my laptop. Debian is my desktop, many years old, built the way I want it. Ubuntu is the Linux I’d like to show to the outside world of non-Linux geeks, so they understand that you don’t have to be a complete computerphile to use a Free OS.
Let’s remember that if derivatives weren’t allowed (due to a more restrictive license from Debian), then Ubuntu wouldn’t have existed, and pushed desktop linux innovation a bit further. I understand some devs take issue with Ubuntu because it basically gets all the attention for what is really nothing more than a “Debian system in a shiny package,” meanwhile Debian developers are the unsung heros. I feel bad about that too. But Ubuntu’s website does recognize the relationship between Ubuntu and Debian: http://www.ubuntulinux.org/ubuntu/relationship/document_view
http://www.ubuntulinux.org/wiki/BugTracking:
“This procedure involves a temporary fork of the package, but:
* if the maintainer accept the patch than the fork can be deleted immediately and the package reimported from Debian.
* if the maintainer does NOT accept the patch we still need the fork to fix the issue for us.
Either way is a win-to-win situation because it is work that needs to be done.
For bugs that are NOT RC we can relax and wait for Debian to incorporate the fix.[[BR]]? If this will not happen in a decent amount of time (let say 15 to 20 days or 2 uploads of the package in Debian?) we might want to fork and upload. “
Call me ignorant, but what I don’t get is why does the oss community focus so much on existing (mostly proprietary) software solutions instead of innovate and make something of your own. Then you can control it as you like. For example take the Mono project – instead of beeing innovative and starting a solution of their own when Microsoft announced .NET they waited until .NET was huge and then just tried to “make something similar”. The same could be said about Java, really.
Obviously I’m generalizing here, but that’s my impression. Some of the most successful os projects I know of didn’t play catch-up with proprietary software. Instead they made something of their own and know proprietary software is playing catch-up with them. A good example would probably be Apache.
Inquiring minds want to know
Read my blog to find out.
For example take the Mono project – instead of beeing innovative and starting a solution of their own when Microsoft announced .NET they waited until .NET was huge and then just tried to “make something similar”.
Such an ignorant comment. Perhaps you’d like to explain how else I’m supposed to run .NET apps on non-Windows OSes? And before you make any comments about that being the point of .NET, I’d like to point out that one of the big selling points of .NET was similar to one of Java’s (it’s supposed to be totally cross-platform). Since MS didn’t want to make a version of the .NET framework available to *nix developers/users, the Mono guys took Microsoft’s published standards and developed their own compatible implementation. Sounds to me like that’s what the Apache people want to do.
Read my comment again as you obviously didn’t the first time.
Most opensource developers carry the Midas touch, only that whatever they touch turns to shit.
I can’t believe that this statement did not get moderated…
Finally someone who mentiones the problems arising due to SUNs restrictions for distribution.
The JRE is really a base package, shared by all Java applications, and yet SUN’s is not installable by your excellent package distribution and install technolgy?
Where is the write-once run anywhere in this?
Burden the developer/packager with adding a JRE for each platform they want to release on doesn’t sound like write once run anywhere to me.
> AAC (Apple)
The rest of your post is stupid, but that particular part is just so wrong that it makes my brain bleed.
Obviously so that they can provide interoperability and leverage mindshare. Implementing popular tools to reap the benefits of popularity. Reusing existing work instead of reimplementing the wheel.
It’s not as if because Mono or free Java implementations exist, that everything else that isn’t Mono or Java doesn’t. There are more projects that aren’t Mono or Harmony, so what exactly is your point?
All of this “innovation” nonsense that is constantly repeated is kind of stupid. Most things aren’t innovative. Being innovative isn’t some mystical inherit asset that makes what you’re doing valuable. I’m creating a never before seen pile of no one gives a crap! Come one and come all!
Way to quote out of context.
You do realize that there’s a significant difference between an individual package and Ubuntu/Debian as a whole, right?
Also notice the word temporary?
That people are stupid and don’t know the mean of cross platform support.
Sure java is cross platform unless you are using a BSD, Skyos, Beos, QNX, or any one of the thousand of smaller OS’s that Sun just doesn’t give a rats ass about. If it doesn’t make it in the news then it’s not worthy of Sun’s management. Apple has to compile their own JVM because Sun won’t provide one for them. I wonder how many millions of dollars a year Apple has to pay for that privillege.
.NET was/is advertised as a cross platform enviroment. It’s cross platform all right as long as you run MSFT Windows. Mono and DotGNU are attempts at actually making it cross platform. Why because someone saw value where MSFT doesn’t.
Cross platform means it can be run any where. You can’t run it anywhere if the developer won’t let you run it on a non-approved platform, and won’t approve your platform cause hit only has 50,000 users(BSD’s) or millions of users(Apple).
That would mean making a truely cross platform application is impossible.
Open Source can be cross platform. Closed source will only be on platforms that give the developer a lot of money.
Why is Net BSD, Free BSD, Linux, and other Open Source applications, and software are available for any processor past,present,and future
MSFT can’t say that, Sun can’t say that, Apple can’t say that.
Windows is limited to x86 and sometimes power. Solaris x86 and Sparc.
.
is this a java thread or a ubuntu thread….
I thought it was a given that ubuntu was a FORK!
Desktop Debian is just fine thank you!
I agree … this is one of the best thought out articles I’ve read in a while. Kudos. I lean on the OSS side of things, primarily more because of pragmatic reasons. I just want to install linux, or BSD and run my Java apps and not have to worry about GCJ being incomplete or something not working – and I want my clients to be able to do the same. Java has become as mainstream as c/c++ in the business world. It’s time that every platform ship with a certified Java implementation, IMHO.
Hi Andy,
I’d like to correct an error in your article where it states, “NB, if you ever sign up, or even look at Java’s source, you are no longer eligible to contribute to OSS Java projects as you are now contaminated!”
We at Sun want to stamp out this misconception. The Residual Rights clause in the Java Research License (JRL) was added to make it clear that examining Sun’s source code under the JRL does not stop you from later participating in an open source effort. There is no contamination.
The JRL and FAQ can be found for those interested at: http://java.net/jrl.csp
Best regards,
Ray Gans
Sun Microsystems
My apologies, I should have checked this.
Thanks Andy. It’s a common misconception and we’re just trying to assure people, “it ain’t so.” [grin]
Sun wants to encourage developers to look at what we’re doing with Mustang (J2SE 6.0) and to contribute in making Java better. We want to be more transparent with the developer community by showing what we’re doing and explaining how decisions are made. We’re publishing weekly snapshots of the builds (source and binaries) for experimentation and testing, and through more readable licenses, we’re trying to provide assurance to developers that they won’t get locked into awkward situations (like contamination).
Check it out if you haven’t and please consider submitting a fix to a nagging bug or let us where we’re going wrong.
http://community.java.net/jdk/
Ray Gans
Sun Microsystems
While we’re talking about licensing, is anything going to be done about the license situation that’s preventing the BSDs from distributing Java binaries for their platforms? There’s something inherently screwed up when I have to install the Linux Java binaries to compile a native JDK for my FreeBSD machine.
Sun won’t provide the following:
Java integrated and distributed with free OSes and their packaging tools (e.g. apt-get install java)
Timely releases of Java compiled for new architectures (e.g. x86-64)
Java for platforms it doesn’t see as relevant (Linux/PPC)
Java language compilers which produce native executable code (e.g GCJ)
Supported Java bindings for their own desktop technologies (i.e. GNOME)
GUI application libraries that provide good speed
Desktop integration and interoperability functionality.
and the list goes on.
Basically, while they seem to have this idea there are no holes in what they are offering, but the reality is they have done an awful job of making Java a good choice for anything.
They profess not to understand what they dont provide, when anybody who has ever used Java as at least one big complaint, and most people can make a much bigger list than that.
Will open source make it better? I don’t know, but I’m all for them trying to do so, because Sun clearly doesn’t want to.
Exactly!
I just don’t understand how people can fail to grasp such simple concepts.
Personally I have great trouble understanding why SUN does not remove that clause:
“…(iii) you do not distribute additional software intended to replace any component(s) of the Software,”
This is such an ugly piece of legalese it makes my fist itch. Every time I upgrade Suns JDK my hackles are thoroughly raised again, as I have to go to their site and manually download various files, and I’m reminded of why.
This is the only piece of software on my system that cannot be freely distributed by my distribution. Several entirely proprietary, for pay, pieces of software have less restrictive terms on distributing their binaries.
No need for a freely distributable JDK? For crying out loud, from a manhour perspective, considering the number of installed JREs and JDKs, the entire development effort might be neutralized by the time saved on installs and upgrades alone!
Losing Apache web server.
Apache foundation better stick to their knitting before we find ourselves having to buy IIS or Websphere, or whatever.
The real problem with OSS is follow through — sticking with a project. You see this everywhere you look with Linux — broken, poorly maintained, drifting projects. The ‘new’ project is always better than the old, so the old one just decays.
Hello, Mozilla/Firefox — how many developers do they have left, 6, 8, 5, 2? OpenOffice?
IMHO, java is just fine where it is, as it is, I would rather we have one working free version of java than 5 half working implementations. At least we can all bitch at Sun when java breaks and have some resonable expectation they will fix it.
Ah! Nothing like the smell of FUD in the morning.
“Apache foundation better stick to their knitting before we find ourselves having to buy IIS or Websphere, or whatever.”
Right, because Apache is a static limited collection of people that are all working on the apache webserver, so if anyone spends time on another project the webserver will automatically lose out…. wait now, none of that is true. Oops..
“The real problem with OSS is follow through — sticking with a project. You see this everywhere you look with Linux — broken, poorly maintained, drifting projects. The ‘new’ project is always better than the old, so the old one just decays.”
Yup, if the original developers loses interest the project dies. It’s not like OSS is licensed under OSS licenses so that as long as there is interest in a project there’s virtually guaranteed to be someone to pick up the torch as a maintainer or by branching.
“Hello, Mozilla/Firefox — how many developers do they have left, 6, 8, 5, 2? OpenOffice? ”
Now that’s just absurd. You take two of the most popular projects and claim they are dying. What have you been smoking?
“IMHO, java is just fine where it is, as it is, I would rather we have one working free version of java than 5 half working implementations.”
Well, it doesn’t work! Unless you’re on one of the few platforms Sun cares about.
Call me ignorant, but what I don’t get is why does the oss community focus so much on existing (mostly proprietary) software solutions instead of innovate and make something of your own.
The open source community has built one. It’s called Python. But that doesn’t run the code that was written for Java, nor does it run the code that was written for .NET. The open source community has an alternitive for asp as well. It’s called PHP. The only reason you keep hearing about the compatibility projects is that the proprietary owners of the originals have fairly deep pockets to dig into for advertising and name recognition. However, unless you have a real need to use one of those kits, it would seem better — in my opinion — if you were to use one of the totally free stacks.
I think there is one good reason to make things like Java open source. That reason is to be vendor-independent. As long as things like Java is kept under the hood of a company they are vurnable.
Let me explain… As long as the company holding the source code is healthly there is no problen (at least few). But what happens when that company comes in heavy weather, or worse, goes bankrupt. What happens to the source code?
When in heavy weather the company could easely decide to put an more restrictive licence on the code and aske a fine for it. Hey – they need the income you know… Who would stop them? The source code is not pulic – is theirs! So everyone using the code would pay for it to keep using it. Pulling the code out of a system depending on it would not be easy – if not impossible..
When they go bankrupt the picture even darkens. It is possible another big company (fill in the name you think it would be here) will take over the source code and put it under a closed source licence after some “tweaking” to make it incompatible with other systems. They would only put out the compiled version and will restict this version to the system of their choice.
Let me say here and now – i don’t wish ány company to go down. It’s only an example. But i think this is the reason why critical languages and similiair things hás to be open source. We have to rely on these things to be – and stay – usable for everyone, even if some company holding the source code would fade out…
(sorry for the grammar – englisch is not my native language)