For more ordinary software though, doesn't Rust make more sense? Its approach to memory management for instance, with a borrower-checker, seems much nicer than what Ada has to offer.
Disclaimer: I know neither language very well.
No language has traction, until it does.
It would be fair to point out though that Ada has had decades to catch on and replace C, but it hasn't done so, except in certain narrow areas of highly critical embedded software development in aviation and military applications. My understanding is that it's not easy to work with for 'general purpose' work (command-line applications on GNU/Linux), as it lacks mature bindings.
I think it's fair to say Ada failed to truly embrace Free and Open Source software. A pity, in my opinion.
Are the higher assurance-levels of SPARK going to remain unavailable to FOSS developers, as they apparently are now? [1]
[0] https://groups.google.com/forum/#!topic/comp.lang.ada/M3yS4S...
Lisp is a memory-safe language with automatic memory management, which removes all of the aforementioned classes of attacks that are available in C. In addition, the Lisp compilers are written in Lisp itself, not in C, which further decreases the attack vector.
Also, the currently-in-progress SICL project intends to do away with C completely, even for its garbage collection and OS-interfacing parts.
Totals grouped by language (dominant language first):
lisp: 336793 (84.60%)
asm: 30410 (7.64%)
ansic: 29862 (7.50%)
sh: 718 (0.18%)
objc: 299 (0.08%)
java: 7 (0.00%)
> Lisp is a memory-safe language with automatic memory management, which removes all of the aforementioned classes of attacks that are available in C.Yeah, right.
In Lisp, the programmer never frees memory themselves, so use-after-free and double-free are not triggerable by the user. Bound checks for all array types are in effect, so overflows are impossible. Strong typing and a lack of casting prevent type confusion.
Do you have any arguments other than the unsubstantial "yeah, right"?