Re:Podman: A Daemonless Container Engine
by MaxBarraclough on Friday February 12, 2021 @07:12AM
(#26112815)
> There is zero excuses to C in userland in 2020.
I wouldn't go quite that far. I'm generally in the C++ camp (rather than C, that is) but there are significant advantages to a compact and stable language, and real disadvantages to a sprawling disaster like C++ that grows still more monstrously complex every few years.
This topic turned up a year ago: https://news.ycombinator.com/item?id=21946060
Your point stands though: well written modern C++ should be much less prone to memory-safety issues than well written modern C.
Yeah and C++ would be a way better language to write critical system daemon in 2020 than C. Both safer and more productive while keeping the exact same portability and performance as C when necessary.
Most safety issues of C (buffer overflows, use-after-free, stack smash) are not a problem anymore in modern C++.
Yes, writing new userland software in C in 2020(1) is non-sense.
- Use at least C++ if you are conservative.
- Use Rust if you aim for absolute safety.
- Use Go if you accept the performance hit and do not need libraries.
There is zero excuses to C in userland in 2020.
The only excuse is some Red Hat folks seems to practice C++ hating as some kind of religion.
That exactly what give us "beautiful" monstrosities like systemd or pulseaudio with their associated shopping list of CVEs [^1]
Even GCC maintainers switched to C++, by the sake of god, do the same.
----
[^1]: https://www.cvedetails.com/product/38088/Freedesktop-Systemd...