←back to thread

3 points uncircle | 1 comments | | HN request time: 0.38s | source
Show context
nickpsecurity ◴[] No.44604802[source]
So, maybe add a few features to Zig and we'll have a Rust alternative for many use-cases?

For borrow checker, I still think a combo of static analysis and concurrent GC's could help. Pair a static analyzer, like Infer, with your code that doesn't borrow check. If it says it's safe, you're good to go. If part of it is safe, other parts get ref-counted or a concurrent GC by default until proven safe.

Users get benefits of all safe code in Rust. They can write their own code as fast as with a GC'd language with smaller-than-usual, performance costs. Anything proven safe by static analysis goes faster without the GC. What do you all think?

replies(2): >>44605503 #>>44615629 #
steveklabnik ◴[] No.44605503[source]
The problem with this strategy is similar to what happens with escape analysis: you make a small change, and suddenly the performance aspects can change drastically.

The errors are useful design pressure on a system, not something you actually want to just codegen in a drastically different way to fix.

replies(1): >>44610810 #
1. nickpsecurity ◴[] No.44610810[source]
That's a good point on performance. It's very nonlinear and unpredictable. Might still be OK if assessed on a case by case basis. Also, any system language should have unsafe for when performance is highest goal.