YOUR FEEDBACK
E-Commerce 2.0
Brian wrote: I think we're heading in the right direction, but we've still...


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


Open Source Java? - Why on Earth Would I Want That?
Sun gave reporters an update on the planned release of Java and its associated tools under an open source license

Digg This!

Alan Williamson's Blog

(August 17, 2006) - This week at LinuxWorld Laurie Tolson gave reporters an update on the planned release of Java and its associated tools under an open source license.  By the end of the year, javac and the hot spot compiler will be released.  The precise license details haven't yet been announced yet - that is the part of the equation they are wrestling with the most since there are components within the JDK that aren't theirs to open source.  Politics and licenses aside, let us look at what this means for the humble Java developer, the troops in the trenches churning out code daily.

Java Dukey goes open source The first and natural concern is of course the dreading forking.  Forking is when two people make two different changes to the same code base resulting in an incompatibility with one another.  This scenario is Java armageddon - the one we all fear the most.  We have a small taste of this already when writing code for different versions of the JDK, but if you are careful and not always use the cutting edge API's then you're code will still happily run on legacy JVMs.  A good rule of thumb is to write for at least 2 versions behind the current release.  So with 1.6 about to make an appearance, you can safely play with the new tools with the 1.4 API.  Naturally this depends on your own application environment so its not a hard and fast rule by any stretch.

Another area where you may already be maintaining different code bases depending on the production system is with Microsoft J#.  Microsoft only got the rights up to Java 1.1 and if you code your Java application to that 1.1 API, then code will happily run on both the Microsoft .net and Java JVM runtimes.  So writing for different target systems is something developers have been use to for many years now, so should we be worried about the dreaded fork?

The problems faced so far by developers have largely been down to API changes, relying on methods/classes that may or may not exist on the production system.  These are relatively easy to spot with a good development environment.  For example, you can easily tell Eclipse to compile for only 1.4 with it doing all the checking to make sure you haven't lapsed into a 1.5 call.  But forking here could be more sinister than simple API misalignment.  What if you call a method and it does something completely different than you expect?

Sadly this isn't anything new to someone who has been coding Enterprise applications that are designed to run over a wide range of application servers.  Sure there is a standard JavaEE API that exists, but that is no assurance that your application will run fine on all application servers, as the interpretation of some of the API calls is down to the owner of the application server.  Even the standard, relatively small, Servlet API can produce many different results depending on the servlet container.

By forking the underlying JVM we now have a much greater potential for code to either not work or behave differently.  We are putting more responsibility onto the Java developer to either target a given runtime and code exclusively for that, or even worse, forcing them to test with different runtimes across different platforms.  Their job could get a whole lot messier.

We already have different runtimes available to us though, with BEA JRockit and IBM's runtime and these problems don't seem to have raised their ugly head.  The difference here is that these companies had to license the technology from Sun and be made to pass a stringent certification process before launching to the public at large.  In an open source world this certification restriction wouldn't be there.  People could easily hack the JDK to do something different and have no requirements to meet any test criteria.  They could simply use it as is.


A possible way around this would be to have Sun release the certification tools so other implementations of the JDK could be tested against it.  This may not necessarily test any new functionality that a developer added to the JDK, but it would make sure they didn't break anything that was suppose to work in the process.  This is far more important for wide acceptance.

Okay, so let us look at this from a point of view of hope.

What benefits can the developer get from an open source Java?  Take a  look at the JDK bug parade.  Take a look at the Top25 bugs.  Here is the biggest gain for the developer.

Some of the Top25 date back as far as 1999.  That is nearly 7 years a request/bug has sat there.  In an open source world, the 130 odd people that have voted to have low-level network support within Java could now potentially build it themselves and contribute it back to the core branch for potential inclusion.  At the moment, they have to wait until Sun dedicates coding resources to it.  It is obviously clear that Sun hasn't found the time in the last 7 years to address some of these!  Time to let someone else try.

There are many small bugs floating around that the community could easily tackle.  Many of the bugs/features are pure Java implementations with no native code required.  This opens up the potential number of contributors even further.  There could be a huge development boost to the community with a much faster release cycle.

