Skip to content

Toys, Tools & Petrie Dishes

In my opinion there are three kinds of programming language.

  • Toys: Languages that were designed by one person to scratch an itch or serve particular purpose, no more. Ruby was designed by Matz for programmer happiness. C was designed by Ritchie so he could port that Space Invaders OS to a different machine than the PDP/10.
  • Petrie Dishes: Usually designed in academia as a language to experiment with language design ideas. Haskell was designed to be the canonical lazy, pure functional language. Scala is an experiment in type systems.
  • Tools: Designed for serious business, dammit. These are meant to be used to build big important pieces of code. C++ evolved from C for better simulation implementations. Java was an easy to learn language for portable binaries.

Like biology and all other taxonomies, this is of course a flawed generalisation. It’s also incomplete. I know that Perl 5 is a toy, but what’s Perl 6 (apart from vapour)? Is it a tool? Or something else entirely?

Setting aside these issues, I have a personal statement. I want to learn and learn from Petrie Dishes; I want to use Toys for my day to day work and experimentation; I want to stay as far away from Tools as I can manage.

A Talk on Seph

ThoughtWorks‘ resident language inventor Ola Bini will be visiting Sydney in September. Ola is one of the four committers on the JRuby project (now the fastest Ruby runtime) and the inventor of the highly experimental prototype-based language Ioke. And we’ve convinced him to give a talk about his latest language project Seph:

So without further ado, the big announcement is that I’m working on a new language called Seph. […] Why? I already have Ioke and JRuby to care for, so it’s a very valid question to ask why I would want to take on another language project […]. The answer is a bit complicated. I always knew […] that Ioke was an experiment in all senses of the word. This means my hope was that some of the quirky features of Ioke would influence other languages. But the other side of it is that if Ioke seems good enough as an idea, there might be value in expanding and refining the concept to make something that can be used in the real world. And that is what Seph is really about.

This will be an informal, and highly technical, talk on a really interesting new language. Come along for a chance to ask your questions. Also, to enjoy some free beer and pizza. There’s a pretty good chance that Martin Fowler may be in the room, though I’m not promising anything…

Where?
ThoughtWorks Sydney Office, Level 8, 51 Pitt St, Sydney
When?
Wednesday, 8th Sept; 6pm for a 6.30pm start
Who?
You! Assuming you’re a developer interested in learning about languages.
How?
RSVP to Giles Alexander as I need some idea of numbers.

And that’s all you need to know, see you on Wednesday.

Tagged ,

A Drunken Taxonomy

Australia in all its cultural majesty has co-opted yet another foreign tradition: hallowe’en. An ancient pagan European tradition celebrating the movement of dark forces through the night. The Americans took it first: a party for children. And now Australia has added our spin: alcohol and lots of it.

No need to thank us; we’re pretty proud of what we can offer.

Walking home through my neighbourhood last night, I was confused. How do I describe what I’m seeing? So: a drunken taxonomy:

When drunk X becomes:

  • Yuppies: self-important and obnoxious.
  • Teenagers: loud and obnoxious.
  • Footy fans (any code): violent and obnoxious.

This year hallowe’en was popular with the teenagers with a little bit of footy fan thrown in. And who were they actually? Australian.

Tagged

Don’t Get Throttled

The agile family of software development methodologies is now pretty firmly established. Developers have always been some of the most firm supporters of these approaches. And as developers, we like to focus on the good practices that produce better software: testing, story driven development, continuous integration, etc.

And these are all wonderful things. But, from the inside I think we forget the single best thing about agile software development:

Agile means your customers no longer want to throttle you.

Don’t forget this: it keeps everything in perspective.

My first real software development job out of Uni was at a small technology company. We had a core product, an expert system runtime, that the company was built around. We were organised into two major divisions: Products, who worked on the core technology; and Solutions, a traditional consulting division who delivered projects (usually) based around the core technology. Products would have been about 20% of the company’s employees. The rest, admin staff and Solutions.

