Skip to content

Everything isn’t an object

My introduction to the world of programming was via BASIC, C and C++. Along the way of course, I learned other stuff, including Java with its common theme of “Everything is an object”.

I could never get this concept of everything being an object, and hence I’ve never liked, and have always struggled with Java. That’s always made me feel totally dumb – given all the hype and oomph that Java receives for its features and ease of use, I could really never figure out Java totally.

It turns out, I’m not the only one. I came across this article by Steve Yegge entitled Execution in the Kingdom of Nouns. A totally humourous yet amazingly insightful take on “everything is an object”. I’d say its a must read for any serious programmer (and I’m sure the rest have run away by now) – and what it did for me basically was tell me why I felt the way I do about Java. Most memorable quotes for me:

Object Oriented Programming puts the Nouns first and foremost. Why would you go to such lengths to put one part of speech on a pedestal? Why should one kind of concept take precedence over another? It’s not as if OOP has suddenly made verbs less important in the way we actually think. It’s a strangely skewed perspective. As my friend Jacob Gabrielson once put it, advocating Object-Oriented Programming is like advocating Pants-Oriented Clothing.

I’ve really come around to what Perl folks were telling me 8 or 9 years ago: “Dude, not everything is an object.”

I found Steve’s other articles are very insightful too – especially the one on “Moore’s Law is Crap“.