loving C

Over on the Beautiful Code blog, Michael Feathers has written about loving C:

“I remember flipping through the Kernighan and Ritchie book decades ago, trying to pick up the language. I remember a lot of frustration, but I also remember a lot of satisfaction. C has its quirks, but in retrospect, they are a lot less mysterious than the quirks of many other languages. They don’t require deep reasoning. The behavior of a construct is either defined or it isn’t…”

There’s a discussion going on in the post’s comments too, mostly between proponents of C versus C++.

The thing I value most about C is its simplicity. As simple as possible, and no simpler. I feel that pretty much everything that came out of the Ritchie / Thompson / Kernighan / McIlroy group has that same quality — a deep deep cleanliness. C++ has none of that, in my opinion. It was designed specifically as a hybrid, an attempt to bring the features of one “desirable” language into the space of a different language. The cracks show, and have been made worse and worse over time. The fact that C pretty much stopped evolving very early on is perhaps a factor that helps keep it young and fresh. It does one job and does it well, and has no pretensions to be all things to all men.

There’s a trend in British politics (I’m sure the other major democracies must have it too) in which our political parties seem to be playing catch-up all the time. Instead of saying “this group stands for X”, and then dying out when X is no longer popular or relevant, they say “this group stands for being popular”, acquiring new policies and values simply in order to remain “current”. C++ seems a bit like that to me, and Java too. Everything but the kitchen sink gets thrown in, instead of simply admitting that some problems might just be better solved using a different language. C didn’t do that (much), and has remained clean and simple as a result. I’m not ashamed to say that I love it too.

(I fear that Ruby may be taking its first steps down the “kitchen sink” road…)

a new website

Today I’ve put my new website kevinrutherford.co.uk live. This will be my new company site, replacing the older one which I felt had become quite jaded. I hope the layout works in your browser (if not, sling me an email).

The new site is a departure for me, as it is an experiment with a 1-page website: everything is on just the one page! The experiment has had two benefits so far, during the site’s creation. First, maintenance of just that one single page of HTML is vastly easier than trying to maintain a whole raft of interconnected pages. Keeping the old site updated as I fiddled with styles etc and keeping the content of each from repeating was a nightmare. And in the end I felt the result hadn’t been worth the effort.

door And secondly, much more importantly, it has forced me to focus on the few things I really really need to say. Trying to get the message onto a single page means I’ve had to reduce the content to a bare minimum, instead of having the freedom to fill numerous pages with reams of dense prose. You’ll have noticed that I have a tendency to waffle, and to drag on and on with a high buzzword count. But that just isn’t possible on a 1-page website, which means I’ve had to smarten up my verbal act somewhat. A huge amount of the old crud has gone (who needs to know that I used to design encryption algorithms?), but I fear I’ve still fallen short on this goal. I plan to keep honing the page during the coming weeks until there’s nothing more I can (bear to) remove.

“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” — Antoine de Saint-Exupery

Update, 29-may-06
I was so excited to get my new “experimental” website live that I forgot to include the splash! It’s there now, better late than never…

Update, 31-may-06
I believe the page now displays correctly on Safari. Thanks to Steve Freeman and safaritest for testing.