I worked in Products. I like to think we did good work: during the four years I was there the product became much faster, finally ran on more than one OS, supported multiple platforms and countless other features were all delivered. Delivered on a three month release cycle. We had a roadmap of releases covering the next year and a half or so, with features allocated to each release. And every three months there’d be a new, mildly tested, release that had some of the planned features, some last minute features and a bunch of bug fixes and improvements for features from the last couple of releases.

At this point I would like to remind the uproariously laughing peanut gallery that this was my first job out of Uni and I knew no better. Clearly, neither did any of the managers.

I can still remember the moment of revelation when I discovered that all of Solutions hated us. Hated the Products staff, hated the product. One wag had joked that the company was divided into Solutions and Problems. How could this be? Our technology was great! Really! It was genuinely the best of its kind in the world. Why did they hate us so much? How could they hate us so much?

It’s obvious now: Solutions were trying to win new business and then deliver projects on time and budget. Invariably they’d find bugs in the product, or new features they needed. And our response? “It’s too late for this release; we’ll try to include it in the next one.” In four months time.

Now on an agile team what would I say? “OK, we’ll include that bug fix in the next iteration. You’ll have it Friday week.” That’s a bit glib of course. In reality there will have to be a discussion about what is going to get pushed out of the next iteration, and estimation of how long the new work will take. But when your answer can honestly be in terms of tested, working software and a couple of weeks delay, everyone is happy. And in particular your clients are not going to be frustrated and furious.

On only a couple of occasions since have I had to be the client to a waterfall team. And every time I’ve ended up wanting to throttle them: “How can it take as long to plan the work as it’s going to take to do, ferchrissakes?” And every time I have to remind myself that they’re not trying to be difficult — they genuinely want to help — it really is just this hard to turn the boat.

Walking on the Moon

There are now nine people in the world who have walked on the moon, and unless something dramatic happens [...], it won’t be long before there are none. That might not mean anything to a lot of you, because you are, I am led to understand, young people, and the moonwalks didn’t happen in your lifetime. [...] But it means a lot to me, and Andrew Smith, and when the Apollo missions, the future as we understood it, become history, then something will be lost from our psyches. But what do you care? Oh, go back to your hip-hop and your computer games and your promiscuity. (Or your virginity. I forget which one your generation is into at the moment.)

A passing reference to Nick Hornby led to me picking up this book again and re-reading one of his columns. At random. And that perfect little précis of what happened to the future we were promised was buried in there. The whole collection is replete with such examples.

Now excuse me while I spend the afternoon reading.

#hashtag this

I’ve been wondering why I dislike twitter hashtag memes so much. But it’s pretty obvious really: it doesn’t matter how unexpected and funny the original concept was, the world has a plentiful supply of people who just don’t know when the joke is well and truly dead and buried.

Timing. What makes a good comedian? No, wait. I think I told that wrong. Let me try again. And again. And again. It’ll be funny in the end. Believe me.

Selecting for an Exhibition

In a potentially vain attempt to improve my photography I took the Australian Centre for Photography’s introductory Camera Craft One course. I enjoyed it, learnt a lot and, at least it appeared to me, my photography did improve. If you’re considering taking a course, I’d recommend this one.

At the end of each term at the ACP, a student exhibition is run. And as I was a student this term, I get to enter a photo. One of these here. Help me pick. Which do you think I should enter? Presented in the order I took them…

Continue reading ›

The Fortress of Solitude

The Fortress of Solitude
Jonathan Lethem

Like a match struck in a darkened room.

There was something in those simple eight words for me. Some image. Some sense. Some rhythm. Something I still can’t identify, but something that instantly said to me this is a special book. As I read that line aloud now I can hear the brief scratch and then the hiss. I can see the bright white flare; the flare that leaves a faint yellow outline in the darkness, the darkness that suddenly seems all the deeper. And then the steady fade as the flame turns from white to orange and the match burns itself out.

There, in those eight simple words, is the entire novel.

From those simple words I was hooked.

This is one of the greatest books I have ever read: Lethem is now in the rarefied league of Graham Greene, and, well, not many others. Someone who can write a deep, lyrical, beautiful but entertaining story that moves you.

