Thomas Enebo and Charles Nutter led a session on JRuby: Ruby-Tinted Classes. Nutter explained Sun's interest in JRuby as a means to stay in developer's focus. For instance, Nutter noted that O'Reilly book publishers reports a decrease in sales of Java books and an increase in books on Ruby. Additionally, Enebo and Nutter told attendees that dynamic scripting languages like JRuby are good sources of new thinking about language enhancements that may improve Java. They note that for a long time Java developers wanted a better closures syntax and since JRuby provides closures the Sun experience with JRuby gives an understanding of the issues Java developers may have when using closures in a future Java. Enebo and Nutter urged attendees to look at Java 7 proposal for closures.
Enebo and Nutter showed the new JRuby support in NetBeans 6 M7 release. JRuby is dynamically typed and there is no compile function. This makes NetBeans code completion do a lot of work. NetBeans support offers smart completion by inferring types and syntax and it includes a pop-up menu to open code documentation and links to class definitions inside of Ruby. NetBeans support includes the Ruby console to immediately execute Ruby commands. Additionally, JRuby supports calls from Java applications via the JSR 223 engine in Java 1.6. Nutter told attendees you can call JRuby scripts from Java via JSR 223 and BSF.
Enebo and Nutter demonstrated building and running a Rails 1.1 application on JRuby 0.98 on Java 1.6. It worked as you would expect Ruby on Rails to work. Plus, JRuby with Rails delivers better integration with a database through JDBC support and versioning of files in the database for upgrading and downgrading between versions. JRuby futher assists Rails users by providing an improved deployment story since at its hear this is a Java solution. Of course, JDBC doesn't give primary key metadata, so the JRuby project developed a work around.
Nutter told attendees that many developers tell him that they might have started using Rails scaffolding but most move on from scaffolding to edit the Ruby code directly.
Enebo and Nutter gave an update on the JRuby project: There are currently 4 commiters (2 work for Sun, 2 work outside Sun), 35 engineers contributing patches, Spring 2 ships with JRuby, other projects are built with JRuby, including the Antbuilder project and a JDBC connector for Rex.
The JRuby project is working on several initiatives towards future releases. For instance, JRuby script compilation to Java Bytecode, AOT and JIT HotSpot optimization is working but not ready for release yet. They are working on performance, leveraging HotSpot to speed execution, completing the JRuby compiler, native Unicode support, and Ruby 2.0 multi-lingual using M17N later. They expect to accomplish the JIT HotSpot compiler feature in March 2007, closing out 1.0 features and likely making a 0.9.9 release in April 2007, and releasing JRuby 1.0 in May 2007.
The session ended with Enebo and Nutter summarizing the features missing from Java that are present in JRuby, including closures, open classes (metaprogramming), literals for arry/hash/regex, and loose typing/duck-typing. They believe JRuby is better language for tying many libraries together.
Enebo and Nutter took several questions:
- Is Java integration solved now? Nutter responded that they are trying to find the best practice to import classes. He said they currently use a syntax like: import java.lang.System. Nutter said JRuby wants something that isn't foreign to Java developers, perhaps similar to Jython import statements, and will continue to improve it over time.
- How do you certify Rails compatibility? The JRuby team runs the Rails unit tests and have 98% success.
- What's JRuby's niche in a Java shop? Enebo responded that the Rails side is big. Nutter told attendees that JRuby is a really aminable language to creating a domain specific language that takes out some of the drudgery from otherwise writing the same code in Java.
- How do you run JRuby scripts from a Java application? JRuby comes with support for the Bean Scripting Framework (BSF,) and JSR 223 where registered engines run specific languages. Nutter said the same is true for Spring where Spring takes a Ruby file in and run it from a Spring context.
Charlie Nutter told me Sun is putting together a meeting of the committers for the scripting languages at JavaOne to discuss in common the challenges of implementing languages on the JVM, and how to better support languages on the JVM. Look for an announcement real-soon-now.
Open Source Business Panel
The lunch session featured a panel discussion of representatives from open-source companies. The topic was a bit off for the audience since software developers and architects generally attend the Symposium. For instance, Bob McWhirter of Redhat JBoss was one of the panelists and offered an opinion, "My personal goal is to address the folks wearing T-Shirts, not the suits."
Joe Ottinger of The Server Side asked the panelists to comment on the recent dust-up over the use of the name Hibernate. "We don't have an issue over people supporting Hibernate and making a business around that. But, they can't put out a product and call it Hibernate. JBoss is open-source and owns the trademark," said McWhirter.
Ottinger asked Joaquin Ruiz of SpikeSource how do Symposium attendees participate in SpikeSource projects? "We have an event gateway that takes input from RSS, email lists, Web sites, and other means and categorizes the events into a map against one of our solutions. That starts a whole series of tests, and we issue a patch or a remedy through our SpikeNet subscriber network. We are a consumer of a lot of what is contributed by the open source communities and provide that back to our customers," said Ruiz.
Ottinger asked what decisions went into choosing the GPL? John Newton of Alfresco offered, "What we have is a platform, a content repository, but we wound up building applications – document management – on top of the content repository. We started with GPL, then went to Mozilla because we could add attribution clauses, but I think that was a mistake because it made it more complicated to distribute. We saw that MySQL is dual license using GPL and our business pretty much fit the same way and so my reservations over GPL went away. We found that if there are no patents in the components then there is no problem going with GPL."
Neelan Choksi of Interface 21 said, "Our goals are to encourage the ubiquity of our products and we've proven that some percentage of the users will want training, certification and support. That is were we focused our business model. We don't see open source as an answer to product commoditization, instead we see it as a way to encourage innovation."
Brian Kim of Liferay said "There's a common misconception that open source companies are holding documentation for their projects hostage. The real problem is most of the documentation is locked in the developer's head. By going to our community we can go to developers and get them to contribute back their documentation to the community."
When Ottinger asked the panelists for their thoughts on the upcoming GPL version 3 license, the panelists mostly punted. For instance, Newton of Alfresco repeated that they were following the MySQL license strategy and Ruiz of SpikeSource offered nothing more committal than, "We're following GPL 3 and it is getting a huge amount of scrutiny from the open source vendors." McWhirter of JBoss said, "I was happy we could keep Drules under a BSD license, that gets around any license problems."
Ruiz said SpikeSource sees a trend among open source companies that are moving to dual license models. "We have customers that were not interested in working with us when we had a single open-source license until we also offered a commercial license," said Ruiz.
Ottinger asked for metrics for a successful open source business. Newton told attendees that Alfresco is a profit making business and they are 50% further along in revenue than Documentum was at its same point in its life. Newton said, "We get $25K per site, and the OEM business is in the 6 figures, 250 customers in the first year. This proves to us that open source distribution is much better than the old distribution methods."
Cameron Purdy of Tangolsol hosted a session on Data Grids and gave an update on Coherence. Cameron talked about the different ways a data grid can share a common view of data across several severs and virtual machines. This simplifies development of data sharing applications and uses the underlying grid infrastructure's features to improve reliability and efficiency.
Purdy told attendees of the session that they are noting problems with virtualization and shared infrastructure that data grids can help solve. For instance, Purdy asked what happens when the applications in the infrastructure becomes middleware? How does the business account for charging back the middleware? Who gets charged for it?
Purdy also discussed the Tangosol Coherence product roadmap, including new platforms and languages, including C, C++, C#/.NET, VB.NET, Excel, clustering infrastructure for data center failover and Infiniband support, partitioning support for larger data sets and deterministic configuration, technology integration using Composite, DataSynapse, Hibernate, Mule, and Spring. He also said Tangosol is involved with the Ripple Event Driven Architecture (EDA) project.
Dynamic Scripting Languages
Frank Cohen of PushToTest lead a BOF on dynamic scripting languages on Java. The session was well attended and also attracted many of the project leads of the popular dynamic scripting languages. Slides from the session are available at the Symposium Wiki site.
Now for a bit more sleep, and then the final day of the Symposium.
by Frank Cohen