programming in the
twenty-first century

It's not about technology for its own sake. It's about being able to implement your ideas.

How My Brain Kept Me from Co-Founding YouTube

Flickr blew my mind when it appeared back in 2004.

I'd read all the articles about building web pages that load quickly: crunching down the HTML, hand-tweaking GIFs, clever reuse of images. I was immersed in the late 1990s culture of website optimization. Then here comes a site that is 100% based around viewing large quantities of memory-hungry photos. And the size of photos was put entirely in the users' hands: images could be over-sharpened (which makes the JPEGs significantly larger) or uploaded with minimal compression settings. Users could click on on the "show all sizes" button and view the full glory of a 5MB photo. Just viewing a single 200K mid-sized version would outweigh any attempts to mash down the surrounding HTML many times over.

While still trying to figure out how the bandwidth bar had suddenly jumped to an unfathomable height, along comes this site that does the same thing as Flickr...but with VIDEOS. Now you've got people idly clicking around for an hour, streaming movies the entire time, or people watching full thirty minute episodes of sitcoms online. Not only was there no paranoia about bandwidth, but the entire premise of the site was to let people request vast and continual amounts of data. Such an audacious idea was so far away from the technical comfort zone I had constructed that I would never would have contemplated its potential existence.

I've learned my lesson. And yet I see people continually make the same mistake in far more conservative ways:

"On a 64-bit machine, each element in an Erlang list is sixteen bytes, which is completely unacceptable."

"Smalltalk has a 64MB image file, which is ridiculous. I'm not going to ship that to customers."

"I would never use an IDE that required a 2GB download!"

I see these as written declarations of someone's arbitrary limitations and technical worries. Such statements almost always have no bearing on reality and what will be successful or not.

permalink April 7, 2009



twitter / mail

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?