I don't like your programming language of choice

December 14, 2021

I don’t talk much about technology choices. But today I’m going to break trend and tell you some of my opinions.

I like Go, and I dislike dynamically typed languages. I prefer GitLab over GitHub. I dislike JetBrains products. I loathe Jira. And I think PostgreSQL is better than MySQL.

Now you’re probably expecting me to defend each of these choices, and try to convince you that you should switch to my preferred technology.

Sorry to disappoint.

My intention today is actually to tell you to ignore my tech choices.

In fact, my goal is broader than that. I want to tell you to ignore even your own tech choices much of the time.

The thing is: These things are tools. And nothing more. And nobody really cares what tools you use. Least of all your customers.

If you’re in the market for a kitchen remodel, are you going to ask the cabinet maker whether he uses a DeWalt saw or Black & Decker? Are you going to ask if his tape measure is in centimeters or inches or even hands?

Of course not. You don’t care. And you shouldn’t care. What you care about is whether the cabinets look nice and function properly. That’s all.

Do tools matter at all, then?

Yes, they do. To an extent. But they only matter to the craftsman doing the work.

If you’ve been making cabinets your entire career with a DeWalt saw and a tape measure in hands (WTF?), you’ll be more productive using these tools on every job. So when you have a choice in the matter, it would be only logical to use your DeWalt and your hand tape measure.

But what if you’re joining a new cabinet-making crew, and they use centimeters instead? Or they’ve invested in B&D saws? You’ll adapt. Because you’re a smart person with that in-built capability.

Or maybe you’ve just attended a conference keynote presentation called “How to Measure Things In The 22nd Century”, and have just learned that hands are out of style, and in fact were probably the wrong tool for cabinet making since their inception, so you’re going to learn this new-fangled centimeter system. Good for you! It’s always great to learn new tools and improve your skillset.

But what will you do with the old cabinets that were built using the old, inferior system?

Tear them out, and replace them, right? Uh, I hope not.

Of course not, that would be silly, if the cabinets are still working. If you need to make a new shelf to fit the old cabinet, you likely will dust off your old hand tape measure just for the one job. But replacing perfectly functioning cabinets just because they were built with a less-than-ideal toolset would be silly.

As tempting as it often is to replace a working system with a better system, it can be the wrong approach.


Related Content

When are the best tools too expensive?

While I advocate for the best tools money can buy, sometimes the non-financial cost of the best tool isn't worth it.

You can't help everyone

Not everyone feels the need for your solutions. That's okay. You don't need to convince them.

“Greenfield” doesn't exist in agile projects

I've worked on a number of greenfield projects, but there's a problem: A greenfield project is only greenfield for about a week.