> I get the feeling that Rust design is concerned more about write-ability
> of the code than readability.
We're usually accused of the opposite: being explicit about things really helps in the long run. We've made several choices that we think, at least, helps "in the large" but hurts "in the small". We can always be wrong, of course :)
> code comprehension (debugging, integration efforts, etc) by third parties will be hampered.
In what way? I still don't understand what you're getting at here.
> Not importing the entire library will result in faster compilation.
Rust's unit of compilation is a "crate", which gets compiled at once. Metadata is then stored in the artifact (.rlib) so that you can know the interface, etc, and you don't need to recompile the rlib when you change what aspects of the library you use. So I'm a _little_ bit unsure of the _exact_ details, but I think it's the same as precompiled headers, to my knowledge.
> where codebase took 12 hours to compile on a powerful cluster.
Well, I'm sure we'll get to really huge projects someday, but we tend to do the "small packages" philosophy, so an initial compile might take a while, but subsequent ones aren't as bad. I just did a clean build of Servo, which is roughly 6MM LOC (575k Rust, 500k C, 1MM C++ (Spidermonkey, I'm guessing)), and it took 16 minutes on the first (debug) build, and 3 minutes on the second, after touch-ing the main file. Lots of the initial time is building the 170 (!) dependencies, which then don't need to be compiled again. (And your second build-times will be different based on which sub-package you're building. Some are faster, some are slower.)
We also have a lot of compiler performance improvements coming down the pipeline, including incremental recompilation within a single crate.
> Since both are supported, maybe the parser can be made smarter?
It's been debated, but it's another edge case to remember. It's not clear that adding another special rule to the language is worth saving four characters.
> Is not easily read or debugged ( on which line do you set the breakpoint, etc).
I think it depends. I come from a functional background, so reading it feels fairly straightforward to me (though that for in a fold is a bit odd), and debugging should work as usual, though I don't feel the need to use a debugger a whole lot in Rust.
Thanks for taking the time to reply. Skepticism is good! Constructive criticism is the only way things move forward.
We also have a lot of compiler performance improvements coming down the pipeline, including incremental recompilation within a single crate.
It's been debated, but it's another edge case to remember. It's not clear that adding another special rule to the language is worth saving four characters. I think it depends. I come from a functional background, so reading it feels fairly straightforward to me (though that for in a fold is a bit odd), and debugging should work as usual, though I don't feel the need to use a debugger a whole lot in Rust.Thanks for taking the time to reply. Skepticism is good! Constructive criticism is the only way things move forward.