Software and other resources

Computer programs are to hackers what notes are to English majors. What you want to do is get the machine to turn some bunch of bits A into some other bunch of bits B. It’s a Turing machine, so it can be done; the only question is how. When I give you a program, I’m not giving you a box, I’m telling you how I shook the box to make the right thing come out. It’s just information.

For this reason I generally believe code should be written first to be read and only secondarily to be executed. I’d much rather make things more sensible or eloquent than optimize them or add new features.

My computing environment offers a bottom-up view of the world: if you’d like to accomplish something, here are the tools, and if those aren’t good enough, here’s how to make new ones. To write a program, even a quick “hack”, is to set down the knowledge of how to use and combine those tools to do something useful, or to re-use the tools that you’ve already constructed.

So if these few frequently-unfinished notes toward a simpler and better way to get from A to B shed any light on your own, maybe they were worth the time.