ThinkGeek - Cool Stuff for Geeks and Technophiles

Monday, June 16, 2008

what you might see here

I plan to use this blog to post my thoughts about my current non-work-related projects, whatever they may be at the time. Currently, I'm interested in the following:

  • The Parrot Virtual Machine. I'm creating a small language I call Simple Parrot Test Language (SPTL), and writing a compiler to translate SPTL to Parrot's PIR code.

  • The jQuery JavaScript Library. I've just started looking into this, and it might be a little while before I post about it.

  • The new SearchMonkey API from Yahoo! I don't know what all can be done with it, but I'd like to try it out.

  • A project I hope to start this summer, tentatively called WishList. More information on this later.

I also plan to post occasionally on my non-computer (but somewhat related) interests such as chess, logic puzzles, and game theory. Posts that are more opiniony will appear on my other blog, it seems to me...


Sunday, June 15, 2008

what's in a name?

It's not every day that someone, upon starting a new blog, decides to name said blog considered harmful, even if the blog's subject is computer programming, where this phrase has been part of the lexicon since the publication of Edsger Dijsktra's seminal 1968 paper Go-to Statement Considered Harmful (pdf) in Communications of the ACM.

Considered harmful has become such an overused phrase in computer science that some have opined that the phrase itself should be considered harmful.

So why would I use it for the name of my blog?

It's not because I'm an expert programmer who plans to use this blog to analyze others' code and point out their failures and inefficiencies. If I want to do that, I've got plenty of my own bad code to analyze.

No, the reason I'm calling this blog considered harmful is that I think blogs are a poor medium for dispensing expert advice. First, the format lends itself neither to a comprehensive overview nor to a detailed examination of any subject. Second, anybody can create a blog with minimal effort and dispense bad advice. Third, blogging often generates more heat than light; in fact, the more controversial the blog, the more readers it attracts. Conversely, the more popular a blog is, the more controversy it attracts.

Alastair Rankine recently offered a stinging critique of Jeff Atwood's popular Coding Horror blog. Among other things, Rankine does not think Atwood is the expert that the tone of some of Atwood's posts seems to convey. Atwood, in his response, admits no expertise: "I've always thought of myself as nothing more than a rank amateur seeking enlightenment." (emphasis in original)

The reality is, we are all rank amateurs. Computer science is still in its infancy. Every few years a new language, a new framework, a new methodology appears, promising to make programmers more productive. Some of this technology has delivered only a fraction of this promise; most has fallen by the wayside, leaving nothing but tons of legacy code to maintain. In the end, for all the advances in computer science over the last half century, none of us really knows anything.

So with all that in mind, why even start a programming blog? Simply because experience tells me that typing my thoughts helps me to organize them, and that gives me a better understanding of what I'm doing. Like Jeff Atwood, I'm seeking enlightenment. If I post a tutorial, it's mostly for my own use, though others might find it helpful as well. I may post work in progress, code that was hacked together for a small task that slowly accreted more features and is now in desperate need of refactoring. It's always interesting to see what vastly different approaches people will take toward improving kludgy code.

Furthermore, my experience with my theology blog (another area where nobody really knows anything) has taught me that feedback from others enhances the learning experience. Commenters might provide insight that I may never have found on my own, or they might provide the spark that sends my thoughts down a new alley to explore.

So, welcome to considered harmful. Maybe we can learn something together.

Labels: ,