{"id":309,"date":"2006-08-15T16:45:14","date_gmt":"2006-08-15T23:45:14","guid":{"rendered":"http:\/\/www.redmonk.com\/cote\/wp\/?p=309"},"modified":"2006-08-15T16:45:14","modified_gmt":"2006-08-15T23:45:14","slug":"more-on-open-sourcing-java","status":"publish","type":"post","link":"https:\/\/redmonk.com\/cote\/2006\/08\/15\/more-on-open-sourcing-java\/","title":{"rendered":"More on Open Sourcing Java"},"content":{"rendered":"<p>I talked with Sun recently about the status of open sourcing Java. Overall, I felt positive about their efforts, esp. since their general direction is to be more and more transparent as time goes on. In this whole process, being transparent is key, and I&#8217;m hoping Sun has gotten to the point where most everything can be in the open, esp. with the new portal on the topic (see below).<\/p>\n<p>See <a href=\"http:\/\/www.flickr.com\/photos\/cote\/216041668\/\">my mindmap-notes as well<\/a>.<\/p>\n<h2>2007, IP, OSI-license, and the new portal<\/h2>\n<p>The conversation was more to get a general feel for how things are going and didn&#8217;t have any extremely earth shattering. There were however some &#8220;hard&#8221; bits to chew on:<\/p>\n<ul>\n<li>The bulk of the code will be released in 2007. This is the first actual numeric date I&#8217;ve heard from Sun. By &#8220;the bulk&#8221; they mean that there&#8217;ll still be some code left to open source, which leads to&#8230;<\/li>\n<li>The IT encumbrance is part of what&#8217;s holding back rapider open sourcing. The problem here, <a href=\"http:\/\/www.redmonk.com\/cote\/archives\/2006\/08\/redmonk_radio_e_17.html\">as we discussed in a recent RedMonk Radio Podcast<\/a>, is that there Sun doesn&#8217;t own all of the IP in the Java source code. They may have licensed it from other people, but they don&#8217;t fully control the IP so they can&#8217;t just decide to open source it. Mark Reinhold gave one example: there are 3 font rasterizers in Java that are not wholly IP-owned by Sun. So, they have to figure out how to either re-negotiate the licensing deals to keep using that code, re-write it themselves, or do something else.<\/li>\n<li>While Sun hasn&#8217;t chosen a license, they&#8217;ve narrowed down to choosing an OSI-approved license. As far as which one they&#8217;d choose, they said &#8220;everything is still on the table.&#8221;<\/li>\n<li>There&#8217;s <a href=\"http:\/\/community.java.net\/jdk\/opensource\/\">a new community site<\/a> centered around, as the site is called, &#8220;Open Sourcing the JDK.&#8221; The portal-ish site aggregates related posts on the web, links to resources on the topic, and otherwise is intended to help you help Java open up. There&#8217;s even <a href=\"http:\/\/today.java.net\/rss\/84.rss\">an RSS feed tracking relevant info<\/a>, which is great for the likes of me \ud83d\ude09 As I suggested to on the phone, it&#8217;d be great to do some tag gardening and establish a tag: perhaps &#8220;opensourcingjava&#8221;?<\/li>\n<\/ul>\n<p>Below is some thinking on the above and other topics.<\/p>\n<h2>Licensing<\/h2>\n<p>By saying &#8220;everything is still on the table&#8221; the signal is that super-permissive licenses like BSD and super-restrictive (from a commercial-vantage point) ones like the GPL are under consideration.<\/p>\n<h3>BSD<\/h3>\n<p>While <i>I<\/i> like the BSD license, even public domain for my own code and utopian open source thinking, it certainly wouldn&#8217;t be a good choice for the marketing goals that I think Sun has with Java, open source or not. Managing the Java brand has been a major part of Sun&#8217;s parentage of Java over the years.<\/p>\n<p>We spent some time talking about figuring out what brand management means in an open source Java world, and it is a good question. Indeed, it made me realize IBM is a good historic source for that line of thinking, <a href=\"http:\/\/www.motherjones.com\/news\/feature\/2001\/07\/ibm.html\">&#8220;Love, Peace, and Linux&#8221;<\/a> aside (though, here I am talking about <i>that<\/i> years later, really, so it worked).<\/p>\n<p>Point being: the BSD license would limit the ways in which the Sun and upcoming JDK community could control\/direct the brand. That could be a positive or negative thing depending on what those groups goals are.<\/p>\n<h3>GPL<\/h3>\n<p>In my experience, the GPL seems like an even worse choice. Having worked in enterprise Java software, nothing says &#8220;box office poison&#8221; to me more than those three letters. For example, at one of my past jobs I stupidly used a GPL library for parsing <a href=\"http:\/\/www.mibdepot.com\/index.shtml\">MIBs<\/a> and ended up having to rip it out and re-write that part once the legal department got wind of GPL.<\/p>\n<p><p>Many other legal departments have banned the use of GPL libraries, and releasing future versions of Java under that license would cause many of them to have to revisit their position on the use of Java.<\/p>\n<p>Now, understand that I&#8217;m not saying that revisiting is rational or &#8220;needed,&#8221; nor that I&#8217;m a lawyer and thus blessed to even think about such topics. On the technological front, we can be arm-chair lawyers and muse &#8217;till the cows come home about what &#8220;linking&#8221; means in the context of an interpreted runtime like a VM, or, even better as <a href=\"http:\/\/www.redmonk.com\/sogrady\/\">Steve<\/a> point out to me, point to the wide-spread use of Linux in the commercial world. But we&#8217;re talking about The Law here. The fact is that &#8220;GPL&#8221; freaks out lawyers in the software world, whether that freaking out is enlightened or not, is a problem.<\/p>\n<p>On the other hand, if that hurdle can be jumped, as Steve and I talked about, GPL&#8217;ing Java certainly would give Sun a huge chip in the &#8220;we&#8217;re open source&#8221; discussion they find themselves in (and I would say distracted by) all too often.<\/p>\n<h2>Compatibility<\/h2>\n<p>On a minor point, on the topic of compatibility, I asked the Sun folks what they thought of Apple&#8217;s JDK distribution. I&#8217;ve always thought it was a bit weird, esp. since it&#8217;s not in lock-step with the Sun&#8217;s JDK releases. The way in which the JDK and the JRE are installed (the &#8220;layout&#8221; as it were) is different between Windows, OS X, and I assume Linux.<\/p>\n<p>To me, part of compatibility is having the same directory structure and deployment, avoiding the &#8220;if\/then\/else&#8221; chains in all the <code>.bat<\/code> and <code>.sh<\/code> files that we see in Ant, maven, JBoss, Tomcat, and friends. Even in that state that JDK deployments are in, compared to other *nix-y programming worlds, Java has a very tightly organized layout, usually under one directory if you&#8217;re lucky.<\/p>\n<p>The concern as <a href=\"http:\/\/blogs.sun.com\/mr\">Mark Reinhold<\/a> replied, is strictly with runtime compatibility; he mentioned that he didn&#8217;t think there was anything weird about Apple&#8217;s JDK. Which really, looking at it outside of my personal preferences, is spot-on. There are several JDKs and JREs running around and each has it&#8217;s own &#8220;pre-runtime&#8221; eccentricies. While I think consolidating them all into the same structure would be helpful, there&#8217;re bigger fish to fry.<\/p>\n<p>We also talked about &#8220;enforcing&#8221; compatibility, and the answer so far was strongly encouraging any JDK forkers to use <a href=\"http:\/\/java.sun.com\/developer\/technicalArticles\/JCPtools\/\">the TCKs and other compatibility test suites<\/a>. What was of note here for me was that the talk was of encouraging people rather than forcing them. Of course that&#8217;s what&#8217;d you&#8217;d expect on the happy path for all this, but it&#8217;s good to hear &#8220;the right answer&#8221; ;&gt;<\/p>\n<p><b>Disclaimer:<\/b> Sun and IBM are clients.<\/p>\n<p>Technorati Tags: <a href=\"http:\/\/www.technorati.com\/tag\/bsd\" rel=\"tag\">bsd<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/gpl\" rel=\"tag\">gpl<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/java\" rel=\"tag\">java<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/jdk\" rel=\"tag\">jdk<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/mibs\" rel=\"tag\">mibs<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/opensourcingjava\" rel=\"tag\">opensourcingjava<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/redmonkadvice\" rel=\"tag\">redmonkadvice<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/sunw\" rel=\"tag\">sunw<\/a><\/p>\n<p><!-- technorati tags end --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I talked with Sun recently about the status of open sourcing Java. Overall, I felt positive about their efforts, esp. since their general direction is to be more and more transparent as time goes on. In this whole process, being transparent is key, and I&#8217;m hoping Sun has gotten to the point where most everything [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,15,19,23],"tags":[],"class_list":["post-309","post","type-post","status-publish","format-standard","hentry","category-community","category-java","category-open-source","category-programming"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/comments?post=309"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/309\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/media?parent=309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/categories?post=309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/tags?post=309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}