Web Development by Alistair Robinson

« Blog home

Web Development and Chopping Garlic


December 2nd, 2009 1 Comment

For this post it was a toss-up between:

1. My observations on Freud’s Psychopathology of Everyday Life (boiling down to my realization that I’m a tangle of complexes, but also that I’m actually doing alright and won’t be running to an analyst any time soon)

2. A vague and geeky ramble over the broken, scarred and unstable terrain of web development.

Since moving this blog over to my website, I’m conscious I may be losing those who enjoyed such posts as Sweaty Rectangle and My 25-year-old Earworm, but the geeky ramble won out this time. Bear with me though: I am large, I contain multitudes.

Though I’ve been doing web development off and on for ten years, I’ve never been as enthusiastic about it as I am now, having begun several months ago to work for myself. After a couple of years gripped by saxophone and camera obsessions, I’ve now succeeded in bringing my web knowledge up-to-date, and it’s dawning on me how many choices I have about which path to follow. Faced with these I ask myself: what is it that drives my enthusiasm for web development, and how should that influence my choices?

With quite a few projects on the go or about to start, recently I’ve been having to choose between different tools. If we assume that all these tools are, potentially, equally powerful, still there are other considerations beyond economics, development time and learning time. There is the consideration of how much a particular tool fits well in my hand and allows me to work as well as I can, that is to say, allows me to enjoy my work. But I’m getting ahead of myself…

Guided by Mother Microsoft

In 1998 I started out with classic ASP, and just when I’d built up a nice collection of functions and snippets and settled down to an efficient way of working, ASP.NET came along. I’d like to say that it rocked my world, but it was more like upsetting the apple cart. It all seemed so unnecessary, so restrictive, so complicated, yet so unavoidable for a web developer using Microsoft. I didn’t really get it. True, I did some cool stuff, such as a system combining a Windows mobile app and a web app, with MS Exchange integration and XML web services and signature capture and GPRS and all that – but I was never comfortable with the framework. I yearned to get back to the freedom of scripting with notepad, without all the junk.

Now I won’t claim that my distaste for .NET was purely technical or aesthetic: for me it still has associations of the corporate world that I’m very glad to have left. It always represented a straightjacket to me.

Personal Home Page, I mean, PHP: Hypertext Preprocessor

So when I discovered PHP in my spare time a year or two ago, I smelled the fresh clean air of freedom.*

But things were pretty messy to begin with. Seeking more efficiency and tidiness, but repulsed by the baggage and complexity of many of the feature-laden templating engines and CMSs (not only sledgehammers to crack nuts, but sledgehammers that are very difficult to hold and which fall apart for no apparent reason if you don’t hold them in a certain way), I began using a templating system called TinyButStrong. I was very happy with that (and I’m still very fond of it) until a few months ago, when I began to pay more attention to all the web technologies that were popping up (or which had popped up without my noticing.)

Coming of Age

In my work I was being faced with the same tedious tasks again and again, such as forms and validation, administration interfaces, and content management; and coming from ASP.NET I knew that there were tools out there that would help me with all that, that there had been a whole movement towards frameworks going on for years, which aimed at relieving developers of all the hassle.

However, my priority was getting my front-end skills up-to-speed with the bleeding edge of CSS, javascript frameworks, AJAX and so on, so until quite recently I carried on as before with the PHP. But now all of a sudden I’m working with (or at least playing with) MODx, Kohana, WordPress and now Python and Google App Engine.

I’m using the MODx content management system for something right now, and it’s superb. For building websites it’s quick, flexible, limitlessly customizable, and I have almost nothing but praise for it so far. But sometimes it just doesn’t feel like real development. If you’re a coder, you write plain old text in some fancy version of Notepad (or even Notepad itself), and there’s something about having to use a CMS interface that is alienating. Although I can set things up in MODx so that I’m using include files, I still feel removed from the PHP code, the HTML and the CSS.

As for WordPress, it’s great, but I don’t feel like I’m building something, more hacking something together.

Clients

As an aside I should say that clients don’t care about all this, and neither should they. I’ll continue to use MODx and WordPress because of the convenience and speed of developing with them, and for the easy content management they provide for clients. But no, what I’m on about here is how it feels to use these tools, and hence about how I can achieve a harmony between my instinctual way of working and the jobs I have to do.

Oh and as it seems to be the fashion these days for web developers to proudly proclaim “I love my clients,” I’d better point out right now that I love my clients. I do, really.

I’m a GAEboy

So I’m strongly drawn to, rather than CMSs, frameworks and new languages. I’ve recently been seduced by the Kohana PHP framework, and by Python on Google App Engine, and they do satisfy my desire for control over, and intimacy with, the code that makes up a site or application. Kohana because for me it’s an introduction to the MVC paradigm, and simplifies those horrible tasks I referred to above; and Python with GAE because not only am I learning a real proper all-purpose language, but I’m entering the world of cloud computing and non-relational datastores, leaving the world of server configuration, architectural compromises and unwieldy file structures. Oh and there’s the one-click deployment.

The question is, what’s the best path to take? But it’s mostly a rhetorical question. Obviously only time will tell. But the conclusion I’m tentatively driving at is that even if the toolbox I choose might not be full of explicitly labour-saving gadgets, I will end up working more efficiently if they feel better in my hands. My girlfriend Laura has a little wheeled gadget to chop garlic. I like using a good sharp heavy knife. For me, it just feels right. I believe that little things like this are important.

Now, if I can actually find the time to get something up and running on GAE beyond this tutorial; and if the project manager in me (who is admittedly quite ineffectual) can resist the temptations of MODx and WordPress for my next big website project, and choose Kohana instead; well, maybe then I’ll be in a better position to answer all these questions with something other than waffle.

*Incidentally, I happened upon a fight between the .NET and PHP tribes in the comments of a .NET tutorial on nettuts. One of the comments was “PHP is ok for your Mum’s embroidery page or a pointless blog that nobody will read, but if you want to be taken seriously by Corporation X, then it’s got to be .NET” (I’m radically paraphrasing, but he did use the term ‘Corporation X’). I didn’t reply to him because I had nothing to contribute relating to the tutorial, but I did feel like saying, well, yes, if your ambition in life is to work for Corporation X then perhaps .NET is the way to go. For the rest of us, PHP is just fine, thanks. That probably would’ve been childish.

UPDATE: I should point out that ASP.NET has come a long way since I used it. Specifically there is ASP.NET MVC, which I gather is a vast improvement on Web Forms, which I really didn’t take to, to put it mildly. Now I think about it, I was very happy using .NET for Windows and mobile development. So maybe ASP.NET is worth a look now that it’s possible to avoid Web Forms. These days there are some nice free development tools available, and you can even use Python. However, I’m having difficulty enough with the choices I have so I don’t want to complicate matters.

ANOTHER UPDATE (Jan 2010): Never mind Kohana, I’m moving straight to Django!

Tags: , , , , , , , , , , , , , , , ,
Posted in web development | 1 Comment »

One Response

  1. [...] goes back to my previous post about web development choices. The more I look, the more confused I become. I wouldn’t [...]


©2010 Alistair Robinson