I wish I could capture precisely why this was such a good book but it feels indescribable. It’s a story of a boy growing up. In the only world he has ever known, a world where he feels like perhaps he should be special — but he’s not. It’s a world to which he doesn’t belong, a world that he will forever be outside. The obvious escape into a fortress of his own devising is, however, a far more dangerous trap.

In the writing, the tone and the pace the sense of growing up was captured as I’ve never read before. It’s like a street scene coming into focus as the rising sun burns the morning fog away. The story starts with everything obscured and dreamlike. The descriptions are as if Dylan (the boy) isn’t really there, as if he is reporting a story told to him, about him. Which is precisely what all our earliest memories really are. As the fog clears and Dylan himself comes into focus he moves from being an outside observer to a passive participant to someone in control of his life. As if the story is the focal ring of a camera slowly spinning him into the right place in his life. Almost. Almost placing him where he belongs. In focus along with his world. Almost.

The beginning of the second part very nearly disappointed me. It appeared the book was about to head towards a very predictable place. But Lethem steered gloriously clear. Leaving us with the tantalising possibility of fantasy, the possibility of belonging, and the reality of the best damn book I’ve read in a long time.

New Metaphors

So, if you’re going to manage to convince the world to change the way it does something, it had better have an benefit that’s immediately obvious and take no more than a few seconds to explain how to do.

The desktop metaphor seems to be dying out. The Newton’s notepad metaphor was stillborn with the Newton. Web applications use the ‘enterprise green screen’ as their metaphor. There must be something else.

Watchmen & Fantastic Four, Vol 1

Watchmen
Alan Moore and Dave Gibbons

Fantastic Four, Vol. 1
J. Michael Strazcynski and Mike McKone

It’s been sometime since I’ve read any graphic novels or even comics. I read Watchmen because I knew the movie was about to open. I’d previously enjoyed both of the V for Vendetta comic and movie, but I wish I’d read it before seeing it, so I wanted to this one the other way around.

Impressive, both the comic and the movie. Though the movie was largely just a moving version of the comic, apart from that great title sequence. So, I’ll ignore the movie and talk about the comic. This is really a graphic novel. It is a work of fiction telling a story using the core elements of characterisation, plot and pacing to drive the single, coherent piece to its conclusion, it just happens to tell this through pictures as well as words. It felt like more of a graphic novel than V: it is far more focused, the characterisation is better and the pace is well maintained. V had a tendency (common to all serial forms) to bog right down. For an Alan Moore work, Watchmen is also surprisingly low on violence. Sure, there are some pretty gruesome parts, but not too many — or they are well used.

There are some interesting experiments with alternative ways of telling parts of the story. One chapter is told entirely from the perspective of a character who does not perceive time as linear. But the jumping through time is well used and not confusing. There are also long sections of prose at the end of each chapter, these provide another angle on the main events. It creates this sense that as well as following the story you are also seeing history unfold. Above all else this is a highly ambiguous work — I am still not sure what I think of the ending. And that would be about the highest praise you could hope for.

Fresh from this success and inspired by another book I read shortly after Watchmen, I finally read the Fantastic Four book that I bought some time ago.

And oh boy was that a mistake.

This was bought when I realised that all the comics I was reading were from a certain niche of the market. I wanted to remain balanced and went looking for something from the traditional mainstream of comics. This was the first volume in a sub-series, was written by the highly respected J. Michael Strazcynski (he wrote the TV series Babylon 5, which I have never seen but is well-regarded in sci-fi circles,) how could I go wrong?

It went very wrong: the characters are childish, the plot predictable and laughable, even the artwork is disappointing – the female character almost never looks the same in any two panels. I read the entire thing — only an investment of 45 minutes or so — but by the end I was pretty disgusted. The most annoying thing is how much time is spent referring to past adventures. This is not because this story is part of some decades long arc, I am completely unfamiliar with previous stories but I could always understand the plot. Instead it felt like listening to that annoying friend of a friend down at the pub drone on and on about these great things that happened to him this one time. I am quite happily returning to my niche; I’ve dipped my toe in the mainstream and it’s polluted.

And to further reinforce that, I had a major comics success shortly afterwards. Comics are still firmly on my agenda.