Rust is an overly complicated language that made the exact same deadly mistakes that c++ made: takes too long to compile and is too complex.
Yes I get it, you're working on the compile times. You will never bring them down to under 1 second regardless of amount of libraries used, let's just say this once and for all. I add two crates 'hyper' and 'postgres-rs' in a 500 line(!!!) program and it's STILL a 2.8 second compile time. Imagine if I actually use Rust for real software and have 500k lines of code.
I'm putting my hopes on Jonathan Blow's Jai language.
I don't know why you are down voted. Compile time is a Rust issue for me. I'm spoiled by D. However I'm not sure if borrow checking is inherently slow. The release notes are discouraging. 30% faster? Aim for 10 times faster. Maybe it is just the LLVM backend. It still is slow.
> Maybe it is just the LLVM backend. It still is slow.
It's a combination of two things, as far as I know.
1. The LLVM backend is slow.
2. The Rust frontend has historically abused the LLVM backend badly, by feeding it large amounts of barely optimized code. This is being worked on, but it's going to take a while.
> 2. The Rust frontend has historically abused the LLVM backend badly, by feeding it large amounts of barely optimized code. This is being worked on, but it's going to take a while.
Yes, it's taken a _long time_ to pay down the technical debt from writing a compiler in itself for years. A huge step forward for doing so landed fairly recently, MIR, so progress is being made. It's already resulted in significant improvements, and will lead to more in the future.
What you aim for and what you achieve are different things. These things take time. We've been getting faster every release. 10x faster within a single six-week period is not realistic.
(Borrow checking is not generally the slowest part; it's the codegen. Which is LLVM. But also is the IR we feed to LLVM.)
Go is fast. D is fast, but its compile time meta programming features can make it arbitrarily slow.
Java, Python, etc actually compile at run time so the comparison is invalid. You can measure the full iteration speed, but then image based wins (Smalltalk, Common Lisp).