Martin Fowler, live in Melbourne

madlep

Last Friday I attended a packed breakfast seminar to hear Martin Fowler speak. The event was put on by Enterprise Java Australia. After filling the original venue, it was moved to Melbourne Town Hall. All up there must have been around 300 people who dragged themselves out of bed early to eat bad food, drink bad coffee, and sit in uncomfortable chairs for 2 hours to hear Martin speak.

Disclaimer - the following is all based on my early morning, caffeine-deprived memory of the talk. Any resemblance to actual events or persons alive or dead is purely co-incidental

The event was titled “Software Design in the 21st Century”. Martin started by explaining that this was an intentionally vague title that would let him talk on whatever he felt like on the day.

Java’s Progress for the last 10 years

The talk opened with Martin talking about how far Java has brought us over the last 10 years (in spite of any short comings, which were discussed next…). Both in terms of the language and platform, and in terms of the greater community.

  • Don’t have to worry about memory management and related bugs anymore
  • Dynamic open source community, especially when compared to .NET land
  • Test driven development has been embraced
  • Solid platform to develop on - as in the actual Java VM

Java’s Weaknesses

Martin then did a round up of the audience to get the perception of pain points in Java, (and added a few of his own).

  • J2EE in general, EJB in particular
  • J2ME. Tired of "Starting Java…" on mobile phones for little added functionality
  • Unnecessary XML overload - configuration files, data transfer
  • Date/Calendar API
  • Lack of any currency support considering how many financial applications are written in Java
  • Lack of advanced features like closures
  • Applets
  • J++ fiasco and resulting souring of Sun/Microsoft relations hurting Java in the browser.
  • Swing
  • Multi-threading. Or rather the fact that "Only 5 people in the world actually understand concurrency" and "A license should be required before developers are allowed to create new threads"

Java’s near future

Martin said he didn’t claim to be a futurist, and preferred just to talk about recent and current trends and only look at the near term. This was the bulk of the talk, and was the most interesting section.

  • Java as a language will decrease in importance, while the Java VM as a platform will increase as it becomes more common for other languages to run on it (eg JRuby). Applications will only write the core code in Java, and use more productive languages for the implementation layers where most development time is spent.
  • Concurrency will become more of an issue on the desktop as multi-core systems become more common. This will be less of an issue for backend server development as developers are already used to developing logically segmented, shared-nothing systems to increase thoughput anyway. Languages like Erlang running on the VM may help with this
  • Java frameworks with the Rails philosophy of narrowly defined scope and high productivity will emerge as developers tire of the complexity and overhead of general purpose, complex frameworks such as Spring and J2EE

All up an interesting talk. Nothing ground breaking, but most of it fitted with my thinking on Java’s direction - especially the discussion of Rails type frameworks, which is exactly what I was getting at in my last post on JRuby Can Save Swing.

I expected Martin to be American for some reason, he’s actually English.


Leave a Reply