
The Missing Skill in Software Development

Why is the saying “When in Rome, do as the Romans do” so relatable in software development?
I recently commented on a post about println vs. std::cout in C++. The author praised the “new” println function (not really new btw—it popped up in C++23) and claimed C++ devs finally have a normal way to print messages.
Normally, I don’t jump into these debates. But there’s a bigger issue here:
The problem with importing expectations and stereotypes from other languages into C++ is that you end up resisting the language itself.
Take this line from a C++ tutorial:
std::cout << "Hello World." << std::endl;
If you come from Java, you might ask:
Why the heck are we shifting “Hello, World!” into this ‘cout’ thing? Why not just use println() like sane folks do?
Here’s the problem: as a newcomer, you shouldn’t fight the language on day one. You’re a freaking beginner, so be a humble learner!
In three decades, I’ve seen countless fresh grads walk in with zero humility, convinced they knew it all… until the first real challenge (like the first conflicting git push or a sporadic race bug) taught them they don’t actually know it all.
So, what’s wrong with questioning syntax in a language that’s been evolving for around 40 years and powers critical energy and military infrastructure?
Short answer: By resisting the language, you resist the challenge to adapt and learn.
A paradigm shift (and some curiosity) is required when moving to a new programming language (or to a new job, city, or country).
Otherwise, you’ll never use the language to its full potential. Which would be a shame, given that most critical systems are written in C++ (by people who wouldn’t touch ‘println’ with someone else’s stick).
As the saying goes: When in Rome, do as the Romans do.
Want more?
Read this next: Two Companies Bet on AI. Only One Survived.
Responses