"Java's more relevant than you think" - enigmastation.com

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!

From the "Who'd a Thunk It" Department

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."

2006 JavaOne Conference - It's a Wrap

I'm contemplating the week @ JavaOne while I wait for my flight at the airport.

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 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.


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.

DayThree @ JavaOne

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;)

DayTwo @ JavaOne

Jet lag is a cruel thing... I missed the Oracle Keynote this morning. I Will have to catch the web cast of that one first thing tomorrow morning. JavaOne is relentless. This is a busy day, like yesterday, but without the jet lag. The last session I plan to attend is the "XMLBeans 2.1 Java Technology Developers Perspective" which ends at 11:20 PM.

Sooo... here is the annotated schedule:

DayOne @ JavaOne

No sign of Scott McNeally today, Sad... I loved his bravado and humor. I attended the first JavaOne conference in 1996. It was like attending Woodstock. There was an incredible amount of excitement and anticipation for the platform and Scott set the tone for the week. Jonathon Schwartz is a sharp individual, but doesn't grip the room like Scott can. I know this sounds like superficial rumination, but can't help voicing my first impression of the keynote...

Anyway... on to some "real" information... This is the largest JavaOne ever, exact numbers have yet to be announced. The conference definitely feels much more crowded than last year, but it's hard to tell if there are significantly more people or that it is just due to the new requirement to register for a seat for sessions. Waiting to get in seemed silly. Event managers held up attendees while the previous session cleared. This led to long lines as people waved their RFID badges on the way in and get the green light to enter.

There is a definite push to get individuals involved in the JCP. This was repeated several times in several sessions. Maybe Sun hopes it'll feel more like open source if more individuals are involved in the JCP.

Motorola CEO Ed Zander arrived to push his cell phones and announce that Java is "the platform" for motorola's phones going forward. The industry will ship 1 billion Java devices this year with motorola shipping 2oo million of them. Ed also announced motorola's participation in the NetBeans project. In fact there were a number of announcements around new membership in the NetBeans develop community. Seem's that Sun has put a big push behind getting NetBeans viewed as a viable platform against Eclipse.

Changes in licensing were announced to allow Linux vendors to include Java as part of there distribution. In fact, shwartz stated that 60% of the PC's sold today include Java out of the box and Sun is pushing hard, working with PC vendors to include Java on their platforms.

One of Schwartz's first acts as CEO was to bring back Rich Green as Excutive Vice President of Software. Schwartz brought Green on stage and immediately asked the question.... "Are you going to open source Java?". Basically, after some banter, Green said It's not a question of When Java will be open sourced, it's a question of how."

JavaOne: A Session Surfing Day

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:

  • TS-3513 Think MDBs Are Only for Java Message service? J2EE Connectors Demystified.

    This one would have probably been interesting if the speaker was intelligible. Incomprehensible, English as a third language

  • TS-7659 Runtime Aspects with JVM Support.

    This was an incredible session and I'll post more about it in a separate entry

  • TS-3268 Java Technology Performance Myths Exposed.

    Very informative presentation. Basically, the new JSE 5.0 features have no appreciable impact on performance... so use them. Object pooling only makes sense for very large objects that require long setup. Multi-core chips will shift some of the performance issues to lock management and require much more synchronization then most developers would expect.

  • TS-7849 Omnisicent Debugging

    A technology more for retrospectively stepping through a program run and inspecting memory. This works by instrumenting applications and recording each execution step and all memory state changes. Interesting, but sounds really slow.

  • TS-7212 Clustering, Consistency and Caching: An Implementor's View of JSR 107

    Thought this would focus more on clustering, but actually focused on caching so I bailed on this one 1/2 way through

  • TS-1073 The New Weblogic Server 9.0

    Interesting but basically a laundry list of features expected in 9.0... Think quick fly over a city, but I would have preferred a walking tour.

  • TS-7725 Java EE Ease of Development: Platform Specification and Tools Perspective

    Basically just a walk through a number of tools and how they currently support Java EE development... no insite here so I bailed and walked over to the next talk.

  • TS-3281 Finalization, Threads, and the Java Technology Memory Model

    Incredibly complex, but interesting. The bottom line here is "avoid finalizers at all costs!"

  • BOF-9385 Apt Usage of APT: When and How to Use the Annotation Processing Tool

    Compared APT to other templating tools. I walked away feeling that APT needs more work. Can't wait till this is standardized though.

  • BOF-9467 Latest Trends in Java Technology Management and Monitoring

    Waste of time... the latest trend in management and monitoring???? use JMX. I didn't need a BOF to tell me that.

  • BOF-9161 Exploring Annotation-Based Programming Through the APT and Mirror API's

    Great talk on APT usage and upcoming standardization. The BEA guys also demonstrated Eclipse support. Annotations will be real useful in a few years;)

  • BOF-9441 Practical Application of Aspects in Everyday Development

    Interesting talk about some uses of AOP. Also points out that AOP will be really practical and useful... in a few years;)
  • JavaOne: Heard at Scott McNealy's General Session

  • The most attended session on the first day of JavaOne was Java Business Integration: A Foundation for SOA
  • Sun purchased SeeBeyond this morning. Scott McNealy stated:
    This is not an example of stunt acquisition!
  • Java owns the Mars Lander market.
  • It's taken 10 years to achieve 1 billion Java smart cards on the market, but it's expected to reach 2 billion within 3 years.
  • Brazilian HealthCare has standardized on Java for the nations healthcare systems and has written 2.5 million lines of code in 4 months
  • There are 4.5 million Java technology developers and 550 user groups and 912 Java Community Process program members.
  • JavaOne: BEA Embraces Spring

    While attending BEA's general session yesterday, I fully expected that I would hear all about the proprietary features that differentiated Weblogic from the rest of the J2EE container crowd. Of course that's part of what I heard, but Chief Technology Officer Mark Carges also discussed issues that Enterprise developers have been struggling with since J2EE was first released. Mark, pointed out that the Open Source community is pointing the way to a kinder more gentle J2EE development strategy. Features like:


  • POJO - Simplify enterprise development by using plain old Java objects.
  • Dependency Injection - Support for inversion of control, where the container provides the resource instead of requiring the component to wire the resource in. Dependencies are resolved declaratively, simplifying code and unit testing. Supports test driven development.
  • Meta Data - The ability to leverage annotations for inline meta data to avoid seperate XML descriptor file proliferation.
  • AOP - leverage Aspect Oriented Programming to support seperation of concerns and simplify implementation of cross-cutting concerns.

  • 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.

    JavaOne: Heard at BOF-9213 Writing Performant WSDL

  • 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.