The world is far more of a chaotic jungle than the facade makes it appear. There is yet much opportunity for mischief for those who dare and have the resources and lack of moral compass.
The ease/comfort of our so-called "Modern Civilization" is built on illusions constructed intentionally by people-in-power/govts-in-collusion. People are kept distracted and managed using techniques of propaganda and reflexive control.
The developed/richer countries take advantage of the developing/poorer countries by offshoring dangerous/poisonous/etc. industries/work onto them while mouthing platitudes and absolving themselves of all responsibilities.
If you start asking questions (and educate yourself) on how-a-thing-comes-to-be from first principles, what happens to it after its end-of-life, the effects on the people involved in the entire chain (from birth to death) you will rise up in arms to tear the system down and rebuild it all.
Here for example is a shocking article on waste tyres from around the world being sent to India to be disposed off and how the entire process literally poisons poor people forced to do that job; The Black Wind: How India is becoming the World's Waste Tyre Furnace - https://www.reporters-collective.in/trc/india-is-becoming-wo...
And Psychologists!
Reading the comments in this thread is quite amusing.
As a driver in India, i can tell you anything goes as long as you don't get into an accident (which may/may-not kill you) or get caught by the police.
No rules matter and the only goal is to "one-up" everybody else on the road and if they are trying to "one-up" you, then prevent it by any means possible. It is a "game of chicken" in its purest form; game theory in action. Rules are mere suggestions only followed by the meek and the weak.
You have no idea how invigorating it is to drive in India.
Is India about to make Ozempic-like weight-loss drugs a whole lot cheaper? - https://edition.cnn.com/2026/02/07/india/india-semaglutide-p...
I know I could do C++, and you could argue that's better, but I find C++ to be exceptionally irritating to use. Every time I've used C++ I get people telling me I'm using it "wrong", sometimes in contradictory ways. Sometimes I should use a "friend" function, sometimes "friend functions are evil". Sometimes multiple inheritance is fine, sometimes it should be avoided like the plague. Sometimes you should "obviously" use operator overloading, sometimes you should avoid it because it's confusing because you don't know which functions are being called.
I'm sure someone here can "educate" me with the best practices for C++, and maybe there will be some reasoning for it, but ultimately I don't really care. I just found the language annoying and I don't enjoy using it. I know that I could "just write it mostly like C and use the C++ features when I need it", but I have just found that I have more fun thinking in pure C, and I've kind of grown to enjoy the lack of features.
Maybe it's just a little bit of masochism on my end, but I like the fact that C gives you so little. You kind of have to think about your problem at a very fundamental and low level; you have to be aware of how memory is allocated and deallocated, you don't get all these sexy helper functional-programming constructs, strings aren't these simple automatic dynamic things that you have in basically every other language. You have a dumb, simple language that will give you exactly what you need to write programs and very little else.
Most stuff I write uses a garbage collector, but the safety and easy of writing stuff with garbage collectors like Java makes it very easy to be lazy. I've grown to appreciate how much C makes you actually think about problems.
That is because you are looking at Design in C++ wrong. Language features and low-level abstractions are just mechanisms. You have to put them into a coherent framework for modeling a problem domain via commonality & variability analysis (aka domain engineering) onto a solution domain consisting of language features, idioms and patterns.
For a very good explanation, see the classic book, Multi-Paradigm Design for C++ by James Coplien.
The above can also be found in his PhD thesis Multi-Paradigm Design available in pdf form here - https://tobeagile.com/wp-content/uploads/2011/12/CoplienThes...
What i am pointing out are neither complex nor any magic under-the-hood. They are simply techniques in the C++ repertoire well-known since the early 90's and used in all high-performance C++ libraries.
tialaramex made a big deal out of overheads in C++ dynamic dispatch (which incidentally are pretty minimal) using a trivial example, when performance focused (both time and size) C++ programmers do not use it that way at all. Modeling in C++ can be done in any number of ways and is driven by specific perspectives of the end goal.
C++ dynamic dispatch (your "virtual interfaces") is achieved by welding a vtable onto every type and providing a pointer to that vtable for instances of the type. If in 90% of your code you deal with specific types like Goose or Swan or Duck or Seagull, and only 10% needs to work with the broad Bird category well, too bad, every Goose, Swan, Duck and Seagull carries around that vtable pointer even if it goes nowhere near that 10% of the system. This way your Bird code "just works" in C++.
That's not the only way to crack this nut. Idiomatic Rust approach uses vtables only in the Bird code, elsewhere they don't exist, and thus don't take up space in a Duck or whatever that's always a Duck, but in exchange now you're spending more time thinking, because by default there aren't any vtables and so dynamic dispatch isn't possible at all.
So while that C programmer has to implement features by hand, they are at least able to specifically implement the feature they wanted, not whatever was easiest for Bjarne Stroustrup last century.
You can get exactly what you are asking for in C++ using techniques of static polymorphism and CRTP pattern (https://en.wikipedia.org/wiki/Curiously_recurring_template_p... and https://en.wikipedia.org/wiki/Barton%E2%80%93Nackman_trick) along with traits and dynamic dispatch (if needed).
For great examples of the above, see the classic Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples by Barton & Nackman (1994).
And Psychologists!
Reading the comments in this thread is quite amusing.
As a driver in India, i can tell you anything goes as long as you don't get into an accident (which may/may-not kill you) or get caught by the police.
No rules matter and the only goal is to "one-up" everybody else on the road and if they are trying to "one-up" you, then prevent it by any means possible. It is a "game of chicken" in its purest form; game theory in action. Rules are mere suggestions only followed by the meek and the weak.
You have no idea how invigorating it is to drive in India.
Drive in India and you will understand mathematical concepts of Chance/Randomness/Probability/Non-determinism/Game Theory/etc. along with philosophical concepts of Fate/Destiny/Providence/etc. in so direct and visceral a manner that you will never forget the lessons. Sissified countries with rules and regulations for driving can never give you such direct knowledge.
Game Theory - https://en.wikipedia.org/wiki/Game_theory
Game of Chicken - https://en.wikipedia.org/wiki/Chicken_(game)
The game of chicken models two drivers, both headed for a single-lane bridge from opposite directions. The first to swerve away yields the bridge to the other. If neither player swerves, the result is a costly deadlock in the middle of the bridge or a potentially fatal head-on collision. It is presumed that the best thing for each driver is to stay straight while the other swerves (since the other is the "chicken" while a crash is avoided). Additionally, a crash is presumed to be the worst outcome for both players. This yields a situation where each player, in attempting to secure their best outcome, risks the worst.
How to learn One-upmanship/Gamesmanship:
The British author Stephen Potter actually wrote a manual on the practice of such games titled The Theory and Practice of Gamesmanship (or the Art of Winning Games without Actually Cheating) which sissies can study to become strong - https://en.wikipedia.org/wiki/Gamesmanship
For the even more sissified sissies who do not want to read a book, there is a documentary titled School for Scoundrels Or How to Win without Actually Cheating) which is very instructive - https://en.wikipedia.org/wiki/School_for_Scoundrels_(1960_fi...
Disclaimer: I am not responsible for the consequences if the above emboldens you to act in such a manner in your specific context.