3 ms·
- Ada: good example, has substantial uses in certain areas. However, certain things are quite difficult, e.g. compile-time checked pointers (a la Rust's borrow-
by nneonneo 4y ago
- Ada: good example, has substantial uses in certain areas. However, certain things are quite difficult, e.g. compile-time checked pointers (a la Rust's borrow-checked references).
- D, Nim: neither provide strong memory safety guarantees. D has a safe subset, but it's not default (see https://news.ycombinator.com/item?id=12391720 https://news.ycombinator.com/item?id=12391720). Nim allows you to turn checks off at runtime. Both Nim and D generally use a GC.
- Java/Kotlin are not low-level: requires GC, and not often used for low-level systems programming. Great languages, but different niche.
- micronian2 4y agoThe fact that you originally didn’t know that Ada is heavily used in embedded clearly shows you don’t know it. Even though you edited your reply, any reader should seriously doubt your claim that “certain things are quite difficult” in Ada. Do you know that in Ada, you don’t have to use pointers or heap memory nearly as much as other languages such as C and C++? You can even write programs that don’t even use any. That avoids a whole class of issues. One of the extra advantages with Ada is that you can decide to utilize the SPARK variant and do formal proofs on software components that are more critical. I invite you and and others to watch the presentation by Altrans where they talk about 30+ years of SPARK usage to help develop ultra low defect software: https://youtu.be/VKPmBWTxW6M https://youtu.be/VKPmBWTxW6M
- thesuperbigfrog 4y ago>> Ada: good example, but not usually used for low-level systems programming. Has substantial uses in certain areas. Ada is primarily used for low-level systems programming and embedded systems: https://learn.adacore.com/courses/intro-to-ada/chapters/introduction.html#ada-today https://learn.adacore.com/courses/intro-to-ada/chapters/intr... Substantial portions of the Ada standard deal with systems programming and low-level representation on hardware: http://www.ada-auth.org/standards/22rm/html/RM-C.html http://www.ada-auth.org/standards/22rm/html/RM-C.html http://www.ada-auth.org/standards/22rm/html/RM-13-1.html http://www.ada-auth.org/standards/22rm/html/RM-13-1.html
- nneonneo 4y agoThanks for the correction. I will update my comment accordingly.
- goodpoint 4y ago> Ada: good example, but not usually used for low-level systems programming Ada is used for low-level programming plenty. > Nim allows you to turn checks off at runtime. That's not relevant. > Both Nim and D generally use a GC. No, Nim now uses deterministic reference counting ARC and provides safety similar to Rust.