Geek Smithology

October 5, 2005

No Fluff Just Stuff – Calgary 2005

Filed under: Craft of Dev by Nathan @ 11:29 pm

I have been to the mountain. And the future of Java is…Ruby? Perhaps. One of the enduring themes from the Western Canada Java Symposium was that Java is becoming old and bloated (oh, sorry Sun – Java is mature) and is in need of a “rebirth.” There are hard to ignore the parallels to the birth of Java, a subject which people were more than willing to discuss.

Tell me if this sounds familiar “C++ is ten years old. It has become too complex and heavy, and will collapse under its own weight. Java is cleaner.” Well, assign that last sentence to

1
s

and run the following code (in Ruby[1], hardy-har-har) and you’ll get what people are saying now:

1
2
s[/Java/] = "Ruby"
s[/C\+{2}/] = "Java"

During the expert panel, most of the speakers had some interesting ideas (when they weren’t talking about Ruby, that is), including:

Pick 7 great people and ask them to develop the next big thing — Jason Hunter
Adopt the closet clause: don’t add anything without removing something else — Dave Thomas
Java needs to increase the capabilities of the JVM, not just bolt onto the language — Bruce Tate
Deprecate Java – Venkat Subramaniam (only half-jokingly)

First reaction: ouch. Second reaction: true, all true. Let’s fact it, when this many big thinkers in the Java space are converging on some other technology, you can’t ignore it. Java (or more specifically, J2EE) does feel heavyweight and bloated next to Ruby on Rails and there are powerful ideas that other languages, like C#, are adopting. Some people tried to comfort themselves with the “Java will always be around” argument, but hey COBOL will always be around, too. Do you want to be in that boat?

Java is definitely not 0xDEAD, but Ruby is a pretty sharp knife to keep in the block. But enough about greatly exagerated reports of the demise of Java: let me talk about the conference.

First, NFJS was an amazing show with amazing speakers that blew my mind.

Repeatedly.

A key reason I wanted to hit this show was that Dave Thomas was there, and he did not disappoint. My favorite bit of the show was when he sat down at my table for supper on the first night. I had a conversation with one of my heroes[2] about Agile and Ruby and how we need to shift focus away from writing code to adding value. On day two, I had him sign my copy of The Pragmatic Programmer. Pretty sweet.

I had another food moment when Jason Hunter. The conversation was about Sun and open source and Open Office – he was a supremely cool guy. I also chased Bruce Tate down the hall to discuss why the Java community would come up with Struts, a web framework with a heavy object model and scads of XML, while the Ruby community came up with Rails (startlingly elegant in its austerity, the presentation on Rails was a revelation). We basically came to the conclusion that it was because that’s how Sun was doing J2EE. While there are parts of Rails that would be difficult or impractical to replicate in Java, I see no reason why I should have to map a path /login.do to a class called LoginAction; can’t the framework take care of that? I’m sure there are going to be Rails clones for Java, by why did Ruby have to lay the track?

Dave Thomas gave a talk called Open Source Ecosystems where he discussed using some techniques from Open Source on commercial projects. I came away with 2 ideas that I’d love to see implemented at my company:

1) Have developers apply for projects, rather than just grabbing whoever’s on the bench and throwing them into the fray. I think that whis would create a greater sense of ownership and give a team a fighting chance at having a shared vision.
2) Don’t give devs write access to CVS on their first day – they earn it by passing through 3 or 4 code reviews without any significant defects (you are doing code reviews, right?)

Another favorite was Dave Thomas’ talk Herding Racehorses and Racing Sheep where he expressed one of my beliefs: outsourcing is good. If you’re sitting at your desk, waiting for your BA to throw a spec over the wall for you to code, you deserve to be outsourced. You must find ways to add value outside of just your coding skill, and then you’ll always have a job.

Venkat Subramaniam wowed the crowd with a demonstration of AspectJ in Action. I think that Aspects (and AOP) are an incredibly powerful new paradigm, on par with the introduction of Objects and OOP. In fact, Aspects are such an elegant solution to a certain class of problem, that they feel like they should be a first class concept (AspectJ even introduces a completely new syntax for them.) I’m excited to see the first language where Aspects are fully integrated from the start. In the meantime, I’ll keep AspectJ in mind while I’m developing.

Finally, Jason Hunter had two talks I really enjoyed: first was Forgotten Algorithms, where I learned all about skip lists, Boyer-Moore, incrememtal hashing, and the Google Page Rank algorithm. Second was Open Source from the Inside, where he talked about developing Tomcat, JDOM, and life in the Apache Foundation. He made a comment about how we were the truly hardcore crowd because we attended the last session on the last day, and I said “We heard Hunter brings beer to the last session.” Geek laughter was heard and I think Jason might seriously consider it the next time.

At any rate, it was a truly revolutionary experience. Not just the presentations, or talking to the presenters, but it was awesome to talk to other developers about what they’re doing and how they’re doing it. One of the best feelings is “I am not alone!” If the sessions and speakers look good next year, I am guaranteed to be there, and I can’t recommend it highly enough if you haven’t been.

[1] Here’s the Java for the Ruby-impaired

1
s = s.replaceAll("Java", "Ruby").replaceAll("C\\+{2}", "Java");

[2] Like every good dev I know, The Pragmatic Programmer is among my favorite books about the craft of programming

Leave a Reply

 

Powered by WordPress