 |
What about focusing on the right discussions?
Posted by brunos on February 09, 2005 at 12:42 PM | Comments (12)
I just read at JavaLobby a discussion about what James Gosling said of open source developers and compatibility. I consider James a long time friend, and I think he is somewhat right. But the main problem on this Java and Open Source discussion is that there seems to be a lot of misinformation on both sides. We all need to get on the same page, or we'll always be discussing the wrong things...
So, bellow is the post I did at JavaLobby. I'm copying it here too, because I have been active in many places, and my blog keeps falling behind, so, let me try to get all my thoughts in one place :-)
The original JavaLobby message is at:
http://www.javalobby.org/forums/thread.jspa?messageID=91825170#91825170
As usual, there's a lot of misconception from both sides. This is the hardest part on this discussion. As long as we hear this half trues from both camps, it is very hard for Java developers to take a position and act.
I understand when James talks about the code being available since day one. Yes, it has. It is easy to forget that, but at that time there was no "open source definition" (that came in 1998), and most people hadn't heard of free software, specially on the business side. Java's code being put "available" at that time was a huge success and a unbelievably bold move of Java's original team (James included). I may digress, but this may very well have influenced Netscape to release their source code a few years later.
Taking away a little of the free software philosophy, and making it more attractive to business, OSI created the notion that open source is a collaborative effort, that is made possible by the license, a F/OSS license. Well, one can very well argue that the Java licenses, although very restricted by the Open Source definition, did indeed create a collaborative environment, were Java evolved. This "community" is composed of many different companies, and it evolved well enough that many Java developers don't even care about the license.
But as programmers, we all agree that we need to use the correct definitions. Now we have the definition of what open source is, and we should stick to it, or we just create this general feeling that we're being rude to others, by misusing their definitions. As I asked before, Sun should stop saying that "Java is Open Source enough".
It does not means anything BTW. Java is a standard, and there is no such thing as an open source standard. There can be open source implementations of Java, that's something that makes sense talking about. But Sun's Java implementation is not Open Source. Period. And, that's fine! The fact that SunOne Application Server (J2EE Reference Implementation) is not Open Source never for a second undermined the importance and reality of JBoss (a certified J2EE implementation) or Geronimo (on its way to certification). This is the same on the Runtime side. And it is also true that it was not always possible to certify an open source implementation of a JCP standard (or even implement one), but this also has changed. And for the Java Runtime, it changed on the day Java 5 came out.
So, the other side. It is not true that the Open Source implementations of Java cannot be certified. The JCP not only allows for it, but gives scholarships to groups that are interested in being compatible. Onno Kluyt has discussed this deeply with Dalibor Topic and other Open Source Java developers, and it is my understand that at this time, there are no pending issues on this regard. There are no hidden licenses that forbids this to happen, there will be no cost for the TCK if done by a non-profit organization, as there's no cost for Apache's Geronimo certification. And yes, there are ways of doing this in the open source way, in the open, with unfinished releases and many contributors form all over the world. Apache has proved this, we have to follow the lead. Java 5 implementations can be certified, for free, as open source. If you think this is not true, you have to read the JSPA and the Java License for the details. Or talk to me, or Dalibor (Kaffe), or Onno (JCP), or Geir (Apache), or...
It is possible, and doable, but that does not mean it is easy. But the great work that has been done in Kaffe, Classpath, SableVM, GCJ, Jikes and many other projects that are implementing the Java standards as open source are real proof that this can be accomplished. But its success depends in part of Java developers understanding that these projects are exciting and important projects, as much or even more then Tomcat, JBoss or Geronimo. If you downloaded and tried early versions of these Open Source implementations of server side Java, you should also try out the Open Source implementations of the JVM.
Now, is compatibility something that all Open Source developers want? Let's face it: no. Compatibility is hard, it means you have to implement things that no one uses, it means that you can't just go and do whatever you feel like. There are many half-done open source implementations of standards out there. There are even half-done proprietary implementations of standards, so this is not an Open Source thing! But the reverse is also true: there _are_ great, compatible, open source software out there! So, it is also not true that Open Source developers don't care about compatibility. I can vouch for the Kaffe, Classpath, GCJ, SableVM, Jikes developers that I know personally. They are committed to compatibility. They are so committed that before it was possible to have access to the TCK, they created their own "test suite" -- Mauve -- to try to achieve compatibility the hard way. James, how much more commitment can we have? How many companies have built their own test suites to guarantee Java compatibility? By putting effort in a private compatibility suite, maybe the open source community has something in common with Sun in regards to compatibility commitment? These are developers that have gone way out, to guarantee compatibility in a time when Sun would not provide any!
So, let's cut this short. Half trues from both sides do not help the discussion. Let's call things by their correct names. It is not "Java is/isn't Open Source" it should be the "X implementation of the Java Standard is/isn't Open Source". Let's not say "open source enough", lets apply the definition: it either is, or isn't! And stop saying that it isn't compatible because it is not possible to be. It is possible, we have to care about it.
And we do. I can't vouch for all open source developers, but Open Source Java Runtime developers do care about compatibility. So should you. Go run your application on top of a work-in-progress open source implementation. You'll be surprised with how much you can run on top of them today.
Now, to make this a worthy discussion to everybody, let me finish with another question. Can we have a license that guarantees compatibility in some way, and that still gives developer the freedom they need? That is, can we combine compatibility with open source? The fact that many say that compatibility cannot be in the license is one reason that makes people think that Open Source developers don't care about it. But if compatibility is important, if we care about it, can we agree to it somehow? It is really important? I think the JCP took a good approach, and it is working with Apache. I don't think it is perfect, and surely it is not enough.
Can we have a better way of handling compatibility? That do not take our freedom away? Freedom is always a compromise. Always. Would you compromise in behalf of compatibility? Why? Why not? And more important: how?
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
As I've pointed out repeatedly, the fundamental issue is the control of what "Java" means. All of the conflation of different aspects of that question are where the dogma (on all sides) gets contentious. The simple fact is that Sun controls what "Java" means and until that is open to change, the rest is, at best, a distraction. As always, Sun owns Java and so it's totally their right to decide -- but, as you say, Sun really needs to stop with the fraud of calling Java "open".
Posted by: johnm on February 09, 2005 at 05:50 PM
-
The real problem the OS zealots have with Java isn't that they can't implement OS JVMs (they can, as you point out, and do).
The problem they have is that they don't have control over the JLS and JVM spec, and can't call something Java that doesn't conform to the JLS and the JVM spec. The intent here is clear, it's to make sure there's no more single spec to which JVMs should conform. This would inevitably lead to the loss of WORA, the reintroduction of platform dependencies, and the ultimate demise of Java as a platform rather than just another language.
Posted by: jwenting on February 10, 2005 at 12:36 AM
-
Thanks for bringing this up, and for being so reasonable about it.
One thing we might need is a point-by-point list of what issues different groups in the FOSS community have, and see what alternatives there are for addressing each one.
Another thing is, a reasonable proposal from last year (when this discussion was hot) was that Sun should be able to own the Java trademark, and control who gets to use the name "Java" on their stuff (for example, a JDK or JVM release). That seems like a fundamental point that everybody should start from.
What is sad to me is that, despite the huge amount of work done from various FOSS parties to build out libraries and servers and what-not, the Mono project has got a huge amount of work done partly because those same developers feel that C# and the CLR were a better use of their time than Java was. Part of this is because it (might) allow people to write .Net applications on Windows and immediately port them to Linux, but I think another part of it was that they felt the conditions around use/licensing/modification of Java were too stringent. What a loss! Think about how much further along GNU Classpath or Kaffee would be right now with their help!
Another is that by promoting a strict Java-only message, Sun has alienated developers who felt that Java must be just one language amongst a variety needed to "get the job done". Despite all the push behind servlets, JSP and J2EE, in the last 10 years we have seen PHP, perl and Python achieve wide acceptance and deployment for dynamic sites. Why aren't all these groups working with Sun? I think partly because Sun promotes a "Java-only" language solution for these sorts of IT needs.
What I hope some people at Sun realize is that embracing and including the FOSS communities in Java development gives us all greater hopes for the future of open software development (including open protocols, cross-platform libraries, etc.). There are thousands upon thousands of developers who would be glad to bring Java in as a "brother" development language. Wouldn't it be good to see that happen?
Patrick
Posted by: pdoubleya on February 10, 2005 at 04:54 AM
-
Java is no more closed than is C or Perl.
Both are controlled by a set body of people.
In fact, given the existence of the JCP, Java is more open than either.
Unless the motifs of the OS zealots are as I described to destroy the platform by allowing forks of the JLS to be distributed as Java there is no reason they couldn't just join the JLS and try to get their ideas about what the language should be accepted by the real users that way.
Posted by: jwenting on February 10, 2005 at 05:23 AM
-
I think compatibility will come naturally. Take for example an Open Source implementation of TCP/IP stack. If it is not compatible, people simply won't use it. It will be the same with Java: if some OS implementation is not compatible, it won't be used or be relegated to a very small niche, because applications simply won't run on it.
Maybe what OS community wants or needs is some way to engage more deeply in Java Specification, but desn't the current JCP already provide that?
The picture I see is this:
- OS community already has the (legal) freedom to create an OS implementation of Java, and passing the TCK, actually call it Java.
- OS community can already help steer Java Specification, by means of JCP participation
Of course they can't have all the freedom in the world, since there are many companies and individuals interests involved, and the compatibility natural constraint explained above. I really can't see what better situation for having a complete OS java implementation than what there is now.
Posted by: hsteck on February 10, 2005 at 08:07 AM
-
hsteck--
I think one difference is whether Sun is working with "the community" or orthogonally to it. I think there is some way that there could be a greater synchronicity, a sort of marriage of commercial firepower/distribution/oversight combined with wide-ranging energy/intelligence/insight from the community. We don't have that now. People are writing FOSS JDKs because they have to (in order to have the "freedom" they want), not because they would like to (IMO).
And the sad thing is, it is such a waste of time. There are many people who would love to have a great cross-platform GUI toolkit such as Swing. But they can't contribute patches or extensions to it easily. There are regular complaints about bugs long dormant in the JDK. You can patch it and use the patch locally, but can't redistribute it; so you just have to wait till/if Sun has the interest/time/resources to fix it for you.
My question is how a greater synchronicity would be possible. In some sense I think it would be quite new, because Sun could put a more solid roadmap/braintrust to manage the process, and have more input, than on some other well-known FOSS projects (which shall remain unnamed).
I understand and sympathize with Sun's values around compatibility, but do sense that they are siding more with commercial interests (e.g. companies invested in using Java, and J2EE in particular) over the long-term greater interests for the development, propagation, and enhancement to the language.
Patrick
Posted by: pdoubleya on February 10, 2005 at 08:33 AM
-
About an increased participation of open source developers alongside the JCP, a Java.Net user posted on Michae's blog about joining the JCP (link at the end) that JCP rules implies the developers, as individual members, would not be able to use the knowledge theu gain on the comitees to advance their open source projects.
Is this true, or is it a misinterpretation of the JCP rules? I myself never considered joining the JCP because of fear this would hinder the ability of me to collaborate with OSS projects like Java-Gnome and GCJ.
Please note the question is about individual, free memberships, and not coporate, paid memberships. So the problems, if they are real, do not apply to the ApacheFoundation or JBoss, but would affect Kaffe developers.
http://weblogs.java.net/blog/mister__m/archive/2005/02/genesis_02rc2_i.html
Posted by: flozano on February 10, 2005 at 09:48 AM
-
Are the compatibility tests freely available (zero cost and/or open source)? If not, then I suspect that that would be the main (though not only) objection from the F/OSS crowd.
Posted by: chuntley on February 10, 2005 at 04:50 PM
-
chuntley: No, the JCK is another tightly controlled part of what defines "Java". Here's more details on the licensing of the JCK.
Posted by: johnm on February 16, 2005 at 07:23 PM
-
While it's not possible to have an open source license that would restrict modifications that recepients of the code could make to only those that are compatible, there are other ways of encouraging a unified tree.
The one that works best is: make good software, under a liberal license, and keep doing a very good job maintaining it.
GNU Classpath does precisely that, and Sun is cordially invited to join in the fun whenever they feel ready for it. GNU Classpath is not a replacement for Sun's class libraries, that would be aiming too low. It should become better than Sun's 'crown jewels'. It's on the best way thereto.
Access to compatibility test suites on reasonable terms would help get there faster and let us make sure that GNU Classpath is mutually comaptible with Sun's JVM. GNU Classpath's test suite, Mauve, is available to Sun, and anyone else interested in verifying compatibility with GNU Classpath's implementation of the APIs under the GPL, free as in software and free as in beer. Sun doesn't feel like allowing GNU Classpath access to their test suites under equally liberal conditions, instead they chose fascinating and funny non-free licenses. Sun's IP is Sun's problem of course, and far be it from me to demand that Sun licenses any of their works under a useful license. I'm just pointing out that if Sun wants to be compatible with Classpath, Mauve is freely available to them. GNU Classpath developers are making it intentionally easy for Sun to become compatible with GNU Classpath's interpretation of the specs. No NDAs, no read-only restrictions, no lame attempts at forcing Sun to stop writing their own tests, no nonsense like in Sun's Read-only JCK license.[2]
Eventually, GNU Classpath-based runtimes will remove the pressing need for the unfortunate proprietary wedge between a free software enterprise stack and a free software operating system, that's barring so many people from doing useful things with Java programs and libraries on their chosen platforms.
Sun actually has, according to Gosling, an excellent compatiblity test suite, which could, if Sun had the courage to publish it openly under a useful[1] license, allow anyone to verify anyone else's compatibility claims. Sun also has trade mark rights to go after abusers of their marketing brand thing with the coffee cup.
I am not interested in Sun's Java trade mark. I don't care about cute logos, or Sun's apparently unbuildable, unportable source code. Buggy code for my fixing pleasure is out there on the net in massive heaps under saner licenses, thanks.
I do care about verfiable compatibility, though. So I will do the TCK Scholarship dance, and if it works out, we will all have a lot of fun. :)
cheers,
dalibor topic
[1] Read only is not exactly useful, as somewhat surprisingly to some people resonsible for the creation of the Read-only license, there are more things out there in this wide world that are more interesting to read than Sun's engineers' and interns' attempts at writing compatiblity tests. Mauve for one. Gump runs for another.
I know it sounds completely unlikely that such people would exist, but yeah, yeah, I must admit I am one of them. Call me lazy, or weird, but given 'The Economist' and the JCK, I always pick 'The Economist' for my bus ride. While 'The Economist' is pretty mediocre reading material, but it still beats reading Sun's tests and not being able to talk about them or do anything with them.
Has anyone actually ever taken Sun on that hillarious read-only offer in the last few months? Was there a single download of the JCK? The forums seem to indicate that the read-only license was a total failure as noone bothers talking about it. https://jck.dev.java.net/servlets/SummarizeList?listName=users shows an extremely heated activity in the last two months totalling with 0 posts. The read-only license is a raging success, as far as I can tell. :)
[2] That being said, the Read-only license is a massive progress from the 'rolling on the floor laughing'-kind-of-funny SCSL the J2SE TCK used to come under before that. The SCSL is such an awesome community-building license, that Sun's finally decided to switch JINI away from it, hoping that the next license, being really open source, and not Sun's pseudo-open-source community-labelled marketing gimmick, might actually lead to a larger community forming around it. See http://www.jini.org/meetings/eighth/Open/img1.html for details. And guess what: apparently these 'crown jewels' [3] can be released under an open source license and the compatibility won't suffer. The sky is falling, the sky is falling, who'd have thought that there are people working at Sun that understand how a wise choice of a software license can help technology adoption, and who are in position to fix such obvious mistakes like the SCSL. :)
[3] I ocassionally think that Sun could easily enter the jewelry business, with all those crown jewels Sun's marketing people keep talking about. :)
Posted by: robilad on February 17, 2005 at 04:46 PM
-
Про Яву можете почитать еще здесь новости дня, компьютеры. Про спорт здесь спорт, новости спорта, а про футбол здесь футбол, новости футбола. теннис.
Posted by: kolenchits on May 17, 2005 at 06:39 AM
-
Да Java очень хороший программный продукт.
Можете использовать international phone card для международных звонков. А также я знаю how to pass a drug test.
Posted by: sergwm on October 12, 2006 at 12:06 PM
|