Marble: I serve as a bridge with the OpenJDK community by articulating the objectives of external developers to internal Sun teams and by explaining Sun's interests to the community. I'm attending major open-source conferences, communicating through email and blogs, and talking with people every day by voice or on IRC. I'm learning a great deal from Mark Wielaard, leader of the GNU/Classpath community, who explains that Classpath & Friends work because, first and foremost, they're all about having fun! JSC: How is the OpenJDK project building community?
Marble: Our community efforts began in 2004 with the Peabody project, and they were significantly expanded in 2006 when we released Java SE under the Operating System Distributor License for Java (DLJ). We began talking to the public more about our open-sourcing plans at OSCON and ApacheCon last year. The skeptics were speechless on November 13, 2006, when Sun announced plans for open sourcing all of our Java platform implementations, including initial code contributions of the compiler and Java HotSpot Virtual Machine from OpenJDK. After that, we could begin to work on the code commons that we had established. We continued our public discussions at the European Open Source Conference (FOSDEM) in February 2007 and in April at the South American open-source conference in Brazil (FISL). All of this relationship building has created informal channels of feedback that guide the OpenJDK project. By the time we had our full launch of OpenJDK at the 2007 JavaOne conference, the foundation of the OpenJDK community was online and ready. JSC: What did you learn from the 2007 JavaOne conference about the perspective of developers on open sourcing the Java platform? Marble: I learned, not surprisingly, that developers want to add the innovation of open source while keeping the enterprise stability they have always relied on. OpenJDK will allow a significant reduction in bug-fixing time and facilitate performance improvements. To meet this challenge, we are planning to expose not only the platform code but as much as possible of our quality code and processes. It's hard to overestimate developers' enthusiasm for the forthcoming modularity improvements in JDK 7. Developers just can't get enough information about the Java Module System and related JSRs. They have become accustomed to refactoring and modularizing their own code, and understandably, they expect that in the Java platform as well. OpenJDK Hacking
JSC: Can you tell us about some hacking that is taking place with OpenJDK? And do you have a sense of where it may be going in the next few months? Marble: I've spoken to several computer scientists who are considering orienting their research work around the Java HotSpot Virtual Machine. The advantage for HotSpot in research is that if you want, for example, to push the frontiers of dynamic compilation, you can start from a production-ready implementation. One of the areas where people are having fun is in the Kitchen Sink Language project, where they can try out new ideas with Sun's Java compiler technology and even play with new languages -- whose names don't end in Another fun project proposal has been the fbtoolkit, a lightweight framebuffer-based peer implementation for AWT that allows new ways of redirecting graphics output to devices and even to virtualized sessions such as VNC (Virtual Network Computing). One exciting recent development occurred when the community initiated efforts to close the OpenJDK binary encumbrances by working on replacements from GNU/Classpath. The IcedTea project has demonstrated the true hacking potential of the community by making a buildable runtime without the import JDK -- in only a month. I fully expect to see hacking on OpenJDK tools, test automation, distro-specific packaging, and new operating system plus chip architecture ports. Of course, the best way to track OpenJDK hacking is to check out the project mailing lists or drop in on IRC. Misconceptions About Open Source
JSC: What are the biggest misconceptions that you encounter about the open sourcing of Sun's implementation of the Java SE platform? Marble: I've encountered the misconceptions that we are open sourcing the Java language -- how would one do that? -- or that the Java Community Process (JCP) program is no longer needed. The JCP is still very much in place and serves a very important role in allowing the community to define the specification for the Java SE platform. OpenJDK is Sun's code commons, which implements that specification. And of course, software licensing necessarily entails a fair amount of complexity, which causes misconceptions to arise. There are fears that whenever some GPL code is in the room, that everything else within sight -- the desk, the chairs, your coffee cup -- must be open sourced as well. Developers need to remember that copyleft applies to the platform itself, but that code using the platform can be licensed any way they like. JSC: You have said that you expect open sourcing the platform to lead to higher-quality software. Why do you believe this? Marble: This a result of the "many eyes" principle of open source. By having a larger number of people examining the code and testing it on a broader variety of platforms, bugs will become easier to identify and fix. Benchmarking Tools for Open-Source Performance
JSC: Give us your perspective on benchmarking tools for open-source performance. Marble: Having worked for many years in the Java Performance Group, I appreciate how difficult this work is. The first challenge is finding a benchmark that measures something interesting. With Java applications in particular, this is tricky because of the sophistication of the Java HotSpot Virtual Machine, which can optimize code on the fly. This is why we say "beware of microbenchmarks," because you may find that the measurements you thought you were making may be measuring something else. For example, you think you are measuring the performance of a given function when, in fact, the JVM* has eliminated most of the code, and as a result, you are only measuring startup time. Once you have a benchmark, it's important to test it enough times so that you can safely draw a conclusion from the result. It's amazing how often we've had questions about why a benchmark got a particular result when there was only one baseline trial and one test trial. That's why using statistics is not optional. And when you want to understand a phenomenon, you must be careful to fully understand the impact of each change. Trying to examine minute differences between apples and oranges just won't do. That's why, for example, it's very hard to compare the performance of Java technology vs. .NET. Even if the hardware and operating systems are identical, the VM layer is not the only part that is different. The libraries used above the VM are different, so writing platform-optimal code in two different frameworks of comparable code quality is tricky. Notice that this is just the background of benchmarking before we talk about open source. However, open source and performance analysis are a great match. I've started a Java benchmarking folksonomy to categorize available open-source tools for performance. Everyone who cares about the Java platform will benefit from open-source performance tools. Collaborating on benchmarks, drivers, and harnesses, for example, will allow the community to "bake in" many best practices for performance, such as visualizing the statistical strength of the results. First Encounter With Java Technology
JSC: Tell us about your first encounter with Java programming. Marble: In 1995, I was working on a project to migrate a "green screen" character-based application from an obsolete minicomputer system to a UNIX system running on Sun. In addition to the green screens, we also had Sun workstations, X terminals, and Microsoft Windows PCs as client devices. Since the minicomputer software required a very unusual terminal emulation, we didn't have an off-the-shelf solution to use it on UNIX and Windows. My first real Java program was a cross-platform terminal emulator. Developing this program in UNIX and watching it work on Windows was magical. The Importance of Copyright Law for Developers
JSC: In your blog, you referenced an article about the Brazilian singer-songwriter and minister of culture, Gilberto Gil, who has secured rights for musicians in Brazil. You wrote: "It seems that knowledge workers could benefit from modernization of employment agreements in the context of the digital age. Typically, all work for hire is owned by the employer (except, of course, for states like California that have special limitations)." You also described yourself as "keeping an eye on the right to be creative." How is this relevant to Java developers and to open source? Marble: One of the most interesting properties of open source is the use of copyright to give developers and users explicit rights, such as the ability to run, modify, redistribute, and share improvements of the software. Lessig's book Free Culture explains why and how Creative Commons licensing can bring similar benefits to other artistic works. What's important here is that as consumers, we are becoming more sensitive to clicking the "I Agree" box on registration forms, and as producers, we are realizing that we have many choices about how to license our works. Therefore, all knowledge workers -- and Java developers are certainly among them -- can benefit from having a basic understanding of copyright law. I believe that a key element of open source is having a legal framework in which individuals with passion and ability can express their creativity. Part of the framing is the employer-employee relationship. Modern employers and creative knowledge workers will take care to understand the boundaries so that day-job and hacking activities don't conflict. It's quite cool to see that businesses, such as Sun, have realized the power of dialing into the force of passion and ability and made it part of their business model. These are the modern businesses worth watching. Tae Kwon Do: Controlling Mind and Body
JSC: You are now a candidate for a black belt in the martial art of tae kwon do. What does this mean? And does the practice of tae kwon do make you a more effective developer -- perhaps better able to go with the flow? Marble: Here's the definition from the World Tae Kwon Do Federation: "Tae kwon do is a Korean unarmed martial art. It is not only kicking and punching but is also a way of thinking and living. The main goal of tae kwon do is to achieve total mind and body control through training." Acquiring the rank of black belt is the biggest milestone in this training. My primary goal in practicing tae kwon do is to realize a healthy balance in my life, which includes exercise. While this balance is helpful for intellectual work, the primary lesson learned is that expertise is built up over a long period of time through recognizing patterns. Perhaps this allows me to keep my sense of humor when a bug in my code throws me to the mat! Software Cultures
JSC: You speak French fluently and gave a presentation at a conference in Versailles. What can you tell us about the developer culture in France or in Europe generally? Marble: I hesitate to make generalizations about France, and especially Europe. I do feel that one of the unique strengths of the United States is that we are not afraid to take risks. Constant exploration is a must in software development. At the same time, managing expectations and making commitments that last are extremely important. The French are very good at taking ideas into production -- with flair! And based on my experience at the European open-source conference (FOSDEM) and the South American open-source conference (FISL), I think the United States can learn a great deal about the social value of open source in the public sphere. We all share the global challenge of sustainability. I'm confident that by enabling everyone's passion and ability in software code, art, and culture, we can get the planet back on track. JSC: What basic software problem would you most like to solve? Marble: The next problem to solve is VisiCalc for business strategists. Integrated development environments (IDEs) are valuable, but we need to empower nonprogrammers to put policy into action in the same way we all can use spreadsheets to do budgeting. If a tool could help us clarify our thinking, that would be a big breakthrough. I suspect we'll need several more mental workouts to get in shape for this milestone.
_______ See Also
Tom Marble's Blog
| |||||||||||||||||||
Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.
|
| ||||||||||||