|
|
|
|
|
by derefr
3288 days ago
|
|
Algorithms and data structures are inherently hard to implement correctly and safely given low-overhead, bare-metal designs. Rust tries to guarantee that you've implemented things correctly and safely, and therefore makes all the formal verification of such into a requirement. Other low-overhead-bare-metal languages, meanwhile, trust you to have done the formal verification yourself using non-compiler-toolchain tools like linters and static analyzers. The people who use these other languages who do ensure correctness+safety, will have done all the same work they do in Rust—just using third-party tools instead. The people who use these other languages but who do not ensure correctness+safety, might seem to have an "easier time", but they will almost always end up with algorithms/data structures that—while seeming to work in most cases—have fatal flaws or vulnerabilities. To use Rust is simply to sign up for "doing the work" of formally verifying your code up-front, rather than brushing it off as something to think about in some vague, undefined "later." |
|