Entrepreneur. Meet Thought Leader.

by DeAngelo on March 7, 2011

“I had been harboring some suspicions that our big codebases might benefit from the application of some more of the various “modern” C++ design patterns, despite seeing other large game codebases suffer under them. I have since recanted that suspicion.”

John Carmack in Bethesda Software Blog post

While doing a bit of research on a couple of experimental side projects, I ran across the above post by John Carmack as well as an old post by Paul Bucheitt whom most may know better as the inventor of Gmail and AdSense, as well as co-founder of FriendFeed. In it, Paul noted how a fairly common operation (image scaling on a web app) takes a few lines of python while it takes close to a 100 lines of java code. And no, it has nothing to do with Java being a “bad language”. Paul blamed this on “amazingly bad” APIs:

“I also have a second theory about what happened to Java: it attracted people who like to write piles of code filled with endless abstractions…”

This sound familiar to any developers?

Apparently Joel Spolsky (Joel on Software author and StackOverflow co-founder) and Jeff Attwood (StackOverflow co- founder) have noticed similar issues, judging by this stackoverflow podcast where they admit to not having a strict adherence to MVC, don’t use web forms, or particularly utilize methodologies like unit tests. On unit tests in particular, Joel goes so far as to say that 100% test coverage is a bad thing and that many methodology authors “frankly haven’t written a heck of a lot of code”.

Ever since I started software development, I’ve always enjoyed reading the essays of many industry “thought leaders” as a source of alternative approaches to things. But I’ve also been struck by how few high profile developers creating software for customers have ever come out and explicitly supported their methodologies. Yet, in many circles, the conclusions drawn by these thought leaders seem to be accepted as law, often accompanied by lots of supporting annectodotal evidence. But it’s all annectdotal. There’s no “proof” that these methodologies definitively work better across the board and I’m not aware of any formal research proving that they do.

Paul Bucheit provides an explanation for why a design pattern-compliant and unit tested library was ultimately so frustrating to use:

“If you are building a platform, you should also be writing applications for that platform, and the platform should be designed to make life very simple for those apps.”

I can’t help but wonder if Paul is onto something with this and I think it crystalizes many misgivings I have about methodologies. These methodologies are not accompanied by applications developed using those methods. We are simply told they’ll work. And we believe it!

Anyway, does anyone else find it odd that there is such a disconnect between recognized developers and recognized thought leaders?

Comments on this entry are closed.

Previous post:

Next post: