Tim O’Reilly has a way with words. In an “Ask Tim” post last July he described something that I think I’ve begun to notice since I started down the arduous path of trying to learn a scripting language (in my case PHP):
I’ve always believed that one of the most important things about scripting languages is that they (potentially) make a new class of applications more accessible to people who didn’t previously think of themselves as programmers. Languages then grow up, get computer-science envy, and forget their working-class roots.
Specifically, in the blogs, articles and books that I read I’ve sensed an antipathy towards—or perhaps dismissiveness of—PHP that is a bit like bourgeois distaste, like it’s not really quite as serious as other languages (such as Perl, the subject of O’Reilly’s post). This is a feeling and I have to confess that I can’t back it up with examples, though maybe now I’ll be more aware of them when I see them.
In any case, I’m definitely in the group whose members “didn’t really think of themselves as programmers.” I’m keenly aware of this each time I read something written by a programmer that is not a beginner’s guide on the subject. I came to PHP only secondarily through the flourishing WordPress (which has become one of my driving motivations since it’s such a fine example of the kind of application I’d love to one day be able to create). But I actually first encountered PHP when I was building a university web site and wanted to try my hand at Server-Side Includes (SSI) to display data like dates and times. Pretty simple stuff. The sys-admin told me that SSI was not enabled for security reasons and that I should use PHP instead. Then he furnished me with a few code examples that I could just drop straight into the HTML.
That was the beginning of a geek crush of Joelsian proportions, I’m afraid to admit. I just loved what it could do. The whole blogging/CMS thing has only confirmed that there is no going back for me. I had turned over a few times the idea of trying to learn Perl, but I didn’t really know where to start. With PHP I started before I realised what I was getting into, because it helped me to solve a problem that I had. As I’m learning I prefer to jump in the deep end with a code example or problem, and then go back over it to understand how it works, sometimes days or weeks later. This is how it makes most sense. Maybe its gauche but it works. And then, maybe someday when my ship comes in…