JavaOne, DayOne
Originally posted 2005-06-28 09:22:37
I missed the book signing. By the time I got off the plane, got my bag, and took a shuttle downtown, it was 11:20. I was scheduled to sign until 11:30, so I gave up, found my hotel, checked in, showered, changed, and headed for the Moscone Center.
Clutching my bar-coded registration form, I stepped up to a registration screen . . . which displayed a Microsoft OLEDB error. Hmm. The friendly Sun helpers reset the browser, which was running on Mozilla on CDE (which is still ugly), presumably on Solaris, so I don’t understand how MS OLEDB wedged itself in there. I didn’t spin many cycles fretting about it, though, and scanned my form, got a badge, strolled across the street, and got my free backpack and conference materials. It’s a geek-lovers backpack–lot’s of compartments, lots of storage space, and a big Java logo on the back.
I met up with my coworker, who was smart enough not to fly Delta, and he filled me in on the general sessions I’d missed. He said the sessions were heavy on SOA and JBI, which was a new one on me. He also said Sun announced they were open-sourcing their application server, and spoke of a desire to open-source all their Java stuff. It’s a whole new world out there.
We ate lunch (thanks, BEA!), walked around the booths, and spun Sun’s wheel of fortune (I won a calculator shaped like a calculator–another regift for another child). While I was waiting in line to spin the wheel, a TV camera paraded through the pavilion floor, followed by none other than Scott McNealy. A few people later, James Gosling himself walked through, dragging the cuffs of his jeans behind him.
We also popped up to the bookstore (15% off every title!), where I tried to reschedule my book signing. No dice–they’re, um, booked. I did finally purchase Refactoring, which I’ve been meaning to do for awhile. I also bought Joshua Bloch and Neal Gafter’s new book, Java Puzzlers, and snagged the last copy of Joel Splosky’s new book, The Best Software Writing I. If my wife is reading this: Honey, I showed much restraint. They had lots more books that I reluctantly left behind.
I then headed to my first technical session, \”What’s New in Eclipse.\” The opening slide said, \”What New in Eclipse,\” but we’ll forgive them for contracting the contraction. Ironically, however, the minor error in the title portended a session-title mismatch. From the title, I anticipated that the session would focus on new features of Eclipse 3.1 from a Java development perspective. I hoped to walk away from the session with scads of tips, tricks, and techniques to code faster in Eclipse. I’ll have to go search the Eclipse \”what’s new\” documentation to uncover that, however. This session instead would have better borne the title, \”What is Eclipse, what are Eclipse plugins, and what are some of the plugin products being built on top of Eclipse.\” This topic also merits interest. I just wish the session had been appropriately titled, to properly set my expectations.
Some of the plugin projects discussed:
- Business Intelligence and Reporting Tools (BIRT)–this seems to play in the same space as Crystal Reports.
- Mylar–promises to filter Eclipse views to prevent information overload, changing views dynamically according to context and according to what Eclipse thinks you need to see. This sounds very cool, assuming it works well.
- Web Tools–I wish someone could explain to me, in a way I can understand, where the line is drawn between this and full-blown \”web development\” Eclipse-based tools like MyEclipse. I mean, how does WTP add value without supplanting MyEclipse? I’ve got some research to do. See this for more information.
- Parallel Tools Platform–those wacky physicists in Los Alamos are still at it, using FORTRAN, parallel processes, and parallel machines to do things I’ll never understand.
- Eclipse Communication framework
- Higgins, the Trust framework
Mike Milinkovich also let slip that a press release either had appeared, or would appear within 24 hours, announcing a JavaServer Faces project proposal. Hmmm . . . there’s one difference between MyEclipse and WTP.
After the Eclipse session, I hooked up with Steve Anglin from Apress. I’d never met him before, so it was good to put a person with a name. I learned he’s not bashful 🙂 We talked shop for awhile–state of the industry, what Apress is coming out with, etc. Frankly, the titles in the Apress pipeline sound exciting. I’ve got to find more time to read.
While we spoke, Gary Cornell came by, crowing about the impending arrival of a boxful of Pro Hibernate 3, hot off the press. The books arrived and assumed a place on the bookstore shelves, sneering at all those obsolete Hibernate 2 books from other publishers.
My younger sister used to say, \”Once is funny, twice is old, and three times is a whippin’.\” Or something like that–I’m not sure where she got it. Anyway, geeks seem to lack the switch that triggers when enough is enough. I went to The Hitchhiker’s Guide to SOA, and every other slide seemed to define SOA concepts in terms of Douglas Adams’s book. Sadly, I’d forgotten my paddle. The content was interesting, however, and now I know that BPEL is pronounced, \”bipple.\” I wouldn’t have minded a stirring rendition of Back in Black during the discussion of ACDC, but I realized that my sense of humor didn’t mesh with the presenters’. I missed the actual difference between ACDC and BPEL (something about ACDC does the heavy lifting, and BPEL doesn’t do real work–except that BPEL is a programming language, written in XML, that processes things–which sounds like work to me). The Business Process Modeling Notation (BPMN) works into the equation as well, helping people to visualize the whole BPEL/ACDC/SOA flow.
As I rushed to the next session, I passed by the book signing station, and saw Joshua Bloch and Neal Gafter. I couldn’t miss that opportunity, so I hoisted my copy of Java Puzzles onto the desk, genuflected (not really, but Effective Java taught me so much that I was tempted) and got their John Hancocks. Surprisingly, they weren’t toting copies of my book, awaiting my signature.
The next session I attended explained why XML processing kills performance. The presenter compared a server stuck processing XML to a jammed shredder. Key points:
- Understand the whole XML processing pipeline, not just parsing: schema validation, XPath filtering, XML decryption, signature verification, et al.
- DOM allocates, garbage-collects, and traverses lots of objects, manipulates lots of strings, calls many small methods recursively, relies heavily on invokeinterface, branches without good predictability, thrashes caches, and possibly swaps heavily. Avoid it if at all possible
- The most efficient XML representation is probably byte[]
- Avoid touching XML directly
- If you must touch, touch only the headers, and only once
- Use the right API for the task
- Maintain a bias for JAXB
- Avoid extensions
- Use coarse-grained APIs
- Avoid synchronization
In every session, hundreds of cell phone camera flash bulbs pop each time a new slide appears. Everyone must be compensating for the lack of handouts.
We skipped a session to eat dinner, which turned out to be a bland cheeseburger and fries from some corner grill. Disappointing. Then, my coworker and I trooped to the evening/night Birds of a Feather sessions. I slipped into the session on Glassfish, Sun’s work-in-progress open-source application server. The Glassfish team talked about their work and plans, and then endured pillories from the peanut gallery (\”You didn’t put any code from that awful iPlanet into Glassfish, did you?\”). As we filed out of the room at the end of the session, Glassfish reps handed us each a Glassfish T-shirt. Aaaah. There’s nothing quite like a nerdy free T-shirt. Curses on them, though–now I feel compelled to stay to the end of every session in hopes of another goody.
I found myself too tired for another session, since my East coast self felt like it was long after midnight, so I slinked back to my room. After reviewing the rest of the night’s schedule, however, I abandoned my plans to retire, ate some chocolate, and headed back to a session called \”Writing APIs that Stand the Test of Time,\” presented by two people from the NetBeans team. Some key points:
- Employ use case driven API design–make sure the APIs you build align with a use case
- Don’t expose more than you absolutely have to
- Use package private classes
- Optimize the API for 90% of your users
- Never add methods to a published interface
- Think about future evolution
Despite the late hour, folks filled the room beyond capacity. Perhaps late-night attendance will peter out over the week, but at this stage people are drinking in the sessions.
Sun has done a tremendous job. Facilities are top-notch, food is plentiful (Quest provided free soft drinks, chips, and Oreos all afternoon), and the sessions are interesting. The place teems with Java developers (I heard 15,000–wow). A good first day!