Java SDK open-source: a blessing or a dreadfull mistake…

OpenjdkLogoWow, it finally happened. Java is now officially open-source. First of all, I think it’s great to be able to take a peek under the hood of Java.

Now there is a catch though. I’m not entirely sure, but it seems that it is JDK version 8 (!!) which is available under an open-source license. The sources and binaries of JDK 6 and JDK 7 can be downloaded, but they are licensed under the JRL (Java Research License), which has some restrictions.

To check it out, take a look overhere. Note the usage of username “guest”. Personally I have checked out using the command:
svn checkout openjdk --username guest
Yes, that’s without the trunk part. I will perform a chechout of the entire repository, including all branches and tags of the main project, hotspot project and the compiler project. That’s like, everything. After the checkout the source code tree is about 220 MBs in size. That’s a lot of code.

Also note the usage of the GPL with the OpenSDK. Corporations need not worry though, The GPL license has an addendum called the classpath exception, a GNU endorsed mechanism to allow linking of proprietary code to API code.

Anyway: Is open-source java a good thing or a bad thing. There are a number of opinions:

Pro: Open Source Java …

  • … will speed up development and feature maturity.
  • … will provide developers with the possibility to review the JVM/Compiler code and truly understand it’s workings.
  • … will allow the Sun Java release to be integrated with true open-source Linux distributions.

Con: Open Source Java …

  • … will become a hindrance because of wild growth of JVM branches.
  • … is not needed, we’ve got the JRL license, so we can already review the code.
  • …, why join those overzealous fanatics, open-source is a pest that should be exterminated with all available measures. (Erh, right…)

Of-course there are more arguments to be made in favor and against open-source Java. Personally I think it’s great. Fiddling with the code is not something for everybody. I took a stroll through the code the other night and yes it is intimidating, believe me. But because it is such an essential component to any Java runtime and development environment, I do think it is best when you have the source-code available. Also I don’t think there will be any wild fire like scenario with heaps of different Java SDKs available will happen any time soon. I do think certain people and organisations might provide their own extensions, much like J2EE server implementations do. But gross incompatibility, I don’t expect that. See, Sun is still the driving force behind the Java Community Process which defines the standards that a Java implementation has to comply to. So as long as there remains a single entity that defines the shape of Java today and in the future, we will all be all-right.

Java Action Week and some other things

The week after the performance tuning course has been a busy one. My employer planned a thing called a Java Action Week. A Java Action Week involves pulling back a number of people from our customers to create a focus group to achieve a number of goals in the short time-span of only a week. Last week my name was up, and while it was a busy week, it also was a very refreshing break from the normal course of business. I can’t really go into the details of things, company policy has to be followed on this one. Yeah it did involve something with Java programming.. 😉 All in all it was a very productive week.

Besides the regular 40 hour week my program is taking it’s toll as well. Because I was going to work by car instead of by train the last week I lost about 5 hours of work because of steering a car. But still I had to stay up to speed with the courses I am following. Next to that a friend of mine had a nice surprise in store for me as well. Although my time was very short these last two weeks, her surprise put a smile on my face. Something I really needed because I was starting to feel swamped by all the stuff I still have to do.

I’ve also noted an item in my agenda to compile some nice posts to put up here. But I’m just not getting around to it. So please hang on, there will be some good stuff here in the future.

Performance tuning overload

Just a little update after yesterday. I must say that Kirk is performing a marvellous job. So-far we have touched on subjects like heap tuning, garbage collection tuning, profiling and architecting for performance. Loads and loads of stuff. And we’re only half way through! Fortunately the course attendees seem to be a rather bright bunch of people, so Kirk is able to work through the material at a nice tempo. I knew the Java JVM had lots of arguments, but man, in the last two days I learned about boat loads more.

Woops, Kirk is starting again. More on this later.