Sun has to manage this carefully. If they can be shown to be responsible stewards of the code allowing contributions from others then the reason to fork the JVM will not be as great.  Why should you create your own JVM if your change can be incorporated into the main release and made available to you.  If you are that desparate for it and can't wait for a release, you can use the latest build from SVN/CVS.  Naturally I do not see Sun being the only committer on Java, they would merely be a member of a large group of committers.

On the whole I support the open sourcing of Java and its associated tools.  Sun is right to take this slowly and consult with all parties.  They only get one shot at this and once the genie is out of the bottle, it won't be wanting to go back in.

tags:      
links: digg this    del.icio.us  technorati

About Alan Williamson
Alan Williamson is editor-at-large of JDJ. In addition he holds the CTO office @ n-ary (consulting) Ltd, one of the first companies in the UK to specialize in Java at the server side. Reach him at alan@sys-con.com (http://alan.blog-city.com). He welcomes all suggestions and comments.

Steve Bell wrote: The fear of a fork is a little on the paranoid side. If somebody decides to fork Java and create an incompatible version they cannot call it Java. The trademark is not being released.
read & respond »
Al Forbes wrote: Very good article. Just two comments: 1. The latest JDK's are extremely stable and well tested. They are only difficult to use if you rely on an application server or IDE to support the latest features. 2. Your article linked to the RFE's instead of the bugs. The correct link is: http://bugs.sun.com/b ugdatabase/top25_bugs.do
read & respond »
The Cherbin wrote: Another waste of an article. Its nonsense, and it just gives these boring so called programmers something to talk about when their chatting about their precious little java code. Fling the big words like "Open Source" along with Java and maybe even more unknowning people will start to use it, and even pay for a class, buy one of the 1000 books written in 50 different languages too.
read & respond »
JDJ News Desk wrote: This week at LinuxWorld Laurie Tolson gave reporters an update on the planned release of Java and its associated tools under an open source license. By the end of the year, javac and the hot spot compiler will be released. The precise license details haven't yet been announced yet - that is the part of the equation they are wrestling with the most since there are components within the JDK that aren't theirs to open source. Politics and licenses aside, let us look at what this means for the humble Java developer, the troops in the trenches churning out code daily.
read & respond »
LATEST JAVA STORIES & POSTS
Case Study: Java and the Mac
This is the story of a Mac application developer (okay - it's about two of them) who set out on a quest to find an application development tool based on Java so his boss would let him develop on the Mac platform, which he loved. There was only one catch - he had to find a tool th
A Lightweight Approach to SOA and BPM in Java Using jBPM
SOA is mostly associated with technologies such as BPEL, SCA and Web Services. But does SOA really imply these technologies? In this session we will show how you can use the service oriented approach while staying inside the Java world. jBPM is a powerful lightweight framework th
JavaOne 2008: Uncommon Java Bugs
Any large Java source base can have insidious and subtle bugs. Every experienced Java programmer knows that finding and fixing these bugs can be difficult and costly. Fortunately, there are a large number of free open source Java tools available that can be used to find and fix d
The 4 Core Principles of Agile Programming
One of the things I really enjoy at the moment is the recognition and adoption of agile programming as a fully fledged powerful way to deliver quality software projects. As its figurehead is a group of very talented individuals who have created the agile manifesto (http://agilema
JavaOne 2008: Sun Adds Comprehensive Video Capabilities to JavaFX
Sun Microsystems announced it has entered into a multi-year agreement with On2 Technologies to add comprehensive video capabilities, using On2 Technologies TrueMotion video codecs, to Sun's JavaFX, a family of products for creating Rich Internet Applications (RIAs) with immersive
JavaOne Archives - Dvorak Comments on AMD Intel Lawsuit on SYS-CON.TV
Conference in San Francisco. Dvorak held forth on a number of topics, including the new AMD/Intel lawsuit, the viability of Java and Sun, the value of (or lack thereof) of corporate PR, and whether or not a new book about Silicon Valley is really worth reading.
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING JAVA NEWS
KongZhong Corporation Reports Unaudited First Quarter 2008 Financial Results
KongZhong Corporation , a leading wireless value-added services (WVAS) and wireless media co