Archive for November, 2004

New Car Tuesday

Tuesday, November 30th, 2004

My shiny new Focus Edge

A nice shiny new 1.6 Zetec Focus Edge. Lots of fun to drive, but the crap, pothole-filled roads in Manchester combined with the sports suspension makes for a bit of a bone-shaking at times! Anyway, immeasurably better than my (dead) 10-year old Renault 5 and hopefully it’ll mean I can go places further than 25 miles away without worrying if the car will make it or not…!

SCO

Monday, November 29th, 2004

*snigger* (screenshot here if they’ve fixed it by the time you read this)

On the future of programming languages

Sunday, November 28th, 2004

Someone posted a link to this article about programming languages in 100 years time to a forum I read. It’s interesting, but I think the author has misunderstood the goal of programming language evolution. This essay is my response to that article.

The original essay makes the following statement:

I don’t predict the demise of object-oriented programming, by the way. Though I don’t think it has much to offer good programmers, except in certain specialized domains…

It strikes me, therefore, that the author has misunderstood Object Oriented programming, its goals and its application in a fairly fundamental way, and in a way which means that I feel his analysis of the direction of programming in the future is flawed; he fails to address the issue of the development of abstraction within languages – he gets bogged down in details of data structures and syntax, whereas I believe the greatest leaps forward in programming will come from increased abstraction in languages.

