The JavaOne conference began with a pre-conference. CommunityOne
was a day-long mix of sessions on NetBeans, GlassFish, OpenJDK, OpenSolaris, and Web 2.0 topics. CommunityOne also features a day-long track hosted by James Governor and Steven O'Grady of RedMonk
billed as the Unconference. Instead of going to another track planned by Sun to hear from their marketing folks or a JavaOne conference sponsor, the Unconference topics are proposed by attendees and the selection is made by a democratic vote at the beginning of the day. The Unconference worked out splendidly.
At the Unconference I listened to discussions on from-the-ground-up marketing strategies, a discussion on the Myths of Open Source, lots of discussion about open source business models, a whole session on dynamic scripting on the Java VM, and a heated discussion of true versus evil open source.
Sun To Announce A New Contributor License
Simon Phipps, Chief Open Source Officer at Sun Microsystems, told a small group of people at the Unconference that Sun will announce a new contributor license (version 1.4.1) later in the week. Simon said Sun found the existing contributor license is not valid in some countries (like Germany.) The new license adds a clause to cover situations where Sun uses any contributed code. The new license says that the contribution will always be available under an open source license.
Simon said the problem this new contributor license solves is to aggregate the copyright and the patent to be open source to allow the community to know it has the rights to use the code. Simon said using the Apache contributor license "leads you into a really bad place" if you don't also use the Apache license.
Simon said to look at the "learn more" button on sun.com/opensource
but I couldn't find anything tonight.
Dynamic Scripting Day
While the Unconference covered many different topics, I found the Dynamic Scripting conversation to be the best parts of the day's events. Charlie Nutter and Tom Enebo brought together many of the script language leaders and had John Rose (spec lead on JSR 292, InvoiceDynamic) describe his thoughts on improving the JVM for scripting languages. When asked if the Java Community Process (JCP) should always be used, John replied that "InvokeDynamic and making bytecode readable in a debugger is JCP territory. Modeling and overloading of constructors is totally open source."
The group also discussed Microsoft support for dynamic languages. Charlie Nutter, who leads the JRuby effort with Tom Enebo at Sun, said Microsoft's commitment to the Dynamic Language Runtime (DLR) and CLR shows that they are devoting significant resources to make new languages run on the .NET platform. For example, Jim Huganin's work on IronPython at Microsoft seems to be
Charlie Nutter observed that, Sun has many more man-years at making other languages run on the JVM than anyone else. Nutter said "the effort allows Sun to understand what it has and deliver dynamic scripting as a community of best practices.
Open Source Compared To Commercial
The Unconference spent time trying to debunk myths surrounding open source software publishing. A few market size and expense charts contrasted open source to commercial software.
1) Myth: "It doesn't cost as much to develop software?" Answer: "When comparing Research and Development % of revenue, commercial companies were at 20% while RedHat (including JBoss) were as high as 26% in 2002.
2) Myth: "OSS doesn't waste time or energy on marketing and sales." In reality, many times OSS spends more than commercial. For instance, Redhat spent 55% of its revenue in 2006 on an open source standard.
3) Myth: "OSS is great because products don't need advertising." This doesn't hold water when looking at RedHat's spending on advertising:
RedHat 26% in 2000, 25% or more in 2004, 2005, 2006
Testing With Virtual Machines
The folks from Replicate Technologies Rollout TestBed are here at the show. Replicate offers a hosted service with remote control of a testbed of virtual machines. After login with a browser, you get a virtual testbed with 5 or more virtual machines (Linux or Windows or Solaris x86), plus routers and firewalls and load balancers to tie them together. There's also a WAN simulator to introduce bandwidth limits or delays between the routers. What's most interesting the ability to save and restore the whole collection of machines with one click, so you can checkpoint the state of the testbed between software changes or test runs. You build up a library of testbeds, ready to run over the net. It looks like it'd save a lot of time in QA, to save a group of machines after discovering a bug, or in support to reproduce user problems, or in production testing, to fire up a group of preconfigured machines running PushToTest or any other test suite. Replicate is a silicon valley startup, www.replicatetech.com.
Lift Web Framework
David Pollak (dpp at circleshare dot com) gave an introductory demonstration of Lift, a container based application for rapidly building Web applications. Lift runs inside a Java web container and uses the Scala
programming language for coding. David showed his framework for building Web applications. He claimed development of a Twitter like application that scales to handle 1 million users using Lift. Lift applications are deployable as WAR files. Nice! Lift is governed by an Apache license. David showed a clock service that pushes changes to a render method in the Lift script. Components on the page allow for asynchronous updating of the component. When asked how Lift scales, David replied that scalability comes through a share-nothing message-exchanging architecture that removes the need to manage state across a lot of objects.
In the afternoon many people wanted to show off their new inventions. I led off this part by demonstrating the new PushToTest Version 5
. The new software reuses unit and functional tests as scalability and performance tests and service monitor tests. I showed writing a unit test using Jython and Java, building a Test Scenario document to define the test parameters, and running the test in the graphical SWING environment. PushToTest Version 5 now supports JSR 223 so users write functional test in any language (Jython, Groovy, Rhino, JRuby, etc.) and they are run in the PushToTest runtime. PushToTest Version 5 ships with an integrated SOAPUI utility and the TestGen4Web utility Firefox plug-in.
Bryan Cantrill, bmc at eng dot sun dot com, of Sun showed off the new DTrace. DTrace looks excellent. The D language seems nervous that twitchy. It reminds me of learning regex. In the long run I failed to learn regex and I'm scare to learn the DTrace language.
Lots of Macintosh
I am happy to be typing this report on my Apple PowerBook laptop and I am joined by legions of Mac wielding Java developers! [Editor's note: not me, and that's annoying. You Mac people are so smug. Can't wait to join you some day.]
Many of us are waiting for Apple to release Leopard, the next major version of Mac OS X.
While Apple is very delayed in delivering JVM 1.6 to Mac users, there are inexpensive workarounds. For example, the $80 USD Parallels
enables Mac users to run Linux and Windows and then run the Sun JDK for those platforms. If you have a working Linux installation the included Parallels Transporter makes it easy to make a snapshot of the installation and move it to your Mac. I heard a reccomendation to upgrad to 3 Gbyte of RAM (An extra $600, ouch!) to run Vista and Eclipse.
Leopard will have XRay, a GUI on top of DTrace. Leopard was announced last November but latest seed releases look pretty bad.
Open Source Shame
Simon Phipps lead a very heated conversation about open source. Simon put forward that there needs to be a renewed effort at OSI to shame people, groups, and businesses that are pushing the open source marketplace in bad ways. SugarCRM came up in that it is a company that claims to be open source but does not allow companies to change and branch because of their attribution requirements. Simon says we need a group like OSI to shame people that aren't really playing by the open source rules.
Coming Up, Lots On Dynamic Scripting
JavaOne seems chock-full of dynamic scripting this year. For example, in the coming days are sessions on:
TS-9574, Jython and Java Technology: Plug-and-Play, Friday May 11, 12:10 PM - 1:10 PM, Moscone Center - Gateway 104
BOF-2958, Dynamic Scripting BOF, Wednesday May 9, 9:50 pm, Gateway 102/103
A deep dive on the Invoke Dynamic JVM enhancement by John Rose
, spec lead on JSR 292, in the Civic room at the Weston Hotel, Wednesday May 9 at 2 pm. John told us "I'm hoping we can make some EG-style decisions at that meeting."