[Duke Thinking]
« February 2008
SunMonTueWedThuFriSat
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
       
Today

XML



LINKS





CONTACT
Tom Marble's Weblog

template by
Helquin



20080117 Thursday January 17, 2008

Where is Tom?

Now breaking a long hiatus in blogging is my announcement that I will be leaving Sun. I have a new opportunity which will challenge me to grow in new directions and I intend to seize the chance.

I have really enjoyed working with everyone on our new OpenJDK Community. OpenJDK is a huge project and we've made great progress since announcing the plan to open source Java. Of course there is more to do, but that's completely understandable when one changes the engines on a 6 million line-of-code airplane -- in flight.

Duke waving

I'll still be here for a little while and I am nevertheless planning to attend FOSDEM 2008 and will continue the to help organize the Free Java Meeting.

Where am I? You can always find me from my personal web page tom.marble.name which has pointers to wherever I'm blogging, etc.

And since F/LOSS will continue to be an important element of my professional (and personal) life I will still be "here" in the Free world. So it's not au revoir, it's à bientôt!


Posted by tmarble ( Jan 17 2008, 03:29:16 PM CST ) Permalink Comments [16]

20071113 Tuesday November 13, 2007

The Java Experience

Today marks l'anniversaire du Java Libre -- it's hard to imagine all that has happened in the past year. Fortunately Rich Sands provides a great chronology of open sourcing Java SE.

Of all the work that has gone into open sourcing Sun's implementation of Java SE one milestone stands out clearly: Sun's choice of GPLv2 and the Classpath Exception for OpenJDK. Despite the overwhelming success of GPL as the top license choice of open source developers one often finds strange interpretations of it from "it discourages commercial development" to "if there is a GPL coffee cup in your office then the desk, the chair and the lamp must divulge their secrets". GPL is even sometimes criticized for not providing the "freedom to commercialize". It would seem that a fairly significant commercial ecosystem has been built on top of GNU/Linux. The use of the Classpath Exception makes explicitly clear that library and application developers deploying on OpenJDK are free to choose whatever license they wish for their work including closed source. Using OpenJDK as a platform gives you complete freedom.

Modifying the platform, itself, however does mean that changes must stay in the open. If one of your core values is ubiquity then you want the broadest possible reach for the platform on as many operating systems and chip architectures as possible. You want the community to share this complex knowledge to reduce duplication of effort and speed porting. If one of your core values is compatibility then you want to insure that the platform has consistent behavior on all platforms. You want to discourage proprietary "secret sauce" that would attempt to advantage one platform at the expense of the promise of "write once, run anywhere" for the entire ecosystem. So when it comes to the platform itself industries that are characterized by the walled garden approach may indeed have to change their business models. I bet that the most interesting devices of the future will be built upon software development kits which value compatibility out of respect for the career investment made by developers. The reason is simple: developers will advantage device platforms that keep the promise.

On this anniversary let me dream a little bit about what the OpenJDK platform could enable... I am talking about The Java Experience. As both a user and a developer I have become quite a fan of the always-up-to-date facility of Debian GNU/Linux. Debian has a very elegant way of managing software such that interdependencies of one package on others is handled automatically and upgrades of package versions is handled gracefully. Bringing this idea to the Java Platform is not new and is captured by the work on the Java Module System. For me the "Java Experience" would be the full realization of this concept where developers could author Java libraries and applications on any platform for deployment everywhere. To make this work our development tools will have to get smart about all the operating system specific facilities for managing software packages. Adapting a Java authoring tool for Debian will be easy. Training Windows to learn about "packages" will be somewhat difficult.

Imagine the power of being able to press the "publish" button which could upload your Java application to an automated packaging repository. This is about taking the Java promise over the finish line to leverage all the work in the core platform ubiquity to complete deployment. The Java Experience for users could be that once connected to the packaging repository all Java applications are available just by browsing or searching for them by name. One click would download the program you want (and all of its dependent libraries). This would mean that the concept of "It Just Works™" would be available everywhere there is a Java Platform. In this way users could be truly liberated to run the software they like on any device. That's the experience which is possible with OpenJDK.

