The Whole Kaboodle

Forget language wars. It’s the whole kaboodle which matters.

The main purpose of this blog is to record my thoughts about programming. If you want a quick summary, it’d probably be “todays programming tools suck” and “we need to consider the whole kaboodle, not just languages”.

The whole what? Let me explain …

I’m talking about tools, but not just tools. If you are writing software, then anything which you use to make a working program is fair game. I’m talking easy stuff like the source code editor, build system, debugger and profiler. I’m also talking about api documentation and how you search/read it. I’m talking about little things like autocompletion/tooltips and big stuff like frameworks and libraries. I’m also talking about stuff which usually aren’t included like Google, CodeGuru and the guy sitting next to you.

All these parts are, to a greater and lesser extent, connected to each other and affect each other. You don’t get very good code browsing or refactoring tools for c++ because the syntax and semantics are complicated – the language really restricts the tools. Most developers are maintaining existing codebases, and spend a lot of time reading code so poor code browsing is pretty bad news. Overall, it probably accounts for more wasted time than any syntactic foibles or
missing language feature.

My thesis is that you need to consider the whole kaboodle and look how all the bits fit together without getting too concerned with a single part. Because, it’s the whole system which you use. And if the system is bad, you’ll wake up one day and realise that your application is badly designed and hard to refactor. You’ll realise
that the learning curve for new developers on your project is way steeper than it ought to be. If the system is bad, you get stressed. You work long hours. If it’s good, you go home on time and happy.

Forget language wars. It’s the whole kaboodle which matters.