Java IoT Authors: Liz McMillan, Jason Bloomberg, Elizabeth White, Yeshim Deniz, Zakia Bouachraoui

Related Topics: Java IoT

Java IoT: Article

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

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.

links: digg this    del.icio.us  technorati

More Stories By Alan Williamson

Alan Williamson is widely recognized as an early expert on Cloud Computing, he is Co-Founder of aw2.0 Ltd, a software company specializing in deploying software solutions within Cloud networks. Alan is a Sun Java Champion and creator of OpenBlueDragon (an open source Java CFML runtime engine). With many books, articles and speaking engagements under his belt, Alan likes to talk passionately about what can be done TODAY and not get caught up in the marketing hype of TOMORROW. Follow his blog, http://alan.blog-city.com/ or e-mail him at cloud(at)alanwilliamson.org.

Comments (4)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

IoT & Smart Cities Stories
@CloudEXPO and @ExpoDX, two of the most influential technology events in the world, have hosted hundreds of sponsors and exhibitors since our launch 10 years ago. @CloudEXPO and @ExpoDX New York and Silicon Valley provide a full year of face-to-face marketing opportunities for your company. Each sponsorship and exhibit package comes with pre and post-show marketing programs. By sponsoring and exhibiting in New York and Silicon Valley, you reach a full complement of decision makers and buyers in ...
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
LogRocket helps product teams develop better experiences for users by recording videos of user sessions with logs and network data. It identifies UX problems and reveals the root cause of every bug. LogRocket presents impactful errors on a website, and how to reproduce it. With LogRocket, users can replay problems.
Data Theorem is a leading provider of modern application security. Its core mission is to analyze and secure any modern application anytime, anywhere. The Data Theorem Analyzer Engine continuously scans APIs and mobile applications in search of security flaws and data privacy gaps. Data Theorem products help organizations build safer applications that maximize data security and brand protection. The company has detected more than 300 million application eavesdropping incidents and currently secu...
Rafay enables developers to automate the distribution, operations, cross-region scaling and lifecycle management of containerized microservices across public and private clouds, and service provider networks. Rafay's platform is built around foundational elements that together deliver an optimal abstraction layer across disparate infrastructure, making it easy for developers to scale and operate applications across any number of locations or regions. Consumed as a service, Rafay's platform elimi...
The Internet of Things is clearly many things: data collection and analytics, wearables, Smart Grids and Smart Cities, the Industrial Internet, and more. Cool platforms like Arduino, Raspberry Pi, Intel's Galileo and Edison, and a diverse world of sensors are making the IoT a great toy box for developers in all these areas. In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists discussed what things are the most important, which will have the most profound e...
In today's enterprise, digital transformation represents organizational change even more so than technology change, as customer preferences and behavior drive end-to-end transformation across lines of business as well as IT. To capitalize on the ubiquitous disruption driving this transformation, companies must be able to innovate at an increasingly rapid pace.
Growth hacking is common for startups to make unheard-of progress in building their business. Career Hacks can help Geek Girls and those who support them (yes, that's you too, Dad!) to excel in this typically male-dominated world. Get ready to learn the facts: Is there a bias against women in the tech / developer communities? Why are women 50% of the workforce, but hold only 24% of the STEM or IT positions? Some beginnings of what to do about it! In her Day 2 Keynote at 17th Cloud Expo, Sandy Ca...
New competitors, disruptive technologies, and growing expectations are pushing every business to both adopt and deliver new digital services. This ‘Digital Transformation’ demands rapid delivery and continuous iteration of new competitive services via multiple channels, which in turn demands new service delivery techniques – including DevOps. In this power panel at @DevOpsSummit 20th Cloud Expo, moderated by DevOps Conference Co-Chair Andi Mann, panelists examined how DevOps helps to meet the de...
According to Forrester Research, every business will become either a digital predator or digital prey by 2020. To avoid demise, organizations must rapidly create new sources of value in their end-to-end customer experiences. True digital predators also must break down information and process silos and extend digital transformation initiatives to empower employees with the digital resources needed to win, serve, and retain customers.