It’s really funny, honestly, but kids, Java isn’t cool. It hasn’t been cool for a long time.
Slashdot even posted “The Struggle to Keep Java Relevant,” which … wow. Not only is Java not cool, but it’s not even relevant any more. Now, that article is … odd, because “relevant” apparently means “used by people with piercings,” which is an odd metric, but still!
Jonathan Schwartz's Blog: Understanding Sun's Business - Q1 Results:
"Wait, you make money off Java?Yes, it's among the most profitable technology products at Sun - and improving. Java's one of the most popularly distributed pieces of Software on the internet, we distribute over a million Java runtimes a day to users across every OS and geography on PC's. That helps us reach a very broad community of users and, more importantly, developers. We have some exciting news coming up around these distribution volumes - and their value to us, and others."
I'm contemplating the week @ JavaOne while I wait for my flight at the airport.
AJAX/REST
AJAX was obviously a popular topic at the conference. There is a clear consensus that AJAX is cool, gives you the appearance of rich client capabilities, but is still hard to do well. A number of speakers pointed to bugs in various Google products. The point being, is that the Google brain trust does AJAX very well and even they run into problems. JavaScript features are uneven across browsers, so this has lead to a wealth of vendor server side "Frameworks". Frameworks that try and solve this problem. There seems to be dissagreement as to weather or not this is the way to go... See the JackBe/Sun discussion.
Representation State Transfer or REST popped up in a number of talks... Simplicity and leverage of the standard Web infrastructure are it's primary benefits, but a big drawback is that it is not discoverable... although there is work being done in this area.
XML
XML processing continues to receive improved support..... Mark Reinhold gave a brain dump of his thoughts on how XML can be made "native" to Java in Dolphin.
Back To Basics....
JEE - The Java Enterprise Edition version 5 has made good use of Tigers annotation capabilities and lessons learned from the Spring Framework and simplified the EJB specification considerable. Some would still say it wasn't enough and that Spring's POJO model is still the way to go.
SOA - Although vendors continue to introduce products that support all the latest standards and clain "Buzzword" compliance, there is an undercurrent of chatter from attendees that "things" are overly complex... The S in SOAP stands for Simple, but anyone who has read the WS-* specifications can attest to the fact that the Web Services space seems to be spiraling out of control. There were a number of well attended talks in the REST space and mention of WOA as a simpler more scalable alternative to SOA.
Participation
Finally, there was a continuous call for participation of individuals in the JCP. Doug Lea, spec lead for JSR 166, was called out as an excellent example of how individuals can have large impact on the language and platform.
I finally listened to the Oracle Keynote from yesterday... Oracle is excited about the Java persistence API specification. Surprise, surprise! The demoed the JPA from within JDeveloper. Point and squish as the saying goes. Thomas Kurian went on to discuss Oracle's concept of a Service Fabric. Basically a Service Neutral, transport and protocol independent infrastructure on top of the Spring Framework. Hmm, sounds like something that Grahm Glass, founder of Minda Electric was working on before his company was aquired by WebMethods.
So here is today's annotated schedule.09:45AM |
It's Not Over Till the Fat Client Sings - An interesting take on why AJAX is a poor mans substitute for a good Swing Application. I don't entirely agree, but AJAX has it's issues and Sun has been polishing Swing for some time now. There is something to be said for working in a less than ideal application (Browser) that has 100% desktop penetration versus an environment that is significantly lower (Java @ 60% if you believe Sun) |
11:00AM | Java Technology, AJAX, Web 2.0 and SOA - a buzzword compliant industry panel. |
12:15PM | New Compiler Optimizations in the Java HotSpot Virtual Machine - I always like to stay on top of the new plumbing, especially in terms of performance. This talk is always worth it. |
01:30PM | Desktop Patterns and Data Binding - not what I expected... Just an esoteric discussion on Swing and pure implementation strategies of the MVC pattern. |
02:45PM | Extreme GUI Makeover: Lookin' Better - This talk is always excellent. The presenters take a how-hum user interface and do an extreme make over using the latest UI techniques... Always cool. The slides don't do it justice. You need to see a demo of the application, before then after. |
04:00PM | Practical SOA Business Integration using OpenESB - A "How To" session on the use of OpenESB. Nothing special here. |
07:30PM |
Discovery and Dependency Injection Patterns in Modular Architectures - Discusses the NetBeans Lookup Library. The presenters kept calling it dependancy injection, but I thought it sounded more like a modified Locator Pattern. Martin fowler has a nice write-up about Dependency Injection and the Locator Pattern. |
08:30PM |
Memory Leaks in Java Technology-Based Applications: Different Tools for Different Types of Leaks - Excellent talk on this subject by Gregg Sporar. He has promised to post a writeup of this talk on his web log in the comming weeks. |
09:30PM |
JSRs 236 and 237: Concurrency Utilities for the JavaÃ'™ EE Platform in Practice - This is basically the adaption of JSR 166 Concurrency Utilities to Java Enterprise Edition. I had particular need for this capability while at a Power Utility client awhile back so I've felt the pain. I'm happy that they're working on this. |
10:30PM |
Database Refactoring: Enabling Evolutionary Database Development - I ran out of gas before attending this one. I'll have to pickup the book;) |
- 8:30AM Oracle General Session (missed)
- 9:45AM Java EE BluePrints for AJAX-Enabled Web 2.0 Applications. If you have to start out by explaining Web 2.0 and AJAX to your audience you've wasted time in getting to why we were all there. The BluesPrints!
- 11:00 AM The SOA Programming Model. Basically a run through the Service Component Architecture (SCA). This seems targeted for big enterprises... Another acronym to help product vendors push product.\
- 12:15PM Spring Framework Update. A lot of excellent work by Rod Johnson and his team has gone into Spring 2.0. Too bad they couldn't get it out the door by JavaOne. But should be ready any day now.
- 01:30PM Integrating XML into the Java Programming Language. Any time you can attend a talk by Mark Reinhold you should. He never disappoints.
- 2:45PM JUnit4 and Java SE5 Better Testing by Design. Kent Beck is also a great speaker. He's not very dynamic, but his presentations come from a depth of experience... Especially with design. Loved his point about unit testing. Roughly paraphrased as "If it's hard to construct a test, there is probably a problem in the design."
- 4:00PM The Java Memory Model: The Building Block of Concurrency. Bill Pugh has been the champion in this area for years. I've been attending this talk each Year at JavaOne since I read both editions of "Java Concurrency in Practice" by Doug Lea. Any person trying to write concurrent code should attend one of Bill's talks, read Doug's book and please please please use the standard Java concurrency toolkit java.util.concurrent.
- 5:15PM BEA General Session
- 7:30PM Birds of a Feather (BOF) "The Collections Connection" with Josh Bloch. Josh is the author of "Effective Java Programming Language Guide". Anyone programming in Java should read this book.
- 8:30PM Implementing High-Performance Web Services with Next-Generation Java Technology API's
- 9:30PM Designing Elegant Desktop Applications. This was an extremely cool talk. The presenters walked through advanced GUI technique's using Swing.
- 10:30PM XMLBeans 2.1: A Java Technology Developer's Perspective - This new release adds the standard DOM interface to the framework. Now you can manipulate an XML document with either XMLBeans or DOM and switch between them either while operating on a single document. Nice!
I have to admit that I surfed a few sessions today. Basically there were a number of interesting session running concurrently so I started with the most interesting and sometimes cut out to catch the tail end of another....
Here are a few:
This is not an example of stunt acquisition!
I then expected Mark to announce a new BEA product that would address this... or at lease reposition an old one. But to my supprise, he announced that BEA will formally begin to support a set of Open Source Frameworks. The Spring strategic partnership is the first strategic anouncment.
BigDecimal is, by default, unlimited scale. This could cause unexpectedly long string representations of floating point numbers to be transfered. There is virtually no impact when moving from simple types to complex type When only a small amount of xml needs to be processed in a large document, use XML attachements. Error codes perform better than SOAP Faults. If your going to be throughing alot of SOAP faults, consider using error codes instead.