Martin Gladdish

Software 'n' stuff

Dipping My Toes Into Scala

One of the common threads of the Java conferences I’ve been to recently has been about what’s next for the Java platform. A significant majority of the speakers seem to think that the future really lies in other languages on top of the JVM. Quite a large part of me thinks that they may be right. Features introduced in Java 5 had quite a detrimental effect on not only the readability of the code (generics, I’m looking at you), but also its transparencey (autoboxing is evil and pointless).

So, I’ve dipped my toes in Ruby and, apart from the toe-curlingly embarrassing fanboy support, really can’t get on with dynamic types. I like defining a contract for my method, along with what sort of things it accepts and what sort of thing it returns. So, Scala may well be the next language I’m looking for. My appetite was first whetted by some of the talks at No Fluff Just Stuff last year, and again by Ted Neward at QCon this year. Unfortunately, Ted’s still yet to make his slides available on QCon’s site, but there is an article on IBM’s developerworks site with the same title as his talk; The busy Java developer’s guide to Scala.

To that end, the first thing to do is to get a text editor that recognises the syntax. My IDE of choice, IntelliJ, won’t have Scala support until version 8 by the look of it, so it’s back to my text editor of choice, TextMate. Sure enough, after 2 minutes of punting around the net, I find that this kind soul has put together a TextMate bundle to add Scala syntax highlighting and a few shortcut keys.

OS X Leopard Is Here

I’ve just taken the plunge and upgraded my favourite toy to OS X 10.5. All looks good so far, except the caps and num lock keys are inverted. So, I’m typing this with the eerie green glow from the caps and num locks :( There’s a post on the apple gazette where someone else has had the same problem. I’m hoping that the first set up software updates will sort this out.

Update: The software updates fixed it :)

QCon 2008 Session: Erich Gamma on Eclipse

I was really looking forward to hearing Erich talk - he’s one of those names that’s been thereabouts in the Java space for a long time and has done a lot of widely appreciated work. I ended up disappointed though. It was interesting to hear about how the Eclipse development team was organised, but his presentation was vague and lacked focus. Where it picked up though was when he started talking about his latest project, Jazz. Now, ignore the silly name1, and it looks like a seriously interesting bit of software for helping keep track of a development team’s processes. The nice example he demoed was adding a new member to the team. From the “welcome” email, Jazz appeared to set up that user’s svn account and also grant them read-only access to the repository. When the new developer attempts to commit, his changes aren’t sent to the repository, but are sent via a workflow to other members of the team to audit his change. The process didn’t seem quite as slick as that - you had to do something like ‘send’ changes in to the workflow rather than it being fired directly by, say, subversion’s pre-commit hook mechanism, but I like the idea. It looks doubly interesting when your dev team is as distributed as Erich’s. I’d be interested for my team because I find it hard enough to keep track of what people are doing on the next desk, nevermind on the next continent. Throughout Erich’s talk, though, I couldn’t help thinking about all of my issues with Eclipse. Yes, I think it’s about the best open source Java IDE out there, but it still has clunking usability problems and the combination of plugins required for useful web development is still far too fragile. Are there any Eclipse users out there who haven’t had Eclipse just stop working and require a clean install to get it working again?


[1] and it is an insultingly stupid one - it makes me cringe. See the dumb marketing intro for yourself:

Developing software in a team is much like playing an instrument in a band. Both require a balance of collaboration and virtuosity. Jazz defines a vision for the way products can integrate to support this kind of collaborative work, and a technology platform to deliver on this vision.

Who the hell comes up with this stuff?

QCon 2008 Roundup

I’m digesting my first attendance to a QCon conference. Overall it was a positive experience. I feel as though I know more now than I did at the start of the week, and am fired up to investigate a set of technologies that I wouldn’t have otherwise pushed to the forefront of my mind. So, for the core reasons for my attendance, it’s been a success. The bad news is that I’ve got mixed feelings on the success of the conference as a whole.

It was let down by some organisational silliness and the quality of the speakers was mixed, to say the least. I’ll go in to each session in more detail in subsequent posts. First off; the organisation. If you say you’re going to provide breakfast, then do so. I arrived on the first morning only to find that breakfast meant biscuits and coffee. I’d rather the organisers hadn’t claimed to lay on breakfast - at least I wouldn’t have had to dash across the road to get something to eat, hoping not to miss the start of the first talk. Food seemed to be a common problem; lunch was served in the exhibitor’s hall which in itself would have been fine, if there’d been anywhere to sit with your plate. Instead, everyone ended up perched against exhibitor’s stands, sitting on the floor or clutching a plate whilst standing in the middle of a room with everyone else pushing past. Not good. So then, on to the talks.

I think one of the biggest problems was how the talks were pitched. The talks that were most disappointing were those with a nebulous title; “Beyond Agile”, “Characteristics of next generation application servers”. It must be one of the hardest things to get right about a session though - there’ll be such a spread of attendees to a conference like this that there’s bound to be, for pretty much any subject you can name, a bunch of experts and complete newbies. So, for example, I turned up to the “Beyond Agile” talk expecting to be introduced to new techniques that led on from the agile methodologies. That absolutely was not what the talk was about though, and so I learned nothing by attending. In contrast, Ted Neward’s talk titled “The Busy Java Developer’s Guide to Scala” explicitly pitches the level of the talk - if you know Scala already, this isn’t for you - and so I got a lot out of it.

There were typically 6 concurrent talks, split in to themed ‘tracks’. One of the biggest problems was the introductory talks for the track; they were a complete and utter waste of time. So, with the combination of this useless intro talk and yet more elongated breaks, there was a whole hour between the end of the first talk of the day and the start of the first session with any content. This added up to a feeling that the pace of the conference was very slow. Given the quality of the talks was so lumpy, I was left with the distinct impression that most of the sessions were chosen because of who the speaker was, rather than what they’d got to say. I don’t know how talks are chosen for the conference but I think the process needs quite a bit of work. The ratio of good/bad talks I attended over the three days felt about 60/40; that’s quite a few duff talks.

A Good Read

I picked up a copy of Michael Nygard’s Release It! today on a recommendation from Ted Neward. I got as far as chapter 3 tonight and would recommend the book to anyone already. If there’s nothing in the rest of the book, the first two chapters describe an excellent example of a fairly innocuous-looking exception handling bug resulting in seriously expensive application down-time.