Shortly after posting the Unfoggedbot I got this email from Stanley:
Is there anywhere that Joe Humanities Degree can go to to learn how to do this sort of thing?
Needless to say, this sort of request warms the cockles of my heart (whatever those are). And today, in the aftermath of various recent demonstrations of scripting languages’ utility, it might be a good time for me to press my case.
So: yes! Yes, a thousand times yes. You can learn a scripting language, which is the easy way to put together an IM answerbot, or a ballot-stuffing bot, or whatever else. In fact, you not only can but probably should. Scripting languages are a powerful way to control computerized systems. The computerization of the world is obviously nowhere near complete, but it’s getting there quickly — and that means that the relevance and power of scripting languages are only going to increase. You can already control various pieces of the physical world with this technology, like lights and thermostats. And if you use Excel or perform repetitive tasks on a computer in your daily life, you can likely save yourself some drudgery with a well-written script. Soon enough your toaster, garage door and television will be accessible through these languages, too.
There will be other ways to control the electronic world, it’s true. People will continue to invent visual metaphors like Yahoo! Pipes and Lego Mindstorms that expose some of the capabilities of programming in an accessible way. But we’re a long way from the day when these GUIs confer the same power that knowledge of a scripting language affords. Besides, they tend to rely on metaphors that are more easily learned through a text-based programming language.
And that’s important. Along with the ability to manipulate the devices and information around you, learning a little programming will help you understand how engineers think. If you familiarize yourself with the sausage-making side of computers you’ll begin to develop an intuitive understanding of hardware and software interfaces which, as I mentioned, will comprise a larger and larger portion of the world. You’ll never have to be one of those hopeless codgers reduced to asking his or her grandkids for help programming the hyper-VCR.
So how should you approach this worthy undertaking? The best way is probably to pick a scripting language and start perusing the materials that are available. But which scripting language? In some ways it doesn’t matter — you’ll need to learn what a variable is, how an if..then statement works and what a for loop does in any of them. But you may as well hear the nerd scuttlebutt on each and then make an informed choice. So let’s look at the big three first: