4 ms·
I've gone all-in for Rust for any side projects. I still get paid to write C++, but I choose to use Rust. I'd say that I'm up to around 20K LOC at this point an
by cjcole 11y ago
I've gone all-in for Rust for any side projects. I still get paid to write C++, but I choose to use Rust. I'd say that I'm up to around 20K LOC at this point and the sheer peace of mind that I get is worth almost any amount of extra arguing with the compiler when it just works the first time I run it -- which happens a surprising proportion of the time.
Improvements which would make me really happy:
* Faster builds. This is still a pain point.
* "Non-lexical borrows" [1]
* Trapped under ICE [2]
I know that all of the above are being actively worked on, so I'm waiting patiently. [3]
[1] Borrows are currently tied to scopes (blocks, etc). This makes certain safe borrowing patterns illegal, requiring slightly-to-highly awkward workarounds.
[2] The compiler crashes too often (ICE). I was recently stuck with a non-compiling code base and facing the prospect of systematically commenting out code to find the offending piece. Fortunately, this one was fixed quickly. There are many others remaining, though. (It is getting better as Rust gets more use.)
[3] This is a lie. Patience is rarely one of my virtues.
- larsberg 11y ago> Faster builds. This is a pain point for us, too, on Servo. There's fantastic active work going on for incremental builds, which will solve our most pressing needs (long turn-around on debug changes). Also, if you're on linux, make sure you're using gold instead of system ld. That change made a huge difference for Servo.
- Manishearth 11y ago[1] should get fixed post-MIR (the new "middle IR" that's in progress right now) [2] --- let's hope this improves :)
- gamegoblin 11y agoThe ICE issue is what turned me off Rust. I went all-in for side projects like you (this is how I typically learn a language), but after two months or so, I was spending 30-60 minutes a day trying to figure out the cause of compiler crashes, and then tweak my code so it didn't trigger them. I've heard the ICEs have gotten much better in 1.2 (I was working in 1.0), but I haven't picked it up again.
- steveklabnik 11y agoTo you or anyone else who reads this, if you find an ICE, please report it or :+1: a previous report. It can be hard to tell which ones hit a lot of people, and which ones don't.
- tmzt 11y agoWould it be possible to add an optional crashpad-like script, one that allows you to review the data sibmitted in hex/ascii before sending it off?
- steveklabnik 11y agoWe've been discussing it, not just for crashes, but even compiler errors. But it's all in the 'wild dreaming' kind of phase, there's privacy concerns, and you'd want such a thing to be VERY opt-in. But it's a cool idea.
- arielby 11y ago1.2 is so much better with ICE-s than 1.0.