this post was submitted on 12 Sep 2026
2 points (55.0% liked)
Programming
15577 readers
2 users here now
All things programming and coding related. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Just as an example, neither the C++ documentation nor its sagely bloggers have ever shown why it is a good fit for, say, systems programming. A really neat way of handling bit-level data is actually in Erlang's bit syntax.
Separately, I spluttered when I realized that Boost includes 2 statechart libraries which proclaim the approach is widely useful, but nothing else in Boost uses it - not asio or its ilk, not the parser libraries, not the graph library.
Erlang requires a runtime environment, which disqualifies it for situations where you don't have a filesystem to load the runtime from, like developing a kernel or for microcontrollers.
Of the popular languages, your choices are virtually just C, C++ and Rust for that.
More towards your general question: Not needing a runtime environment also means you can use C, C++ and Rust for cross-language libraries. For example, SQLite and OpenSSL have just been implemented once in C, and then you simply have a thin wrapper for Java, Python etc..
If you are looking to build a library that can be used by as many devs as possible, that's a selling point which is hard to ignore.
I wasn't thinking not needing a runtime is a language feature. After all, needing a runtime hasn't prevented Erlang from running on microcontrollers (Atom VM, GriSP); or Python either.
Basically, C++ and its ilk have no language feature for their purported stronghold of systems programming. Inertia isn't a language feature unless the language has actual features (like, say, Common Lisp).
You picked out my one argument where you have a (weak) counterargument and then declare there's no other arguments. Does not sound like you want to understand...
I did you the courtesy of replying with a bit of info about Erlang, even though you weren't addressing the actual point about lack of language features like Erlang's. BTW, by conceding that the argument for C++ on microcontrollers is weak given other languages doing better on that front, you are conceding that C++ doesn't have features to help systems programming.
Arguments are being made for language platform features when the question of language features comes up. I doubt it has to do with people not understanding the question.
More likely just scratching heads to find atleast 1 useful C++ (or any other mentioned language) feature that actually is useful to the domains professed to be "supported". This isn't an attack, I am in this boat too! The utility of its language features seems to be no more than "atleast it is not assembly".
Boost is too monolithic to be useful. I am not surprised it has redundant functionality. Get the great parts of Boost like asio separately.