19th Mar, 2008

Programming ‘works of art’

Quick thought: many of my art friends in college spent countless hours studying works of art. They learned every day about great art and how it was made.

Considering the fact that many programmers consider programming a creative activity, I don’t remember studying any ‘works of art’ during class. Nothing. Nada. Why don’t more programming classes spend time analyzing medium/large, well-organized codebases? Could this give young, budding programmers a better understanding of what makes good code?

Should studying other established codebases become part of computer science curriculums?

Responses

Definitely. My college education was probably a little weirder than most, because I kept bouncing back and forth between CS and IT, but I feel like I never got a good prep for dealing with real world apps. In CS, we wrote little applications that didn’t really do anything useful, and in IT, we wrote simple web sites that only included a few pages. I never got a good lesson in designing the architecture of either a thick app or a web app, and some good examples would have helped.

I completely agree. I think one of the problems with that, however, is that there are very few “works of art” in the world of programming. A few, sure, but not nearly as many as there should be.

In “works of art”, I would consider how it works and how it’s used as much a part of it as how the code looks. In my limited experience with using Ruby, I’d call it a work of art. The same would go for SimpleXML and XMLWriter in PHP, and I’ve worked really hard to make SimplePie as close to “art” or “magic” or whatever as possible. :)

@Ryan

I agree, there seem to be very few programming ‘works of art’ that I know of. Maybe it’s because so much code is not open source? Could that be why we don’t study large codebases?

And there’s 2 sides: interface (what the customer sees) and code (under the hood). One can be a work of art and the other could be crap.

Categories