Picture by Julian Cash
|
Form and FunctionI like to think of myself as a software architect. That's really just another fancy term for software engineer or even computer programmer (and I've never really been one to take much notice of fancy job titles anyway). However it is a convenient label, a meme if you like, that helps me to think in a more positive way when I go about writing a piece of software. Although computing is more commonly regarded of as a scientific or engineering discipline, I prefer to think of it as more of a creative pursuit. Good software must be designed like any other ergonomic product with a balance of form and function. Above all it should function correctly, but it should also work efficiently, be easy to use, and aesthetically pleasing. In that sense it is rather like designing a kite. Make it look nice, but above all, make sure it flies. So for me, the ultimate goal of any design is to achieve elegant simplicity. This is summed up nicely in one of my favourite essays on the psychology of software engineering and creative thinking in general, The Programmer's Stone.
|
My work (and a fair bit of my play) is based around web design and development. I run my own consultancy business offering a range of services including the design, development, deployment and ongoing management and maintenance of template-driven web sites (like the one you're looking at right now). This section contains various articles on the subject of web design and development. It also contains the results of some exploration with GIF images.
I also write software that helps make the process of building and maintaining web sites a whole lot easier. I'm the author of the Template Toolkit, an Open Source software package written specifically for this purpose (among others). It has become the de-facto templating solution of choice for Perl programmers and is used to build countless web sites from the very small to the very large.
Along with Dave Cross and Darren Chamberlain, I've written a book about the Template Toolkit. Published by O'Reilly, it is now on sale and available from all good bookshops.
Perl is the programming language of choice for most of the software I write these days. Perl is an example of a dynamic typed language. That probably doesn't mean a great deal to you unless you're a programmer, and perhaps not much even then. However, it is what sets Perl and a handful of other "new school" programming languages including Ruby, Python and Scheme apart from the "old school" of static typed languages like C, C++, Java and even Microsoft's latest hyperbole, C#.
In addition to the Template Toolkit mentioned above, I've written a number of other Perl modules, all of which are open source and available for free download and use. I'm also a regular speaker at the Perl Conference and have talked on subjects as diverse as kite design using Perl, and why programming should be more like skateboarding.
By chance I happened to find myself in a hotel conference room in June 2000 when Jon Orwant started throwing coffee cups around and Larry Wall decided it was time to rewrite Perl from the ground up for version 6.
Parrot is part of that rewrite, but it goes a lot further than just Perl. Parrot is a virtual machine that aims to provide a cross-platform, language-neutral runtime environment for many different dynamic programming languages. Suffice it to say, this is a Good Thing.