JavaOne 2007, DayOne
Originally posted 2007-05-09 08:34:22
JavaOne, DayOne kicked off to a packed room. John Gage from Sun led the session that saw several Sun luminaries (Jonathan Schwartz, Scott McNealy, James Gosling), as well as other industry leaders like NASDAQ’s CIO and an SVP from Yahoo!. Executives and geeks paraded on and off the stage to announce, demonstrate, or evangelize various Java-related technologies, while the Brazilian cadre near the front waved their national flag and cheered.
John Gage implored attendees to shrug off shy shells, act like the Brazilians, and meet people while at JavaOne. He then showed two devices: a Java phone and Solio, which is a solar charger. He said these two devices will take communication to areas where communication has never gone before. With an Internet-connected Java phone and a solar device to charge it, people throughout the world (well, people within reach of cell towers, I suppose) can connect, read and send email, surf the Web, and IM each other. The Java phone, claimed Gage, lays open its software and hardware to allow bright people to tinker and improve.
Rich Green, EVP of Software at Sun, then took the stage. Dressed all in black, he endured jibes that he’s Sun’s Steve Jobs. He continued the communication meme, explaining that communication enables community, and that community is a fundamental human property. Humans don’t just WANT to communicate–they HAVE to (my wife would challenge this assertion). Java can accelerate and enrich communication, and mobile phone shipments outstrip PC shipments 20 to 1. People are changing how they connect to the Internet.
In the context of outlining Java’s 2006 growth, Green announced the delivery of OpenJDK, released under GPLv2 to ensure both openness and compatibility with Linux distros. An interim governing board is creating the constitution and holding elections. Green talked about GlassFish V2, which has JRuby support and is ready for enterprise use. He brought Ericsson’s VP of Marketing on stage to announce that Ericsson is releasing some of their multimedia components to open source and folding them into GlassFish. Green then moved on to the work happening on Java Real-Time, which NASDAQ is using to prototype their next-generation system. NASDAQ’s CIO took the stage to brag on their current system, considered the fasted in the industry, which process 150,378 transactions per second.
Digital Entertainment came next, with Java’s integration with Blu-Ray highlighted. Sony’s VP of Operations showed off the menu screen of Open Season, with its fluttering butterflies and moving pulleys. Java’s connectivity also future-proofs Blu-Ray disks, guaranteeing that \”upcoming\” movie trailers really are coming up. Hollywood eagerly seeks Java developers with graphics experience. (I wish they’d spend more efforts on the movie than on the menu and trailers–I endured Spiderman 3’s 2 1/2 hours of plot-thin gratuitous special effects on opening night.)
Green then talked about the upcoming NetBeans 6, which offers dynamic scripting using JRuby and JavaScript, a better GUI builder, and an entirely new editor. He claimed 92% user base growth for NetBeans over the past year. I spoke with Steve Anglin at Apress, and he seemed to corroborate that, that Eclipse has stagnated and NetBeans has all the momentum. He said that NetBeans was \”carving into Eclipse’s market share like a turkey.\” NetBeans 6 will also offer an wasy way to contribute to OpenJDK. Also, presumably spurred by desires to improve NetBeans, Green announced several releases to Java SE to improve desktop Java.
Green then announced a new scripting language: JavaFX Script. He then turned the stage over to James Gosling and Chris Oliver, JavaFX Scripts’ inventor, to explain the what and the why of JavaFX Script. Scripting languages generally focus on a particular application domain, and JavaFX Script’s focus is rich Internet apps on desktop and mobile platforms. Gosling called it \”a way to drive Swing and Java 2D insane.\” Some of the demos had rough spots, but in all it looks like an interesting competitor to Adobe’s offerings in the content-rich space.
Yahoo! then announced Yahoo Go: an attempt to reach users on mobile devices. (About time–I struggle to find useful places to get information on my T-Mobile Dash–I want rapid textual information, not ponderous graphics and popups that warn me that JavaScript is slowing down my device.) They’ve optimized their OneSearch facility for mobile users, so a few targetted results return.
Jonathan Schwartz made his appearance to remind us that consumers drive enterprise IT, reminding us that no one asks the CIO whether they can use Google or Yahoo!. Scott McNealy then promoted Curriki (http://curriki.org), an open curriculum for grades K-12.
Gage wrapped up with a call to everyone to contribute!
Session time. I attended a session on JRuby on Rails by Thomas Enebo and Charles Nutter, both of whom are full-time JRuby developers. The Ruby language is written in C, and JRuby is an implementation written in Java. The Ruby language has no specification separate from the implementation, so its open source has proved essential for the Java implementation. After wading through a quick Ruby tutorial, Enebo and Nutter explained JRuby’s superiority to Ruby:
* Will be faster
* Native-threaded vs green-threaded
* Unicode support
* Compiled (soon) vs interpreted
* Java library support
* Easier to push into the organization
Goldspike is the tool to generate a WAR file from your Rails application, which then can be deployed to any Java Web container. Their future plans:
* Improve Java EE support for Rails
* Port Ruby native libraries
* Use more of the Java native libraries
Next Session: jPDL, by Tom Baeyens
Baeyens explained that Workflows, BPM, etc. all boil down to state machines. JBoss’s jBPM sits on your appserver and supports multiple process languages (jPDL, BPEL, Pageflow, XPDL). These executable process languages simplify specifying states and transitions, and certainly merit more investigation.
Next Session: The Future of the Java Web Tier. The line for this session wound throughout the Moscone Center, so I missed the first part (including the presenter’s name). He focused on Servlets, JSF, REST, Ajax, RSS/Atom, and Phobos:
Servlets 3.0
* Hasn’t changed since J2EE 1.4
* Looking to leverage annotations, make web.xml optional
* Async Support
* Security
* Pluggability
* Alignment–enable JSF 2.0 and REST API
* File upload
* Container-wide def of init params
* ServletContextListener ordering
* Better welcome file support
JSF 2.0
* EoD
* More annotations
* Better defaults
* Eliminate config files
* AJAX support
* Improve component development
REST
* APIs today are too low-level for implementing RESTful web services
* Will provide high-level, easy-to-use API
AJAX–Project JMaki
* Lightweight framework
* Support for widgets
* Usable from JSP or JSF
* Themes
* Java/PHP/Ruby
AJAX–Dynafaces
* Adds AJAX functionality to JSF
RSS/Atom
* Atom publishing protocol soon to be finalized as an IETF standard
* Atom feed format IS an IETF standard
Scripting–Phobos
* Server side scripting using JS
* Runs on Java
* Deploys on any Servlet container
Next Session: JSF and JBoss Seam by Michael Yuan and Kito Mann (http://www.jsfcentral.com)
JBoss Seam sits on top of JSF and attempts to fix its cracks.
JSF: The Good
* Fully component-based web framework
* Rich interaction model
* Integrated validation / input conversion
* Unified Expression Language
* Multiple rendering output from same pages
* 10x the next closest web framework
JSF: The Bad
* Does not follow the Java EE 5 simplified programming model (no annotations, no EJB3)
* Not \”web friendly\” (GET and REST are hard)
* Poor exception handling / error page redirect
* Dependent on Java EE security
* Hard to test outside container
* No support for dialogs or conversations
What is Seam?
* A lightweight framework for Java EE 5.0
* Corrects problems with JSF
* Uses annotations
Seam Features
* Reduce boilerplate code
* Dependency bijection
* No XML Hell
* Integrated ORM
* RESTful URLs
* JSF EL
* Conversations
* JS integration
* Input validation
* Graceful exception handling
* Easy to test
No JSF backing beans
Navigation based on state, not return string
Dependency Outjection: Object exposes objects to container after method has been executed
Bijection = Injection + Outjection
Seam uses Ajax JSF, or you can use Ajax4jsf to wrap JSF components
Uses Ajax for validation, when you leave a field, rather than doing a POST
Seam Gen
RoR-like application generation
Spring integration
PDF generation
CRUD framework
Great first day.