I'm James Hague, a recovering programmer who has been designing video games since the 1980s. Programming Without Being Obsessed With Programming and Organizational Skills Beat Algorithmic Wizardry are good starting points. For the older stuff, try the 2012 Retrospective.

Where are the comments?

twitter / mail / newsfeed

Easy to Please

I have favorited over seven thousand photos on Flickr.

"Favoriting" is not a valuable currency. Clicking the "Add to Faves" icon means I like a photo, I'm inspired by it, and I want to let the photographer know this. Doing so doesn't cost me anything, and it doesn't create any kind of tangible reward for who took the photo. As such, I don't feel a need to be tight-fisted about it. If I enjoy a photo, I favorite it. For photos that don't grab me, I don't do anything. I look at them, but "Add to Faves" remains unclicked. There's no negativity, no reason to bash them.

With over seven thousand favorites, I'm either easy to please or have low standards--or both.

I prefer "easy to please," but the "low standards" angle is an interesting one. There's a Macintosh rumors site that lets users rate stories as positive or negative. Here's a story from earlier this year that I can't imagine causing any bitterness: "iPhone 4 Available for Pre-Order from Apple." It has 545 negative votes. Who are these people? I don't mean "people who don't like or own an iPhone," I mean "people who would follow an Apple rumors site and down-vote the announcement of a flagship product that's both exciting and delivers on its promises." Clearly those people need to have lower standards or they'll never be happy.

I'll let you in on a secret: it's okay to not think about technology on an absolute scale. And it's also okay to use two competing technologies without being focused on which is better.

My dad bought an Atari 800 when I was 14, so that's what I used to write my own games. He later got an Apple //e, and there was a stark difference between the two computers. The Atari was full of colors and sounds and sprites. The Apple was full of colors, but it was connected to a monochrome monitor that only showed green so I couldn't experience the others. Sounds? Funny clicks and buzzes. Hardware sprites? No. But it had its own charms, and I wrote a couple of games for it, too.

I like using Erlang to solve problems. I also like using Perl. And C. And Python. It might look like there's some serious internal inconsistency going on, and I guess that's true. I think about functional programming when using Erlang. It's a hybrid of procedural and functional approaches with Perl and Python. In C I think about pointers and how memory is arranged. Is one of these approaches superior? Sometimes. And other times a different one is.

I'm not even sure that many extreme cases of putting down technologies hold water. The anti-PHP folks seem rather rabid, but that's not stopping people from happily using it. Despite the predictable put-downs of BASIC, I'm fond of BlitzMax, which is an oddball BASIC built around easy access to graphics and sound. Everyone makes fun of Windows, but it's an understatement to say that it clearly works and is useful (and I'm saying that even though I'm typing on a MacBook).

(If you liked this, you might like Slumming with BASIC Programmers.)


This Isn't Another Quick Dismissal of Visual Programming
A Concurrent Language for Non-Concurrent Software
Advice to Aimless, Excited Programmers
Erlang vs. Unintentionally Purely Functional Python
Common Sense, Part 1