September 2007

You are currently browsing the monthly archive for September 2007.

After posting about how fast things change in the computer hardware field, I came across this 25 year-old film by the University of Toronto that compares and contrasts various sorting algorithms. I was fascinated with these algorithms when I was in college and after watching this 30 minute film, I can assure you that I’m still intrigued by the subject.

The most interesting thing I realized from watching it is that sorting algorithms haven’t changed at all since this movie was made. That is, quicksort is still the most widely used sorting algorithm (followed closely, I’m sure, by bubble sort — not because of it’s efficiency, but because it’s the way we humans sort physical things (i.e. playing cards), so naive programmers often “reinvent” this way of sorting in code, only to find out later just how slow O(n2) algorithms actually are). Most modern computer languages provide built in sorting routines these days, and those routines use quicksort.

So, even though our computers are getting faster and smaller at an exponential rate, the theory behind efficiently programming them was largely finished decades ago. Of course, this is all on the verge of disruption as we start dealing with multi-core parallel processing and quantum computers where algorithms like quicksort that we’ve grown to rely on no longer work very well and start to look like poor, old bubble sort.

That’s when I know it’ll be time to retire.

Tags: ,

A friend sent me a link to this photo that demonstrates Moore’s Law. For those of you that don’t know what that is and are unwilling to click the link and read about it yourself, Moore’s Law states that “the number of transistors that can be inexpensively placed on an integrated circuit is increasing exponentially, doubling approximately every 18 months.” The big drum-like device in the picture is what it took to store 1 gigabyte 20 years ago, and the little compact flash card that the hand is holding is 1 gigabyte today (well, I guess it’s been like that for a couple of years now — you can now find cards of the same size that hold 16 gigabytes).

This picture reminded me of the first hard drive that I owed, purchased for my new Mac Plus in 1989. It was 20 megabytes (not gigabytes — a megabyte is roughly 1/1000 of a gigabyte) and was about 18 inches x 18 inches x 5 inches in size. Having been programming computers without hard drives for years before that purchase I remember thinking to myself, “I’ll never fill that up.” Of course, 8 months later I was having to delete things off the drive (mostly games) to make room for more term papers. Ah, the good old days.

Compare this with today. I have a RAID5 network-attached storage device (basically, a big hard drive connected to my network rather than a single computer) that has 1.5 terabytes of storage (a terabyte is roughly 1000 gigabytes or approximately 1,000,000 megabytes). Of course, when I bought this device, I avoided the hubris of thinking that I’d never need more space. We’ve already filled half of it.

Tags: