This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Self contradiction
Feed Title: Michael Lucas-Smith
Feed URL: http://www.michaellucassmith.com/site.atom
Feed Description: Smalltalk and my misinterpretations of life
Here is a paper slash speech that tries to critique programming as it stands today - and they do a darn bad job of it. Points that are pushed home: premature or naive optimisations make code harder to follow and give you only miniscule performance increases.
To illustrate this point, the author takes some code and proceeds to analyse what is going on by attacking synchronisation code in the core java libraries for IO. He rants for several slides about it, but only manages to get a small performance increase. Instead, he says, you need to look at your algorithm with large data sets to make sure they're not quadratic - Correct!
But then he says the way we can solve some of these problems is more static type checking - Wrong! Static type checking cannot understand your algorithm. It cannot know if its quadratic or not. There are a couple of patterns you could look for, but the likelihood of it actually identifying an ineffeciency in your algorithm is pretty low.
It's almost as if the guy is deliberately trying to shoot himself in the foot. He obviously hasn't made the connection between premature type declaration and poor readability either.
Finally, we see his point, he's upset that benchmark programs are hard to understand and have been written to be optimised for a language / library set not an algorithm. Duh! Of course. People were trying to benchmark a language / library set, not have a mathematically proveable code proof example written in your "one true language" java.
He seems to have rehashed points that the Smalltalk and Lisp community constantly push - programming is about people, not computers. Yet he comes up with no thoughtful conclusions what so ever. Status quo according to him "We need to change by doing the same stuff we're doing now". Good work, not. I feel a bit like bileblog today.