 |
Regarding Distribution Divergence....
Posted by cdibona on July 03, 2004 at 12:44 PM | Comments (37)
At JavaOne, Gosling, Brian Behlendorf and IBM's Rod Smith among others had a discussion about the merits of Open Sourcing Java. Gosling noted that one of the primary benefits of open sourcing the code, compatibility, is served already by Sun support for Java in a consistent fashion across platforms. But that's not really what I feel the need to address, but something else. But first, a link to the LinuxWorld story:
http://www.linuxworld.com/story/45489.htm
(Disclosure, I'm on the editorial advisory board with that publication.)
One thing that grates on me while reading this article is Gosling's statement of "All these distros, almost interoperable, but they're different enough to be a pain in the butt.". It strikes me as being a bit unrealistic. The truth is that thanks to the issues distributions had in the early days converging on a single standard for things like file locations, library versions and directory structures, the vast majority of Businesses and ISVs run and develop on Red Hat or SuSE. These are sufficiently similar and enjoy enough market share to be supported the same to ISVs. Those companies that choose to run other distributions know they're on the hook to make them work with whatever program they get from said ISV, or reinstall.
Or, if I were to paraphase my pal Jeremy Allison "There is a Linux standard for ISVs, it's called Red Hat". A more gentle way of putting it might be, "thought leadership equals the ability to make the decisions about how things are around a technology" but in the end , it is the same thing. If you want to run Oracle, you gotta conform to what Oracle ports to, and Oracle isn't porting to Gentoo. (But try out Postgres!)
You should note that this isn't at all like the incompatibility foisted upon customers during the UNIX "wars", in which competing vendors worked under the rubric of compatibility while really undermining that exact features of open systems in the name of sales advantage.
Which brings me to the heart of my divergence of opinion with Sun on the matter of open sourcing Java. It is not very gracious to hold up Suns internal processes of compatibility as a reason to not open source Java when in fact those very processes were used to ill effect on compatibility when it proved to serve Sun's business motives in the past.
And no, my alterna-distribution using pals, I am not saying that I don't like other distributions and don't recognize the prowess of a Gentoo, Debian or Slackware based system. In the windows world, people don't feel the need to support every version of windows, either.
I'm not saying that I think that Sun will pursue a strategy of platform divergence, because I think that they see that injuring Java's portability from Linux to Solaris would make people err on the side of running it on Linux. But, and this is the important thing, Open Source guarantees this is much more difficult to pull off this kind of platform performance and compatibility bifurcation. So that is another reason to like Open Source Java.
That said, it isn't as if Sun would really lose all that much control if they open the code, as the Trademark would still be theirs to continue to do with as they please, so in a way the whole "Open Source Java(tm)!" thing is a big red herring anyway. I should give Sun props for hosting this debate at JavaOne, it's good, brave and refreshing to see that they are willing to discuss the issue in a serious forum, so while I disagree with that statement of Gosling's, I applaud that they made the time to address the issue.
One last thing, as an aside, JavaOne is a funny title, if Java were to be forked, would they need to change the name to JavaTwo? Just an idle thought
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
Open Source and the free market
I agree that Linux platform divergence is not nearly the problem protrayed by Mr. Gosling, and certainly not a credible argument for the continued lock down of Java.
Market forces must always come into play. As RedHat, SuSE, and other major distributions meet with greater acceptance; they automatically create de-facto standards, as does any successful open code. There is no need for the blessing of some sanctioning body. In fact, even the 'big-guys' can have their standards co-opted by a lone programmer, with a really cool idea.
This is the essence of open source; and of freedom itself.
To be sure, governments and corporations can force standards; however, I believe that most of the strongest, and longest-lived standards will be those recognized, and adopted as such, freely, by a community of peers.
Posted by: cajo on July 03, 2004 at 02:53 PM
-
Agree w/ Gosling
Maybe you're too close to the trees, or maybe I'm a slow learner, but I thought Gosling was spot-on. I don't have time to spend four hours configuring my printer, or two hours figuring out how to swap out ipchains for iptables, or whathaveyou.
Many different Linux distros does mean confusion for the marketplace, just as many different Unices meant confusion in their day.
As a casual user not looking to play with Linux but get real work done, I don't want to have to know the differences between Debian, SuSE, Fedora, Gentoo, etc. I just want software to work.
I'm so, soooo grateful that the Java platform is so very focused on compatibility; I haven't got time for anything else.
Posted by: javaben on July 03, 2004 at 09:45 PM
-
Agree w/ Gosling
Swapping ipchains and iptables or configuring your printer has little to do with multiple Linux distributions existing. There just aren't any very good interfaces to printing or ipchains, that I've found. I don't see why you're attributing those problems to incompatibility between Linux distributions,
Posted by: keithkml on July 04, 2004 at 11:52 AM
-
Linux is interoperable
99.9% of all Linux programs will run on any Linux distribution. The only programs that won't run on all of them are very system-specific programs such as init script managers.
Posted by: keithkml on July 04, 2004 at 11:53 AM
-
basically flawed reasoning
Your reasoning that open sourcing Java would prevent divergence of the platform is basically flawed.
Open sourcing Java would guarantee divergence which would kill Java.
That is the only reason ESR (and to a lesser degree IBM who think they can control the divergence and use it to take over the platform for their own) want Java open sourced.
As it is Sun can prevent that divergence by enforcing that all compilers and VMs that want to use the Java name confirm to the same standard as set down in the JLS.
Posted by: jwenting on July 04, 2004 at 11:27 PM
-
Incoherent responses
Like I find with Farenheit 9/11, the most obvious praise for Open-Sourcing Java, is the incoherence of the arguments against it.
Not that I don't think there are good reasons on both sides (of both issues) but if people find it so difficult to marshal a solid argument then I feel confident in dismissing their concerns in favour of those who can put something together with a degree of logic.
The number one conclusion I draw from the lukewarm and confused response to Open Sourcing of Java ( and apparently Linux and Open Source in general) by Java developers is that Open Source developer and Java developer communities are divided and rapidly diverging.
With the emergence and embrace of Mono (a MSFT technology for gawdsake!) by the OSS community, Java developers in general should be worried about their platform being marginalised.
Posted by: bawjaws on July 05, 2004 at 03:30 AM
-
Linux is interoperable
0.1%? I got Oracle 9i running on Debian and Gentoo but I couldn't have done it without Google (http://download-uk.oracle.com/docs/html/B10811_02/ch2.htm#i1011082). I have had trouble running MQ Series with Debian. Perhaps DB2 has simillar problems. Take Eclipse, there are two versions of the IDE,one for Motif and another for GTK with enough differences between them to be annoying. If I dig hard enough I could come up with a lot more candidates which target specific versions and distributions of Linux.
I am not saying its Linux at fault but just pointing out that there are enough divergences in the Linux ecosystem for vendors to target certain strains of Linux.
On the obverse side, take a look at Netbeans or Jonas or JBoss or Tomcat or Resin or even Oracle JDeveloper/OC4J or the J2EE RI. I have had them running on a number of Linux strains without any trouble whatsoever. They have behaved pretty much the same. They do not demand any specific version of Linux or any distribution. They only demand a specific version of the JVM. In fact what the JDK 5.0 states is, "JDK 5.0 is supported on i586 Intel and 100% compatible platforms running Linux.".
The 0.1% you have chosen to ignore contains a number of large and mission critical enterprise applications. Sadly missing this 0.1% means that pretty much only Redhat and Suse make into into the Forture 500, The JVM on the other hand belong to the 99.9% camp.
Cheers
Posted by: suhail on July 05, 2004 at 03:45 AM
-
Re: basically flawed reasoning
> Your reasoning that open sourcing Java would prevent divergence of the platform is basically flawed.
I missed who was arguing that point :-) In my opinion, open sourcing definitely would invite the possibility of divergence, and that is one of its greatest advantages!
To me the crux of the issue comes down to this: No rational person wants to see a platform diverge; however, a popular fork in any open source project must necessarily have a strong reason for acceptance. Considering the source is open, the changes could easily be absorbed into the original version, but would have to be actively refused.
Those worried about the spectre of Microsoft (or anyone else) coming in, and 'taking-over' the platform should remember that this type of predatory practice only is possible with closed source, since contributions to open source are themselves open. Open Java, and I suspect Microsoft won't even come to the party.
I believe closed source significantly reduces the pressure of 'innovative competition'. It also allows the promotion of politically well-connected bad ideas, and far worse; the complete opposite. These factors invariably lead to a much slower rate of advancement, acceptance, and adoption.
Make no mistake: Mono/.NET is already a divergence on the Java platform. It would be well to ask: What is the strong reason for its existence?
Posted by: cajo on July 05, 2004 at 05:59 AM
-
Agree w/ Gosling
Let me be more explicit: Each distro does some things differently. One distro ships with ipchains, another with iptables. One HOWTO discusses a particular version of a particular distro, another HOWTO talks about it another way.
Linux fans may know how to translate a HOWTO, or know where to go to find the latest instructions or whathaveyou -- but for those who don't have hundreds of hours to lay on the alter of the Linux gods, these are serious issues.
Posted by: javaben on July 05, 2004 at 08:23 AM
-
Agree w/ Gosling
You are confusing Linux-the-kernel and Linux-the-distro, which should be named GNU/Linux.
A linux distro is not one open source project, but a collection of unrelated open source projects, including the kernel, programming languages, utilities and others. If you consider each open source project individually, you see little forks and incompatibilities. There's no forked versions of MySQL, Perl, Tcl/tk/, ruby, mozilla, gcc and such. As far I know, only XFree has forked recently, and everybody moves to the new project.
An open source Java would be one element of a distro, and like the others language would certainly continue it's life under he's benevolent dictator (Gosling), like does nearly all the other open source projects.
One more point: the compatibility between distros isn't so bad, for example the j2sdk JIT interpreter works like a charm between linux distros and versions of X windows.
Posted by: fgoret on July 05, 2004 at 09:11 AM
-
Re: basically flawed reasoning
I totally agree with you that incompatible changing and absorbing is a main driver for innovation. But I don?t see what open sourcing Java would practical change in this regard.
Concerning forking of the core language there is an open VM and a compiler and there are language forks like AspectJ. (Compare the innovation factor to Mono).
And for the APIs nobody prevents anybody to write i.e. a Swing replacement (SWT exists) or any other replacement. The best example how the branch off and reintegrate works is probably Hibernate versus JDO. The OS contra-standard Hibernate comes back in the standard through EJB (while there is IMO too much flaming, because of two standards ? the Java community takes standards very serious).
Maybe technical it is not legal to fork Java, but practical IMO all the advantages you described from forking are achieved by a very active OS and commercial community. Java is innovative. It is innovative enough that MS made a (very) similar thing ? with GNU following - and a lot is tried to be ported to CLI (ie. csUnit, IoC-Spring ).
A last personal note: My feeling is that the whole OS discussion is more a political one. I (very personal) think the Linux community just sees that Microsoft has (a very good) framework and they somehow feel that this is the way to go in the future. They could and do implement their own, but it would just be easier to take control over an existing one. Please understand, I don?t want to bash on Linux - it saves us the day ? but I just did not find any ?technical? argument for OS Java convincing. I find it rather unfair against Sun.
Posted by: chrisichris on July 05, 2004 at 12:55 PM
-
Re: basically flawed reasoning
It's interesting that Sun are taking the bizarrely contradictory Microsoft line on open source, namely that it's a bad thing yet we already do all the stuff about it that's good.
For example, Open Source is insecure because you can see the source, and has inefficient forks and incompatabilities, etc. etc." and yet MSFT Shared Source or Java gets all the "benefits" of Open Source by opening the code and allowing forks and alternative implementations.
You can't have your cake *and* eat it.
Posted by: bawjaws on July 06, 2004 at 02:24 AM
-
Re: basically flawed reasoning
First of all I am no way related to Sun - except of using their JDK. When I said personal above I just wanted to express my uniformed opinion as a normal Java programmer.
Apart of this you can see the source of Java, 'forke-innovation' happens and the Java community and Sun are on of the biggest contributors to OS. It's just unfair to compare them in this respect to MS.
And please don't eat the whole cake if it is as big as Java, take slices. Keeping the balance demands of course more effort than the all or nothing decision.
Posted by: chrisichris on July 06, 2004 at 05:13 AM
-
Linux is interoperable
I agree with the general statement that Linux is more compatible than the author is willing to admit. I've been running Slackware for ages and I have seldom run into any significant problems and I've yet to come across a program I need and can't get to work at all.
Yes, my Java runs fine there without any modifications on a standard JVM download from Sun.
Regards, Joris.
Posted by: jmelchio on July 06, 2004 at 01:39 PM
-
Open Source and the free market
I have to agree with James. I too love Linux and have much distaste for Microsoft products, but there is more diversity in Linux distribution land than is warranted. The freedom to experiment is great, but there are basic needs for standards that are stronger than de-facto standards can produce. BTW, as an aside, if MS open-sources Windows entirely, they are by default the de-facto operating system standard because they have the largest user base and largest developer group. Oh, and you imply that you can have multiple de-facto standards (Red Hat, SuSE, et al). That makes zero sense.
De-facto is all about popularity, which is contrary to "recognized, and adopted as such, creely, by a community of peers". It's obviously much more complicated than that. While an intellectual group of talented folks coming to a consensus and agreeing to something long-term happens once in a while, in a truly open system it's rare that everyone agrees. There are too many people out there that will subvert and co-opt, corrupt and disrupt. There are lots of cases where the best man does not win in open-source, too.
And open-source today is changing, primarily based on something that Red Hat pioneered - corporately sponsored development. There are several things they did on company dollars that shaped the way many Linux distributions did things that were certainly not decided freely by a community of peers. And don't get me started about RPMs.
Oh, something else I was going to mention -- Java is focused on byte-code compatibility between both hardware and software, which is different than Linux and many open-source projects that are based on re-compiling for different hardware and operating systems. That to me is where the "pain in the butt" part of James' argument comes in. Just because you *can* make it work, if you have to work to make it work, you've lost a lot of users or wasted their time (and yours, too). Anyway, my point is that they are different cases, close to apples and oranges, but I've not formally researched it all so don't sue me.
Market forces don't always come into play. There are plenty of people willing to settle with a unique slice of the pie. You get enough of those, and the whole pie crust crumbles, so to speak. Java, in my opinion, has the best mix of openness and community control that it can have, and it's getting better all the time.
And why can't Java users/developers have the freedom to continue with the way things are? We're perfectly happy with the reasonable open process of the JCP and the fact that we have very little worries about fragmentation. It could happen, then again it may not. By why risk it when we're being so productive?? And why are open-source licenses so restrictive? Commercial entities and users are perfectly happy to use both pay-for/proprietary and free/open-source software. Why can't open-source play with non-open source? Why can't they change their licensing to be more "open"? We should be free to mix and match and bundle the free with the not-free, open with the proprietary.
The need for multiple free JVMs escapes me. Seems like a collossal waste of effort just to get licensing compatibility (oh, for the record I think Mono is a collossal waste of effort and certainly helps Microsoft out, which is something I'd rather not see happen to a blatantly criminal organization). Why not change the licenses of the non-Java software to allow the currently certified Java JVMs to "interoperate"?
As a developer, I actually like the fact that I can go to one place to get Java, and it just works. I don't want to have to go to multiple places and read news, change releases, bug lists, compatibilty lists, forums, blogs, etc. just to figure out whether a given Java "distribution" is going to work or not. Sun has proven to be a good steward of Java and I see no risk in letting them and the JCP continue doing a great job. I guess I just think that it's not very pragmatic to demand something that's not really needed and is risky. There's plenty of room for innovation on and contribution to the Java platform. I'd hate to see any little bit of that be lost in the name of "freedom".
Before anyone writes me off completely and flames back, I hope you can see where I'm coming from and agree to at least some of it. What I'm hoping is that open-source advocates can avoid a doctrine of "free way or the highway", and recognize that multiple development models can and should be "allowed", and that a principle foundation of freedom is choice, which includes the ability to choose things that are not 100% open-source. Thanks for reading...
Posted by: gerryg on July 06, 2004 at 09:18 PM
-
Show of hands: anyone agree with me?
Quick poll - I don't know how many people will read my above post, but can I get a show of hands for those that agree with my points? Am I the only one that feels this way? Thanks!
Posted by: gerryg on July 06, 2004 at 09:24 PM
-
Can someone clarify the debate for me?
My understanding has been that Java is a specification, a *standard*. If so, open-sourcing doesn't really make much sense. The JCP seems to be as close as you can really get to an "open-source standard".
Now, if you're talking about open-sourcing Sun's *implementation* of Java, it seems like a good idea to me. I don't really see how much more damage people can do with a tweaked version of Sun's Java than their own built-from-scratch tweaked version of Java (look at what Microsoft did).
What would be helpful would be some compatability test suite for J2SE like what exists for J2EE. Sun could then refuse to allow anything that fails the tests to be labeled "Java". This wouldn't block some Microsoft-style "embrace and extend" attack; then again, I suspect that few entities other than Microsoft have the market weight to pull of an "embrace and extend" attack. Again, those that do could easily do it with a home-brew implementation of Java without modifying Sun's implementation.
An OS Java from Sun would also lend a hand to some of the "forgotten" platforms still stuck on Java 1.3... (I've heard the arguments against this, I won't go into them here--my post is long enough already--but I disagree with them.)
William
Posted by: afishionado on July 06, 2004 at 09:54 PM
-
Re: basically flawed reasoning
It's not forking or deliberate divergence.
The dangerous part is people and groups creating a fork of Java which is incompatible with the existing version and releasing it under the name Java, which is exactly what would happen.
This would cause not only massive confusion among users (I have the 1.5.6.7.8.34.1.4.6 from group A, is that compatible with the 1.5.6.7.8.34.1.4.6 you mention as required or not?) as well as major headaches for developers (remember the old days when you had to create specific code for a dozen hardware and software architectures to reach all major customers?).
Having the platform under the sole stewardship of Sun and the JCP prevents that kind of parasitic, viral, forking and divergence.
Instead it adds what you describe, a mechanism by which people can propose ammendments and changes to the system which are introduced into the system if there is enough incentive among the community as a whole and not just a few individuals who may well have ulterior motives to damage the platform as a whole.
Maybe the JCP should be less bureaucratic so it can move faster, maybe it should be removed from the direct control of Sun and placed under a foundation like what IBM did with Eclipse but anything is better than the complete anarchy that open sourcing Java as proposed by IBM and ESR would entail.
Simple fact: the current system works reasonably well even if it is sometimes a bit slow.
The source is available as is, and if you find a genuine bug you can submit a fix through the bugparade where it may well be picked up for inclusion in the next minor release (which happen regularly if often unannounced).
Posted by: jwenting on July 07, 2004 at 02:02 AM
-
Incoherent responses
The Java platform is being used a lot in open source.
Far from being marginalised, the people using it just don't see the need to shout big slogans like the Mono people (who more or less claim that Mono will kill Microsoft, the eternal gospel of the Linux crowd).
That kind of people, the script kiddies and Linux zealots, are the last kind of people most serious Java developers want to see.
And they're exactly the type of people screaming that Java is doomed unless they're given control over the platform.
Isn't it nice to see that we keep away the people we most want to keep away by simply ignoring them?
Posted by: jwenting on July 07, 2004 at 02:07 AM
-
Incoherent responses
P.S. I fully agree with your sentiments about Michael "Ho Chi" Moore's latest movie and the raves about it :)
Posted by: jwenting on July 07, 2004 at 02:08 AM
-
Can someone clarify the debate for me?
Now, if you're talking about open-sourcing Sun's *implementation* of Java, it seems like a good idea to me. I don't really see how much more damage people can do with a tweaked version of Sun's Java than their own built-from-scratch tweaked version of Java (look at what Microsoft did).
Under the terms of the platform anyone creating a JVM has to get permission from Sun to release it using the name Java.
Microsoft, like IBM and others, got that permission for their JVM (as well as for the WFC...).
So your argument there is moot.
The big problem is that people will start calling things Java which are basically incompatible with the JLS the moment they can. The current system prevents that.
What would be helpful would be some compatability test suite for J2SE like what exists for J2EE. Sun could then refuse to allow anything that fails the tests to be labeled "Java".
That's the current situation which is exactly what the OS zealots want to get away from.
An OS Java from Sun would also lend a hand to some of the "forgotten" platforms still stuck on Java 1.3...
You mean by releasing a higher version number which undoes the changes made to the platform in 1.4 and 1.5, causing massive incompatibility with other implementations?
That's exactly why Java should NOT be opened further than it already is.
The few applications that don't work well under a newer JVM can still work on an older one by simply installing 2 versions side by side or by updating the application (after all, the real zealots would never use something they don't have the source for would they now?).
Posted by: jwenting on July 07, 2004 at 02:13 AM
-
Reality check
Opening the source code to the JVM and API reference implementation does not require Sun to lose control over the Java trademark.
Opening the source code does not require the JCP to relinquish control over the Java language specification.
The reference implementation is just that - an implementation. 'Java' itself is the *standard*, as defined in the specifications. Other people are free to make their own implementations. The problem with that is that it is very wasteful to have people duplicating implementation effort, and there are license issues preventing some cleanroom projects from proceeding.
If there's a good VM and API implementation available now (Sun's), let's get it out there on every platform. Let's get rid of the license problems which hold back total Java ubiquity.
The current problem the license poses to the Libre communities is that the requirement for a *complete* conforming VM and API prevents the incremental development style of Open Source. There is also an incompatibility between SCSL and some Libre licenses.
An earlier poster quite rightly suggested that:
"An OS Java from Sun would also lend a hand to some of the "forgotten" platforms still stuck on Java 1.3... "
Your response "You mean by releasing a higher version number which undoes the changes made to the platform in 1.4 and 1.5, causing massive incompatibility with other implementations?"
is totally wrong.
Nobody is going to release a version with a higher version number unless it meets the specification for that version. What would be the point?
Whether intentional or otherwise, you are arguing against a strawman. The pro-Libre camp is nowhere near as extreme as you seem to think - there is a whole spectrum of possible ways to make Java truly Open. Some are good ideas, some are crazy.
Just because *some* Open Source Java suggestions are crazy doesn't imply that *all* of them are!
If you want to debate Open Java, that's fine - but please address the arguments people make, rather than putting words in their mouths.
Posted by: philwebster on July 07, 2004 at 03:28 AM
-
Sensible Libre Java suggestion on Mike Loukides' blog
I'm not going to cross post, so instead here's a link to the other discussion on Libre Java:
http://weblogs.java.net/pub/wlg/1621
Read my posts 'Better worded license.' and 'Other points.'
There, I advocate a solution which will allow Java to become *genuinely* open, satisfy the people wanting a more portable reference implementation and at the same time possibly allow Sun to make more money - and all while still preserving the authority of the JCP standards process and Sun's trademark and patent rights.
Please reply to those threads rather than this one, since the discussion is more relevant to that blog than this.
Thanks.
Posted by: philwebster on July 07, 2004 at 04:32 AM
-
Non-flame response!
"And why can't Java users/developers have the freedom to continue with the way things are? We're perfectly happy with the reasonable open process of the JCP and the fact that we have very little worries about fragmentation. It could happen, then again it may not. By why risk it when we're being so productive??"
Open Source and Free Software pose no such risk. The JCP can still control the specification, and Sun can still own the trademark (and use it to enforce standards compliance, as they do now).
Making the J2SE VM/API reference implementation Open does not automatically mean *everything* must suddenly be turned over to Open Source developers at the expense of the established process Java uses today. There are other ways.
The JCP can stay, even with a Libre reference implementation. Sun's rights can stay too. Both are useful.
An Open implementation would be vastly more portable, distributable and intercompatible that what we have now, and would greatly boost Java's ubiquity to the benefit of both Sun and the Java community.
"And why are open-source licenses so restrictive?"
Not all of them are. What's wrong with the v1 and v2 BSD licenses? What's wrong with the LGPL? None of these will 'taint' your code with any requirements except in BSDv1's case, where you will have to give credit where due.
"Commercial entities and users are perfectly happy to use both pay-for/proprietary and free/open-source software. Why can't open-source play with non-open source?"
It can. Some parts of Windows are based on BSD code! If you mean 'why won't open source users use non-free software' then you are entering a very complex issue which can really only be explained by the use of links to relevant resources.
First of all, don't overlook the philosphical difference between 'Free Software' and 'Open Source'. While in practical terms the two are very similar, the reason behind the action differs greatly.
With Open Source, there is a genuine belief that O.S. is a more efficient and generally 'better' way to create software. If someone presented you with a development methodology which you considered to be vastly inferior to the one you currently use, would you switch? The Open Source people wouldn't.
Free Software recognises the perceived technical advantages of Open Source, but goes further in that Libre licensing is consider more *ethical* than closed source as well as being a 'better' way of developing. So to use another example - if someone wanted you to perform some action which violated your moral principles for the sake of temporary convenience, would you do it? The Free Software people wouldn't.
Both of these positions are explained in more details on the FSF site:
www.fsf.org
and the Open Source site:
www.opensource.org
" Why can't they change their licensing to be more "open"? We should be free to mix and match and bundle the free with the not-free, open with the proprietary."
You can. The LGPL allows you to bundle and use Libre libraries together with proprietary code without having to release your own secrets. If you don't like the LGPL, use a BSD-like license. They are 'Open Source' too, and can hardly be referred to as 'restrictive'.
"The need for multiple free JVMs escapes me. Seems like a collossal waste of effort just to get licensing compatibility"
This would not be a problem if the existing reference implemenation was dual-licensed, as I have already described in java.net blog response posts elsewhere. It can be done without running the risk of forking.
"Why not change the licenses of the non-Java software to allow the currently certified Java JVMs to "interoperate"?"
Because the Libre licenses are there for a good reason. The arbitrary restrictiveness of the Java license is not, as the very things it claims to prevent could still be prevented with the source under the GPL!
Again, I have already explained all this in another thread (and provided a link to it in this one).
Hope this clears things up a little.
Posted by: philwebster on July 07, 2004 at 05:18 AM
-
Can someone clarify the debate for me?
The big problem is that people will start calling things Java which are basically incompatible with the JLS the moment they can. The current system prevents that.
And, I don't want to change anything in the system that prevents that.
That's the current situation which is exactly what the OS zealots want to get away from.
OK. I like OS, but I guess that means I'm not an OS zealot. :-)
You mean by releasing a higher version number which undoes the changes made to the platform in 1.4 and 1.5, causing massive incompatibility with other implementations?
No, no, no. That's not what I meant at all. What I want is the option for people to port Java 1.5 to, say, Linux on PPC without having to write a new implementation from scratch.
I've heard the arguments that this propagates bugs in the VM across platforms, but come on, how can this be worse than adding new bugs? When your program adheres to the Java standard, works on one platform, yet doesn't on another, it's frustrating. It's even more frustrating when a workaround for a bug on one VM kills your program on a VM without the bug. The promise of "write once, run anywhere" suddenly isn't true anymore.
[rant off] :-)
Posted by: afishionado on July 07, 2004 at 09:45 AM
-
Wow!
I'm writing up a response of sorts for my next article herre, but I wanted to post and jsut say how much I appreciate all the great responses to this article. Look everyone! Smart people on the internet!
Chris DiBona
Posted by: cdibona on July 07, 2004 at 09:52 AM
-
Re: Open Source and the free market
Yes, de-facto standards are indeed based on popularity; however, in the free software community; adoption of software is based on merit: Not on marketing.
Perhaps you forgot that the internet itself is based entirely on de-facto (RFC) standards? (Even with the vererable RS-232 interface; most people do not know the 'RS' stands for: Recommended Standard!)
I apologise that this thread languishes so much on Latin nomenclature, but I truly believe:
"Most developers much prefer de-facto standards; over de-jure!" :-)
Posted by: cajo on July 07, 2004 at 12:41 PM
-
Non-flame response! The reply
I totally agree and am aware of the vast array of different licenses available. All I can say is the most vocal "open-source Java" proponents seem to either have hidden agendas (IBM) or represent the more difficult licenses to work with.
You bring up good points that there are *some* licenses that would work out, but again my guess is the vocal crowd would probably still lobby for more. You hit the nail on the head by explaining that there is way more than one meaning to the generic term "open source". The media doesn't help, either. And as you obviously know, it's very difficult to have a reasonable discussion when not everyone is working from the same foundation of terminology and well-thought-out philosophical (and ethical!) positions.
There's a lot of ground to cover and while you make it sound easy you also make it sound difficult. I can empathize with Sun in that they're doing a great job and why should they go through all the hassle if things are working just fine? It's a very pragmatic position, and considering their legal escapades with Microsoft, they're certainly going to be cautious. We'll see what happens, but in the meantime I've spent too much time on this and have some Java code to write....
Posted by: gerryg on July 07, 2004 at 02:42 PM
-
Non-flame response! The reply
"All I can say is the most vocal "open-source Java" proponents seem to either have hidden agendas (IBM) or represent the more difficult licenses to work with."
How do you know that IBM has an agenda, if it's hidden? ;-)
As for the 'difficult' licenses, I think that could be used to Sun's advantage. I assume by 'difficult' you are referring to the GPL. If not, please enlighten.
Microsoft won't touch GPL'ed code, especially not after all the 'cancer' rhetoric spouted by senior management.
And remember, I am advocating *dual* licensing, not just a straight GPLing of the entire codebase.
"You bring up good points that there are *some* licenses that would work out, but again my guess is the vocal crowd would probably still lobby for more."
I can't really see what else they could want. An Open Source JVM and API implementation dual licensed under the GPL (and the other, Sun license), a reasonably democratic standards process, and a fixed, Libre-friendly SCSL.
This is enough to allow Sun to be able to legitimately claim that Java is an open standard. Sun can say 'no' to the rest, without looking like the bad guy.
"There's a lot of ground to cover and while you make it sound easy you also make it sound difficult."
Which bits sound easy? Which sound difficult?
"I can empathize with Sun in that they're doing a great job and why should they go through all the hassle if things are working just fine?"
The best answer to this one is the 2,500 year old fable 'The Tortoise and the Hare':
http://en.wikipedia.org/wiki/The_Tortoise_and_the_Hare
While the moral of this story is usually given as 'Slow but steady wins the race', there is another interpretation which is more appropriate to what we are discussing.
From the hare's perspective, having established a healthy lead over the tortoise justified taking a nap. Wasn't the continued expense of increasing her lead 'too much hassle'? Things were 'just fine'. However in a competitive market, as in a competitive race, there isn't really room for complacency.
Java has Microsoft's C# to contend with, and Microsoft isn't messing around. Open Source can give us (the Java community, Sun, JCP stakeholders) the boost we need to finish the race in first place. This is no time for sleeping. It's time for action.
Posted by: philwebster on July 07, 2004 at 07:55 PM
-
Re: Open Source and the free market
I know where you're coming from, but beg to differ. Even in the open-source community there is marketing, and meritorious achievement does not always become the adopted standard.
RFCs and RS-232 were technical documents describing primarily hardward interfaces and network protocols. The military essentially decided the fate of the internet as being TCP/IP (see 30 Years of RFCs, item 5), ordering it to be come de-facto.
I agree to a point that developers such as you and I prefer de-facto standards, but sometimes it's a long painful wait for the victor to arrive on the scene and finally allow people on the sidelines to feel free to actually get work done.
BTW, can you consider Java a de-facto standard? How about .NET? C# is supposedly a "standard". Java is popular, free, certainly has very high merit, is widely adopted, and is certainly not being forced on anyone. If it's not de-facto, what is it that prevents it from being so? I'm still waiting for a really good reason why the current situation needs to change, what benefit could be gained by me as a Java developer.
Thanks for the good discussion, BTW.
Posted by: gerryg on July 07, 2004 at 09:28 PM
-
Re: Open Source and the free market
Running an an open source project here myself, I agree that marketing is essential. Mindshare is the first step toward widespread free software adoption, no matter how meritorious the design. I also agree, specifically for that reason, that a lot of good code often goes overlooked.
So I guess a lot of people do not want freedom, when it comes to Java? I definitely would love the ability to customize the Java environment to my requirements and platforms, (which by the way are not PCs), fix some nagging bugs, and legally be able to give away (or sell) my work.
Yes, Java is de-facto; but it is certainly not free.
Posted by: cajo on July 07, 2004 at 10:21 PM
-
Re: Open Source and the free market
"So I guess a lot of people do not want freedom, when it comes to Java?"
It depends on what you mean by 'freedom'.
"I definitely would love the ability to customize the Java environment to my requirements and platforms, (which by the way are not PCs)"
If by 'customize' you really mean 'port', then the dual GPL/Sun license with strong TCK-trademark enforcement proposal I have been advocating would allow that.
The HTML wars were bad, and were caused by a lack of strong enforcement. While the W3C itself is an admirable organisation, it has to be said that they don't really have 'teeth' to enforce standards-compliance.
Open Source Java could go down the same road if everyone could add arbitrary extensions. Java is good for me primarily because of the portability it provides. For Java to lose its WORA capability woluld be a disaster - but that is *not* an inevitable consequence of Open Source (in the strictest sense that OS just means opening the *source* and not the whole IP portfolio).
I want Sun to keep the trademark and patent control (as standards enforcement 'teeth' only), the JCP to stay in control of Java standards, and the reference implemenation to be released under both the GPL (with GNU-Classpath-style exception) and another license of Sun's choosing to allow them to keep a closed version for their own commercial use (as with OpenOffice.org).
This is all explained on the other blog thread.
It's a way for Sun to gain influence and make money. It's a way for the Java community to expand and the Libre communities to help. It's also a way to add legitimacy to claims of 'open standards' and ensure Java's future as a platform in the face of competition from the likes of C#.
"fix some nagging bugs, and legally be able to give away (or sell) my work."
Both of these would be fine under a dual GPL/Sun licensed Libre reference implemenation.
How could it work?
Sun people can commit, together with selected Libre developers. Other people can pass patches up to commit-level developers. It's the way things work in other major Open Source projects, and that's fine by me.
Or are you suggesting something else?
Posted by: philwebster on July 07, 2004 at 11:05 PM
-
Misquoting? What the advocates REALLY said:
You said:
"...anything is better than the complete anarchy that open sourcing Java as proposed by IBM and ESR would entail."
So what exactly did Eric Raymond (ESR) propose? Here are some relevant quotes from the open letter which kicked off last year's round of Libre Java debates:
"Sun's insistence on continuing tight control of the Java code has damaged Sun's long-term interests by throttling acceptance of the language in the open-source community, ceding the field (and probably the future) to scripting-language competitors like Python and Perl.
...
Sun's terms are so restrictive that Linux distributions cannot even include Java binaries for use as a browser plugin, let alone as a standalone development tool." [1]
"no amount of talk or posturing can change the fact that Java's "Sun Community Source License" is an instrument of proprietary lock-in, and most open-source developers simply do not want any part of that." [2]
Raymond is talking about opening code. Nothing else is mentioned, so nothing else should be assumed. And opening the code would be fine, because the trademark and patent controls would still be there as teeth for the Sun legal department if anyone was stupid enough to try to pass off a non-conforming VM and API implementation as 'Java'.
References:
[1] http://www.catb.org/~esr/writings/let-java-go.html
[2] http://www.catb.org/~esr/writings/let-java-go-2.html
Posted by: philwebster on July 07, 2004 at 11:26 PM
-
Non-flame response! The reply
Limited time, but do you feel Sun is "taking a nap"? Or that they don't realize their situation in the competition with Microsoft? Sun has been anything but complacent, so the tortoise/hare analogy is hard to buy. If anything Sun has redoubled their efforts this past year, especially since Microsoft gave them money! Neither Sun nor MS has any delusion that Sun is being paid off to not compete, just that they've put their legal differences behind them and are moving on and can now compete more vigorously.
I'm still digging here to understand how your vision of dual-licensing the JVM and adding a few "select" commit-level developers for it will give Java a "boost". The core language is being modified through JSRs & JCP and after J2SE 5.0 there's not really a lot more that can be added to the core without it getting too heavy and unwieldy. Most of the interesting work (and the work that will make life hardest on Microsoft) is in the other JSRs, and the Groovy one is a good example of an open-source extension to the Java platform that doesn't require the core to be open-sourced. But I will concede that there are some bugfixes and minor improvements that probably should happen, and if Sun isn't willing to spend the time to address them then maybe adding committers would help with the fixes.
Posted by: gerryg on July 08, 2004 at 02:23 AM
-
Re: Open Source and the free market
Yes, the html wars were bad... they killed it off, and the unix wars were also bad, they also killed it off... Oh no wait a minute; they are both thriving now! :-)
Confrontation and disagreement are never pleasant, and they should be avoided; but sometimes they are necessary, and when important, produce significant advancement.
However, prohibiting competition and confrontation, as Sun is now doing, may seem reasonable at first glance; but if Java is going to be significant in the long run, it must be able to survive on its own; without protection.
This isn't kindergarten.
Posted by: cajo on July 08, 2004 at 01:50 PM
-
Misquoting? What the advocates REALLY said:
Following the blog entry there are two major distributions and SUSE includes Java - write an open letter demanding SUSE.
Scripting and Java should be partners. Like it's tried with PHP. (I find the PHP guys the most amazing ones. They do the only ethical right thing: bringing the technology straight to the users - without making a religion out of it. Their sourceforge track is just wonderful).
The acceptance problem Java faces is not at the server it is at the graphical client. Much better integration is needed there. (Here IBM (now eclipse) does with SWT a much better job than Sun. I want to see SWT in the JRE - in every JRE).
Unfortunately the client is very sure in the hand of closed source companies - Microsoft, Macromedia Flash and Adobe (PDF, Postscript, SVG-plugin). I think if you want to go in there complete open source is rather hindering. Mabe at sometime it is need that SUN can make a private source agreement with one of these companies and that under this agreement closed source is included in the JRE. If it pays off in terms of functionality I am fine with that.
A last thing: I think IBM with it's OS partners in Eclipse have already a lot of control - and this is just right, they do a lot and bring the much needed ease of use. Ie. I won't change to Java 5 until elipse does and when AOP is more mature I will use AspectJ - with or without JCP. Finally the one who makes the better technology for the better price should rule and will rule. The licence is overestimated.
Posted by: chrisichris on July 08, 2004 at 04:03 PM
-
Standards, Sun as Leviathan
"Confrontation and disagreement are never pleasant, and they should be avoided; but sometimes they are necessary, and when important, produce significant advancement."
But did the HTML wars produce significant advancement? IE still does not have full CSS support, and its dominance (as a result of being bundled with the no.1 desktop OS) prevents that very useful technology from being deployed as much or as well as it could have. CSS promises a lot, but that promise isn't being realised, as anyone who does utilise CSS to its full capability risks alienating more than 80-90% of web users.
"if Java is going to be significant in the long run, it must be able to survive on its own; without protection."
*Why* must it? Sun is looking for good reasons to Open Source, and they won't do it until someone provides them. 'You must do THIS' is not a reason.
Posted by: philwebster on July 08, 2004 at 09:41 PM
|