The Java Experience
Getting to know and learn from developers in the OpenJDK community has been extraordinarily rewarding for me. I have learned a great deal about the tools other Free Software projects use and the social milieu required for open source projects to be successful. One of my patient mentors is Mark Wielaard: the icon for GNU/Classpath & Friends. Mark has always said "it's all about having fun!". At first I frankly thought he was joking. But I've come to realize that Mark was quite serious that fun is the essential ingredient for hacking! Mark has talked about his memories of Java Liberation Day. Everyone has a different point of view, interests and abilities. I try to learn something from each person I meet.

Do you have any thoughts about OpenJDK after one year? Do you have a vision of how you would like to see Java Technology evolve? Please share your comments here, link to your blog, see what Sun engineers are saying and join us today on the #openjdk channel to talk about OpenJDK's birthday! Have you lived through complex technology changes? Are you experienced?

Posted by tmarble ( Nov 13 2007, 10:07:37 AM CST ) Permalink Comments [1]

20071106 Tuesday November 06, 2007

Red Hat and OpenJDK

I'm sure you've seen the news that Red Hat has signed the Sun Contributor Agreement (SCA) and the OpenJDK Community TCK License Agreement (OCTLA). My coworkers webmink, barton808, mr and rsands have already blogged about it!

It's important to realize that IcedTea is intended as a temporary project until the remaining closed bits of OpenJDK have been removed. The best explanation of comes from Andrew Haley (aph) when he introduced IcedTea.

Duke enjoying IcedTea with the Red Hat on
While others have talked about the "what it is" allow me to speculate on "what opportunities this creates". Now just as Pascal has got everyone thinking about FOSDEM 2008 it's about time for me to share with you more of a discussion which dates back to FOSDEM 2007 :)

At that time aph from Red Hat shared with me his idea of making OpenJDK part of the GNU/Linux tool chain. We have, separately, talked a great deal about the importance of integrated packaging and deployment for Java™ to be successful on GNU/Linux.

Getting into the "tool chain" would mean:
  • Being available on all architectures supported by the distribution
  • Debugger support so that, for example, it is possible to step from C++ code into Java code and back again.
  • Profiler support for mixed source programs... possibly even with kernel profiling (with oprofile)
  • Being installable as a valid build dependency for Java library and application developers
Tool chain status means it is a tool developers can count on being there. Getting the Java Developer Kit (JDK™ ) in the tool chain would make total sense and offer these benefits;
  • GNU/Linux applications based on Java could have a substantial percentage of code which is architecture independent. This would reduce the number of packages and size of the distributor's archive (because a *.jar file should run anywhere -- you package it one time for all architectures). It would also reduce time to build a new OS release for each architecture.
  • OS developers could write administrative utilities (at least partially) in Java instead of C and thus benefit from a rich set of libraries while avoiding the pitfalls of pointer manipulation
  • The pluggable look and feel framework of Java could help GNU/Linux get beyond the widget/desktop differences (Gnome, KDE, Xcfe) so that Java applications always look well integrated.
  • Developing GUI administration tools for GNU/Linux could improve the "ease of use" barrier for a new class of GNU/Linux users.
One of the strengths of GCJ is the broad platform coverage which includes not just x86, amd64, sparc, but powerpc, arm, ia64 and many other architectures. And therefore GCJ is available on all the platforms supported by Fedora. In addition GCJ can be debugged and profiled for pre-compiled programs. GCJ is in the Fedora tool chain.

The opportunities for OpenJDK are clear:
  • There is now an OpenJDK Porters group proposal to facilitate porting to new architectures (and other operating systems). Many developers have contacted me about porting OpenJDK to new combinations of operating systems + chip architectures.
  • Adding debugging and profiling capability to the HotSpot virtual machine is complex precisely because the methods are dynamically compiled, but we can leverage the technology in the NetBeans profiler -- recently available under the GPL.
  • As OpenJDK expands our infrastructure it will be easier to collaborate with the community on open source replacements for the remaining encumbrances. Consequently the 100% open source OpenJDK would be a candidate for inclusion in the main repository of Free Software GNU/Linux distributions.
Finally the TCK can help insure that the implementation of OpenJDK is 100% Java Compatible in addition to being 100% open source. This is the goal.
aph & tmarble (A big grazie to neugens for enhancing my flickr photo!)

That is why the rapprochement of the Red Hat team with OpenJDK can help Java move towards "tool chain" status, unleash the cross-architecture power on GNU/Linux, and expand Java Compatible ubiquity. Thank you Red Hat!

Posted by tmarble ( Nov 06 2007, 07:17:23 PM CST ) Permalink