I enjoy writing software when I get the opportunity. I used to do a fair amount of Windows programming for fun, and I still do some for work, but it seems to me that the days of writing code for standalone PCs are numbered. And I think that the number of consumer-oriented packages being written for Windows for the commercial market is dwindling. Have you looked on the shelves for software at computer and electronics stores lately? Except for games, the selection’s pretty slim–mainly operating systems, office suites, and malware protection.

That’s not to say that you can’t still find PC software for almost any application, but you have to look online. Much of it can be had for free, even. In fact, it’s pretty rare these days that I’ll pay for software, because I can almost always find something that’s free that’ll fill the bill. Maybe that’s the reason there’s so little of it on the store shelves.

But (news flash!) applications are definitely drifting away from the standalone platform and towards the web, for a variety of reasons. First, on the web you can profit from advertising revenues while keeping the service itself free for users. Second, so many applications have been enhanced by allowing users to interact with each other–difficult to do with software that has to be installed on a PC. Third, if your service is valuable enough, you can charge subscription fees–much easier to do when you control distribution via the web. Finally, the web is cross-platform–you don’t have to develop separate PC and Mac versions.

Especially with widespread availability of broadband, consumers are embracing the web for all manner of tasks, even to the point of doing word processing and money management online now. It’s clear to me that the future of computer programming lies in embracing web technologies. And I want to get on board.

When I took the plunge to buy my own domain name and web hosting, it took me a while to realize that not only would I now have a place to park my own HTML pages, but I could also install a myriad of ready-made web applications if they used HTML, PHP, Javascript, and MySQL. So now I use WordPress for the site you’re looking at, Roundcube for my own webmail, and Joomla for hosting a personal start page.

So, I keep thinking that it would be entertaining to see what I could write in the way of an honest-to-goodness web application. And over the past year or two, I’ve collected several books on PHP, MySQL, Javascript, and HTML. I’m actually quite the book collector–I’ve purchased many books that I still really haven’t cracked open, but I digress. In particular, I have Head First PHP and MySQL as well as Web Database Applications with PHP and MySQL. They’re both decent books. Head First PHP and MySQL is a hands-on introduction that’s very readable and entertaining, but doesn’t get you in too deep (the Head First books are all like that–I have several and I like them very much). The other book gets into a lot more detail and probably would be too much to swallow for a newcomer to the topic. But I figure that with these two books in hand, I should soon be off and running with PHP and MySQL programming fun.

The one place that both these books fell short was in helping the reader get a suitable development environment configured, meaning installing the Apache web server, PHP, and the MySQL database server on a PC and getting them all to work together. (It’s worth mentioning that it would have been possible for me to just write code and then run it on my real web server, but more desirable is to create a development environment on my own PC so I don’t have to mess with FTP’ing code to my server each time I make a change that needs to be tested.)  Even for someone with some experience, like me, this turned out to be a frustrating task. Apache isn’t so hard to get going, but for some reason PHP would never install correctly using the Windows installer that’s available.

Finally, I went in search of a tutorial for getting the environment set up, and I found this one. Apparently, the Windows installer for PHP doesn’t work very well, and there are some nonintuitive steps that must be performed manually. Finally–my development environment was up and running.

Now I just need an idea for an interesting application to code. Sure, the books have examples, and I’ll probably work through some of them, but the real fun is in creating something cool and useful. So I’m sitting here, waiting for inspiration to strike me, all dressed up and no place to go. I guess I’ll go work through the sample code.