3 ms·
It's easy enough to implement correct API usage semantics in a program of any size. If you need to rely on RAII in order not to screw things up, then it's an i
by abcd_f 7y ago
It's easy enough to implement correct API usage semantics in a program of any size.
If you need to rely on RAII in order not to screw things up, then it's an issue with the coding style or the application design. That's what needs fixing. Not the language choice. You got it backwards.
- Const-me 7y agoIt’s a hard problem, and language + runtime support helps. That’s why C++ has RAII, C# has IDisposable / using, Java has try-with, python has enter / exit / with, golang has defer, and so on. The only reason C has nothing comparable, it’s almost 50 years old now. The problem is only tangentially related to API semantics. The problem is mutating state. The state is not necessarily managed by an API, for instance CPU registers aren’t, you modify them directly. Same with other global state like I/O formatting options and locales, these things are just global variables.