My 13-year old son recently told me that he wants to be a computer programmer. A devastating announcement that threw me back into deep, introspective thoughts. You start to imagine all sorts of things. Where did it go wrong? Did he have a nasty accident in kindergarten and the teacher never dared to tell me? Does he eat enough fiber? Shouldn’t I have talked more with him about all the great things you can do in life?
Let’s be honest. I was utterly depressed.
Finally I came to reason, about three or four weeks later. I started to discuss with him. My son had not yet an idea of what programming language he wanted to learn. Some fuzzy MSN buddy had suggested him to dive into C++. It’s remarkable how calm you can stay under deep pressure. I felt this almost Buddhist joy of forgiveness when I told him – without shouting – which crimes have been committed in the past twenty years in the name of C++. That many of his crashing applications have been written by C++ programmers that love to do silly, funny things with computer memory. That the so called buffer overflow has inspired a whole generation of hackers. That C++ teaching books are no longer allowed in hand luggage at Heathrow. That the programming language is ridiculously complex, like its modern brothers Java and C#, and that you have to be an expert in maths to understand it.

Especially this last argument had effect. Maths! That’s for losers and nerds.
So far, so good. This road would not be taken. But then, what was the alternative? I started to realise that my son has a completely different view of what programming actually is. He is – of course – mainly interested in building web sites. And he does not intend to start from scratch. He envisions a window with an eclectic composition of YouTube movies, satellite images and the built-in search of Google, Flickr pictures and a news feed from Blogger. You know, as a first exercise.
Obviously the profile of a Mashup Programmer, 2006 style. The concept of ‘mashup’ (also: ‘bastard pop’) is familiar to most teens: DJ’s mix two songs, taking the music track of one song and the vocals of another. For instance Kylie Minogue, doing something metaphysical with lalalalalalalala on the booming beat of New Order’s Blue Monday.
Oh well, it’s just an example.
Now, the same principals are applied to building applications for the browsers. Mashup applications are build with lightweight programming languages that seem to be created to glue together bits and pieces of functionality that can be found all across the Web. Languages like Javascript, PHP and Python and certainly also even newer relatives like Ruby on Rails (arguably the star of this time) and Water, a language which was designed to build and compose web services.
Mashup programming looks like a lightish, not so serious activity. But the success is determined by the combination of fast and flexible orchestration on one hand and the availability of mission-critical, robust services on the other hand. Just think of the efficiency of the server farm that is hidden between that simple Google Search interface.
In the near future, Mashup services won’t just be made available by Flickr, MySpace or Yahoo: IT departments of ‘ordinary’ organizations will develop them too. They will enable other parts of the organization to quickly compose smart, opportunistic applications at exactly the place where it counts: close to new business opportunities. And it won’t take long before we need more Mashup programmers than classically educated software engineers from the past.
Not such a bad career perspective after all. I’ll check it anyway. About that fiber.