I tried to work on bug fix for Zed, waiting 30 seconds everytime you change a value was _very_ painful
I tried to work on bug fix for Zed, waiting 30 seconds everytime you change a value was _very_ painful
And the compiler at least attempts to tell me what’s wrong when it fails to compile (and give suggestion though that is very hit or miss for non trivial case).
The one case where the compiler is singularly unhelpful is when trying to hunt down why a future is !Send tho.
(Outside of compile times, which are a well known point)
I think you mean there could theoretically be an interpreted Rust, but I don't think anyone has ever made a prototype of a Rust interpreter.
The closest is probably rust-analyzer (the official language server), that maintains internal state and reacts to changes you make, but it doesn't create an executable artifact.
The other is probably the Cranelift Backend (https://github.com/rust-lang/rustc_codegen_cranelift), which can produce debug builds quickly.
I dont think this wont even work for most kind of programming. I always do an edit-compile-run cycle when im programming, or I break everything to .so and dynamically reload as much as possible. Very easy with C++ and C.
I am waiting on zig and its in place binary patching. But just saying that you should cargo check instead of running and seeing with your eyes if your change made sense or not or is affecting perf or not is....ridiculous.
I think this kind of development flow works better when you are writing already solved solutions or rewriting code. How on earth are you gonna cargo check a perf issue, or a game or memory leaks???
Zig devs are tackling the issue early, Rust devs are living with it, it's just sad
Just because the language is compiled does not mean it needs to take 30 business days to compile something.
You can have fast compile times and good performance too. SBCL the common lisp implementation is extremely famous in these circles for its performance. IT IS A BATCH COMPILED LANGUAGE WITH A REPL!!
You cannot use cargo check for perf issues, for memory leaks, for trying to solve a problem that does not have a solution...etc etc.
Even then cargo check will make you bleed if you use macros.