Technical Enthusiasm Isn't All Bad

By Eric — 2 minute read

I love you, robot

Image credit: Stable Diffusion

I've read some things recently about choosing the right tool for the job, from a technology and programming language perspective. Most recently it was a post by Jeremy Bowers.

In it, he pokes at Python's weaknesses, but he isn't really writing about Python (as he says many times). Instead he's saying that talking about weaknesses is often perceived as an attack that must be defended against by those who are "fans" of technologies when technology choices are being made.

In the process of making that decision, you are going to find that every option has downsides. Every single one. If you haven’t found them, you aren’t looking hard enough.

And you will be crippled as a senior engineer if you are unable to calmly evaluate the downsides of your favorite options because you see them as attacks on the target of your fandom. You can’t think this way as an engineer.

...

Engineers are not fans of technologies.

They are also, of course, not dispassionate Vulcans who get every assessment perfectly rationally correct at all times, trivially proved by how much even relatively rational engineers can disagree with each other.

But engineers should never be fans.

Yes, I agree. There are always trade-offs and a project is going to have a greater chance of success if rational technology choices are made. And being a "fan", especially in the "fanatic" sense isn't an attitude conducive to rational choice. But if I take the liberty of softening "fan" to be more like "enthusiast", I want to say:

Show me an engineer who isn't a fan of any technologies and I'll show you an engineer who isn't an expert in any.

It is hard to imagine an engineer would read books, listen to podcasts, read and write blog posts, do side projects, and convince her boss to send her to conferences without her having some enthusiasm for the subject matter. And being an expert with a technology can make it the right choice in more situations.

I guess I feel like it is OK to be a fan of technologies, so long as the relationship isn't exclusive. Being a fan of Python isn't so great if its the only language you've used. Being a fan of React isn't so great if you've never built a traditional server-side HTML web application. Diversify your knowledge with technologies that work well in different situations, but don't feel bad if you get excited about some more than others.