onsdag 24 november 2010

What have you done for me lately?

Quite recently the following message went out to our Java SE Licensees:

Upcoming changes in Java SE HotSpot build process

Dear Java SE Licensee,

November 05, 2010

Oracle would like to inform you that we are planning on eliminating the includeDB mechanism from the HotSpot build process starting from JDK7 and upcoming updates of the JDK 6.

The includeDB mechanism was in the HotSpot sources for a long time serving the purpose of generation of necessary header files include list for each source file at the compilation time. It was also used for generation of the precompiled headers that significantly reduce compilation times for Visual C and gcc compilers. It consisted of two parts: the MakeDeps tool written in java and plain-text database files with recorded header files dependencies. This approach became a maintenance issue and it also creates unnecessary difficulties for using modern IDEs for code development. The dynamically generated list of header files for precompilation will now be replaced with a static one and all include files will be explicitly listed at the top of each source file. This activity is known as CR 6989984.

A separate task known as CR6981484 will result in an update of the development launcher. The current development headless launcher known as gamma launcher has a number of limitations and is not existent on Windows. The new launcher called fusion will be present on all supported platforms and will have a new switch for launch inside a debugger. The current plan is to implement the new launcher as a shell scripts that wraps around the existing gamma launcher on Solaris and Linux and create a new separate executable for the Windows OS family.

Switching to the standard include model will enhance code maintainability. We do not expect this will be affecting Java SE licensees port in any major way, but we would like to give you an advanced notice so that you can plan your upcoming release accordingly.

If you have any questions or concerns, please contact your Java Licensee Engineering representative.

Thank you and best regards,

Java Licensee Engineering
Oracle Corporation

That is obviously one way of saying it (whatever _it_ is). If someone tweeted the first line, and someone else made an article based on that tweet, the article would read.

Oracle removes free Database from Java

Puppies missing from orphanage

But what does it really mean?

My own headline would be

OpenJDK now 300% easier to compile

(Full disclaimer: I just made the 300% up. I don’t have any independent research on the issue. And if there was, I expect it would be more than 300%.)

IncludeDB/MakeDeps was a non standard way of handling C++ header files. Back in the days of yore it solved a number of problems, but in a world with modern IDEs it’s more of a hindrance. We are now moving to using normal header files. This will allow users to use an IDE with a minimum amount of tweaking (as opposed to the previous maximum amount) and will seriously lower the bar for new developers that want to work with OpenJDK.

So, if you want to work on OpenJDK this is good for you. If you want others to work on OpenJDK this is also good for you. You’re welcome.

(We have done a few more things for you, but that will be a matter of separate posts)


Please allow me to introduce myself

I’m Tomas Nilsson, I work for the Oracle Java Platform Group as outbound product manager.

As my name indicates I’m Swedish. Born and raised in the far north but nowadays living in Stockholm.

On my very first public presentation at Oracle I introduced myself as “Product Manager, JRockit products” and was just about to go on with my prepared presentation when a helpful colleague interrupted me and asked “Yes, but what do you do?”. I’m still trying to find a good answer to that.

On one side, we work internally as owners of the requirements and represent the customer/user in discussions with our dev teams. On the flip side of that we represent the product when speaking to the customer. In between those two, its our jobs to ensure that the field teams have all the information that they need to speak to the customers. With a list of products the size of Oracles we also need to make sure that they care about our product. In a way you can say that we sell to sales.

The “Outbound” part of “Outbound product manager” means that my focus is more on customer facing activities. Conferences, presentations… And with the Sun acquisition (I still think of it as a merger since for my team it’s a more fitting term. That and the fact that “merger” is easier to spell) some part of community outreach.

Why am I writing this blog? Well. I read a lot of Java related blogs, tweets and articles, and I feel that I can contribute to the available information. I hope to give some insight into what Oracle is doing for Java and what the thinking behind it is. Since no one will read this post until I have posted something interesting on Java/Oracle I can leave this here. You will have figured out what my topics are by then.