Wednesday, February 7, 2007
Shortest Code Contest and Obsessions with inefficiency
Tomorrow night (Thursday) is Mercer's Shortest Code Contest, in which different programming problems are presented to be solved by the participants with the goal being to write solutions that require the smallest file size to solve the problems. The contest reminded me of a oddly philosophical conversation I had with one of the Computer Science teachers, Dr. White, concerning why people are fascinated not just with improving things, but in finding ways to make them worse. The discussion was sparked by a conversation among programming team members on the idea of a sorting algorithm which sorted in the least efficient manner possible while still having every part of the algorithm necessary to complete the task. Affectionately dubbed the "slowsort," it ended up being a factorial algorithm, meaning that to if sorting 1 item takes 1 second, then sorting n items takes n! seconds. But why were we fascinated by it (aside from the fact that we were CS majors)? Why were the Rube Goldberg machines so fascinating? Why do people enjoy inefficiency in this way? I'm still waiting for an answer, but continue to enjoy designing code that works as inefficiently as possible. Maybe someday I'll design a "slowersort."