Busy Java Developer: Stop, Look, Listen and Live

Posted on May 14, 2008
Filed Under development | 4 Comments

Back in the seventies, the “Stop, Look, Listen and Live” UK campaign was used to teach kids road safety. Funnily enough, the Green Cross Code Man, who became the face of this road awareness campaign, went on to become Darth Vader!

It is now time for Java Developers to Stop, Look, Listen and Live! The climate is changing. Java the language is entering middle age. Java is not the first language that developers are picking up. These days when I talk to young non-Microsoft developers, a lot of them don’t know Java and have no plans to learn it either. Dynamic and functional languages are on the rise. The web IS a viable platform for business. More and more applications are moving out of datacentres and into the clouds. Since Java 1.4, the interest shown by experienced Java developers suggests that are not focussing on Java the language. A lot of Java developers have not developed against Java 5. Even less against Java 6. As a Java developer, do you know what’s coming in Java 7? Do you care? Do you, Mr. Busy Java Developer, really care? If so, here’s a couple of things I reckon you should, if you haven’t already done so, think about this year as a Java developer.

The Three Gees: Groovy, Grails and Gant. Groovy is a dynamic language for the Java Platform. In short, building on top of Java, it injects a degree of flexibility in the way Java-based software systems are created and continue to evolve. As a Java developer, you are seriously missing a trick if you do not have Groovy in your toolbox.

Grails is damned fine web framework. The Grails/Groovy pairing brings the same advantages to the table that Rails/Ruby does. Now I’m a big fan of Ruby, for the busy Java developer I think that JRuby/Rails/Ruby is more of a distraction than the Grails/Groovy option. Groovy’s support for Java frameworks such as Spring and Hibernate are too good to ignore. Also, if you already know Groovy, Grails is a no brainer. In fact, at the Java Web Frameworks Tournament 2008, Grails made it into the semi-finals. Not bad…JRuby on Rails won :-)

Finally, we move onto Gant. Which is like Ant but the language is Groovy not XML. With Gant plugins for Maven 2, your build options are trivial. The only real contender to Gant is Buildr which is a damned fine Ruby based build system for Java applications. Again, the trade-off for simplicity in the Busy Java Devleoper life is, if you keep to the Three Gees, you’re covered. Otherwise, you have another build system to learn and require all your developers to know Ruby.

Scala: This is a newbie on the language scene that has been bubbling away since 2001. However, like Groovy it integrates with Java beautifully and provides a nice mix of object-oriented and functional to bring yet more options for solving a differ class of problems for Java developers. For the Microsoft people out here, Scala implementations also integrate with the .NET platform. In this era of distributed computing, scalability and component based development Scala arms the Java Platform with some great tools for addressing these problems. And again, for the Busy Java Developer whose bread and butter is the Java Platform, you cannot afford not to be aware of how Scala may fit into your world. Word of warning, Scala is not for the lazy or faint hearted. You need to put some time into this language before you start reaping the benefits!

Spring Source Application Platform: EJB 3.0 is alive and kicking. EJB 3.0 is a great platform. EJB 3.0 is not future. EJB 3.0 will never be mainstream. After the non-sense of EJB 1.0. The constant public pounding by Roger Sessions @ ObjectWatch (Poor Ed Roman). The rather feeble attempt of EJB 2.0 to rectify the shortcomings of EJB 1.0. The industry couldn’t and didn’t wait for EJB 3.0. Now if we could wind back the clock say 24 months and re-branded EJB 3.0 as HellFire 1.0, there would be no such thing as Spring Source Application Platform. EJB 2.0 created the market and effectively stepped out the race by giving us such long lead times. The guys at Spring have capitalised on this massive window of opportunity and have produced something pretty cool. However, not all is great. They have rather naughtily upset the OSGi people, in particular Peter Kriens. Hopefully, they’ll change fall into line for the good of the community.

I like your Bundle!: This leads us nicely onto OSGi. If you haven’t heard about this as a Java developer, where have been? Please, please, please, add it to your list of things for this year to pick up. It a must. Have you never wondered how Eclipse manages the lifecycle of its components? How you can upgrade stuff easily and without a restart. No messy classloaders. Define, package, deploy, stop/start and manage your components. Side-by-side deployments of versioned components. Essential for 24/7 Java applications. This is OSGi. The guys at Spring have created a Bundle Repository that makes the use of OSGi simple.

Domain This, Domain That: Not essential but an important thing to know about. Domain Models, Domain Driven Design (DDD) and Domain Specific Languages (DSLs). When you start thinking about the Three Gees, Scala, OSGi and so on, how can you do that without a domain model. The DDD is an approach to domain modeling, where DSLs are way to facilitate human to machine communication that invariably operate within the context of a domain.

Right, I’m exhausted. Everyone gets busy. It’s easy to be left in the trenches and not have time to step back and take a long look at what is going on around you. I’ve suggested a couple of things that I think are useful. You probably have more. If so, please leave a comment…

Comments

4 Responses to “Busy Java Developer: Stop, Look, Listen and Live”

  1. Wei Ling Chen on May 15th, 2008 3:27 pm

    Hi,

    My name is Wei Ling Chen, I am the community content coordinator for DZone.com. Our Zone Leader James Sugre and I both read this, and thought this article was the best we’ve seen this week. We’d be honor if you give us permission to repost this on our Javalobby, java.dzone.com.

    Please shoot me an email, I look forward to hearing back from you soon.

    Wei Ling Chen

    Community Content Coordinator, DZone, Inc.

    Phone: 919-678-0300 ext. 105

    Email: weiling@dzone.com

    AOL/MSN/Jabber: weiling@dzone.com

  2. Steve on May 15th, 2008 7:59 pm

    Great post. I couldn’t agree with you more. After attending Java One this year it seems like this was one of the underlying themes of the conference.

  3. Merlyn Albery-Speyer on May 20th, 2008 10:27 am

    Stimulating stuff!

    +1 Java 6+ irrelevancy
    +1 Groovy – we’ll see an explosion of versatile groovy-based APIs in the next year I bet
    +1 Grails for CRUD web apps
    -1 Gant – I don’t think Gant offers enough over Ant. I think we’re still looking for the ant alternative. To win out a build system needs to be JVM based (i.e. not Buildr unfortunately) AND intuitive to use (oops Maven). Gradle might pan out, but I think the winner has yet to come.
    -1 Scala It doesn’t have any of the lure that Haskell has, nor any of the uptime or scalability foundations of Erlang. I’ve tried to get into it but it doesn’t grab me. That’s bad if even 10% of others feel the same way.

  4. Merlyn Albery-Speyer on May 20th, 2008 10:28 am

    +1 Domain Driven Design – a reminder that OO is hard to get right, and that it’s all about clear communication

Leave a Reply