|
|
|
|
|
by _ph_
3300 days ago
|
|
C (and C++, who inherited most problems with memory insecurity from C) are still used for a very wide variety of programs. There are plenty of alternatives to C other than Rust. Which of them is appropriate depends on the task at hand. In no particular order, all the following languages can replace C with greater memory safety: Rust, Go, Oberon, Common Lisp, Scheme, D, Java |
|
- Lack of library and platform support
- Lack of tooling
- Lack of standardization
Go:
- Lack of tooling
- Lack of standardization
- GC
- Slower
- Higher memory usage
Oberon (Ada, RTS, etc.):
- Lack of library and platform support
- Lack of tooling
- Lack of standardization
- Obscure
Common Lisp/Scheme:
- Lack of library and platform support
- Lack of tooling
- Lack of standardization
- GC
- Slower
- Higher memory usage
- Obscure
- Can't access arbitrary memory locations (?)
Java:
- GC
- Slower
- Higher memory usage
- Can't access arbitrary memory locations
I'm not really a C apologist, but I am pretty irritated with the near-constant calls for C deprecation. It's a lot easier to say, "C sucks!" than it is to do something about it, and I think we should at least internalize how difficult replacing C will be before we go around castigating people for continuing to use it.