The point is that the development of Object Oriented programming allowed us to model solutions to problems that are closer to the way we think about the world – which is, in fact, how all programming languages have developed over time. Consider the evolution:

  • Machine code (pure hex) – Writing to the metal. No abstraction, raw manipulation of the state of the machine.
  • Assembler – Still manipulating the state of the machine, but at least we have words rather than numbers, which people are more used to dealing with. We’ve abstracted away the raw binary and made it easier for humans to interact with.
  • Imperative languages – Early computational problems were implementations of mathematical algorithms, which are written in an imperative fashion; that is, take x, square it, add the result to the reciprocal of the difference between y and z, and that’s your answer. This maps onto a certain model of human thinking, and allows a level of abstraction which is higher than pure assembler. We can continue to raise the level of abstraction here, but imperative programming inevitably means that we continue to think in terms of a pure sequence of operations, and human thought is more complex and abstract than that.
  • Functional languages – An expression of ‘goal based’ computing, which matches another human thought pattern. You give the computer a set of rules (or functions), and express your goal in terms of an evaluation of these functions; everything is defined in terms of a function of something else. This is useful for a purely problem-solving approach to computing, but isn’t especially useful for defining things like user interfaces (although theoretically, you could feed a functional system a set of rules for good UI design, give it a collection of controls and buttons to arrange and set it going – which might be an interesting problem for all you functional nuts out there 🙂
  • Object Oriented programming – In the real world, we deal with, well, objects, and manipulations of objects. We deal with abstractions, we categorise things, etc. Classes, objects, methods, inheritance and relationships allow us to model the real world more closely. It is, in theory, a much more natural way to model large systems, and allows us to think in a much more abstract fashion.

Therefore, my prediction would be that programming languages will continue to evolve in such a way that they more closely model the way we solve problems and interact in the real world. We’ll be doing less “talking to the computer” and more problem solving – languages in the future will not, for example, force you to do your own memory management – this is not part of solving the problem, and should not, therefore, be part of the programmers job (well, not part of the application programmers’ job, anyway; someone will still have to write the compiler 🙂

In terms of what I personally feel, I think bytecode and interpreted languages are very much going to be the way forward. We’ll continue to see the evolution of languages like Perl, Ruby and Python (although personally, I think Perl probably needs trimming back rather than further development; Ruby is a good model for a next-generation scripting language) because they’re quick, easy and simple to use and hugely powerful for common, practical data manipulation tasks – and even map well to large systems like backends for websites.

We will probably also see some measure of convergence between “scripting” languages and “application” languages – already, Perl, Ruby and Python are being used for large systems; it’s possible to target Python at .NET now. There’s no reason to consider them as a completely separate set of languages to the “serious” language set (C++, C#, Java et al).

For the actual development process for large systems, though, I think we need to look to what MS are doing with Visual C# and .NET. Developing in C# and .NET allows you to easily work at a high level of abstraction than most other languages; there’s an excellent set of prewritten libraries and the language is highly abstract: UI coding is as simple as writing a method to deal with a button click – there’s no language contortions as there were with C++ and MFC, because C# has been designed from the ground up for development of GUI driven applications.

However; the thing that strikes you most about C# is how little actual code you write: most of the time you are simply calling prewritten methods on objects, or iterating over collections. There is no good reason why this necessarily has to be represented as lines of written code – perhaps the way forwards is to represent these interactions between objects in a visual fashion, only stepping down into something so vulgar as handwritten code when you need to do something unusual or obscure.

Ultimately, though, all of this is going to be driven by what people want to do with computers in the future; computers are beginning their slow but inevitable move away from the desktop and becoming a more integrated part of our daily lives. Applications are changing to reflect that, and therefore the way we approach development and the languages we use are also going to change to reflect that, and that is probably what is going to have the biggest impact on programming in the future.

Six from Tokyo

Friday, November 26th, 2004
A street, somewhere Nightime in Shinjuku A band in Shinjuku
Cosplay in Harajuku Harajuku bridge The big screen at Shibuya

Gallery here

Birthday cake for breakfast?

Friday, November 26th, 2004

So…. yeah. I’m off work until next Wednesday. Everyone tells me “Wow, you’re dead lucky to have got all that time off”, and I suppose I probably am. Doesn’t stop it being really completely dead boring, though.

I mean, look. I got so bored I went and bought a car.

It’s quite a nice car, by all accounts – that Focus Edge I was talking about a couple of days ago; 3 door, 1.6 Zetec engine, Magnum grey – but only because they didn’t have that nice silver colour I wanted – and extra spangles; but even so, I don’t actually need a new car, given that my new job is in the city centre and that.

In a piece of marvellously fortuitous timing, the rear (or maybe the front, I can’t tell) brakes on my knackered old Renault 5 decided to fail on the way home from me paying the deposit for said new automobile. It’s probably just bitter, or something, but the upshot is that I probably can’t use it as a part-exchange against the Focus any more. I’m a whole £50 down on that deal. Bloody French cars.

Apropos of nothing at all, let me tell you a story.

The first time I ever took Naomi out for a meal was to the Saints and Scholars in Didsbury. Now, Naomi is Irish. Well, Northern Irish, which means that she can switch between being British and Irish whenever it suits her. But for the purposes of this tale, she’s Irish. Okay? Anyway, after being sat in there for a few minutes, I get the creeping feeling that there’s something a little bit, well, odd about the restaurant.

“Hey, Naomi, does this place strike you as at all Irish? I mean, with all the Guinness posters and things hanging from the ceiling and that?”

“Well, yes, it would. Ireland being the Land of Saints and Scholars, and that.”

“Oh. That’s quite embarassing. I didn’t know that. I didn’t bring you here because of that, you know.”

“Okay. You’re funny.”

So, anyway. Fast-forwards to last night. We’re in the Saints and Scholars again for my beloved’s birthday; the first time we’ve been back since our first visit. We sit down at our table and as I’m perusing the wine list, I notice Naomi looking around in a quizzical sort of manner.

“You look quizzical. What’s up?”

“Is this place Irish?”

The death of VHS?

Wednesday, November 24th, 2004

So, Dixons have decided to stop selling VCRs because DVD players are outselling them 40-1. Apparently, this means that VHS as a format is now dead, or so pretty much every major news outlet (and slashdot) would have you believe.

Er, no. What it means is that people are no longer buying VCRs. DVD is a new technology; VHS is not. Most homes already have a VCR, and have no reason to buy a new one; whereas until two or three years ago, most homes did not have a DVD player. So of course DVD player sales are going to outstrip VCR sales; everyone’s already got a VCR.

But that doesn’t mean no-one’s using VCRs any more – far from it. Recordable DVD players and PVRs are not commodity items yet; your average householder will still pop in a tape and hit record when they want to save something to watch later. According to Blockbuster, 15% of their rentals are still VHS tapes. People still use their VCRs.

Dixons haven’t stopped selling them because the format is no longer viable; they’ve stopped selling them because every bugger in the universe already has one.

Brief love affair

Monday, November 22nd, 2004

It is with deep regret that I must announce the end of my short love affair with the Renault Megane. I was captivated by her good looks and continental charm, but having finally plucked up the courage to take her out on a test drive, I quickly discovered that the surface charms give way to a fairly plain, and occasionally slightly unpleasant character underneath. She takes some time to get going, and then is over-eager to stop when the brakes are applied. She’s not terribly comfortable to be in, and whilst her additional bells and tassles are initially impressive, at the end of the day they just get in the way and fail to distract you from the fact that, ultimately, she’s not really all that impressive.

My affections have now found a new home in the Ford Focus Edge, which is a much plainer, simpler mistress than the Megane, but much, much more fun to drive and a much better all-rounder.

Back from Japan

Sunday, November 21st, 2004

Somewhere over Siberia, I looked out of the window. Below me were snow-covered mountains; to the west, the sun was setting over the horizon, turning the clouds below me a beautiful blood-red. Above, the sky was totally clear, and from the horizon upwards the colours went from red to yellow to blue to purple to black. The glare from the sun on the jet-engine housing in front of me nearly blinded me as I stared, transfixed, at one of the most incredible sight I’d ever seen.

And then, I started to cry.

Coming home from holiday, as I’ve written before, is one of my least favourite things in the world, even when you do have the best view in the world out of your little plastic window. This time, it was even worse, and I’m still not entirely sure why.

I’ve wanted to visit Tokyo for as long as I can remember – as a kid, the idea of an immense, futuristic city filled with neon and skyscrapers and video arcades sounded like the best thing ever; as I grew up, the Japanese culture and way of life came to fascinate me more and more. Tokyo is portrayed, in so many ways, as the archetypal “foreign” city, as so completely unlike anything in the West; and in some ways, that’s true. In some ways, though, it’s “just” a big city – I mean, it’s a really big city – but you get skyscrapers and backstreets in loads of places, not just Tokyo.

It’s inevitable, I guess, that on my first morning I was somewhat underwhelmed (sorry Nayf). I went for a wander round Shinjuku. Shinjuku is in two halves – one half is a business district with some seriously huge skyscrapers; the other is a cramped array of neon-filled streets and shops that provided the inspiration for the look of Ridley Scott’s Blade Runner. It was pissing it down with rain most of the day, I was suffering slightly from jetlag and even though it was very impressive to be able to reach the 51st floor of a building in about 30 seconds and look out across the city, I couldn’t see a damned thing because of the mist blocking the view. There were too many goddamned people and they all seemed to be acting like I didn’t exist. I was tired and irritable and I think Shinjuku was, on reflection, probably not the best idea for my first day.

I think the point when I realised I’d fallen in love with Tokyo was on the way home from Karaoke on the third or fourth evening – I can’t remember exactly which night we went out, but it was for my brother’s birthday, and we’d gone out with his colleagues (most of whom seemed to come from Manchester and at least one of whom actually lived just around the corner from me in Chorlton) for drinks and a bit of a party.

(It’s worth breaking off here to point out that Japanese Karaoke is nothing like English: rather than setting it in a bar and forcing you to sing in front of loads of strangers whilst your mates ridicule you, it’s a far more intimate, bonding, social experience. You rent out a little booth thing which sits about 10 people; in the corner is a TV and a complicated looking video machine type thing, and suspended from the ceiling is a sound system far too loud for the size of room you’re in. There are a couple of microphones, and several thousand songs to choose from. The drinks are included in the price of the room – about 25quid per person for four hours – and it is just about the most fun you can have with your clothes on)

Anyway; I’d had the time of my life, and through the beer-tinted fog I looked back over the couple of days I’d been there and realised that, actually, I loved it. Despite the fact I’d spent the first day getting soaked and angry and the fact that as a foreigner in Japan you are treated like a third-rate citizen and the fact that the trains are always full of drunken salarymen and the fact that all the schoolkids just annoy the hell out of you… I can’t explain it. I want to go back; I will be going back.

Anyway. It’s lunchtime now and my girlfriend is bugging me. I’d better go. I shall write mroe later.

Coo

Sunday, November 21st, 2004

Doesn’t this front page look empty with only two posts on it? Better rectify that, then.

Righty

Wednesday, November 10th, 2004

Bugger this, I’m off to Tokyo.