5 ms·
> Pick your poison. I pick Rust every time. I have this concept of easy problems and hard problems. Every decision to choose technology is a compromise and co
by lmilcin 5y ago
> Pick your poison.
I pick Rust every time.
I have this concept of easy problems and hard problems. Every decision to choose technology is a compromise and comes with its own problems. It is your job to know whether these are easy or hard problems.
Compilation time is easy problem. Just put more hardware to it or modularize your application or schedule your coffee breaks correctly.
Building reliable abstractions to prevent hard to debug problems is hard problem. Building a large, complex, reliable application in ANSI C is hard problem.
I try imagine, what would you rather spend your time on: coffee breaks or debugging complex bugs?
- ithkuil 5y ago> just put more hardware to it or modularize your application This is not that easy as it seems. Rust compilation is not embarrassingly parallel as a lot of what's going on seems to be deferred at the link stage. Modules inside a crate can't be compiled in parallel because of some reason I don't truly understand, please educate me. Crates can be truly compiled in parallel, crating projects with hundreds of crates is quite a pain for other reasons. The result is that a change single line of code in the project I'm working in can take more than 2 minutes on my last gen MacBook pro. I have a M1 Mac mini where the compilation is twice as fast but I don't have enough RAM there and I'll have a hard time to convince my manager to make an exemption to my companies laptop refresher policies "because of rust". If I have to take a coffee break every time I need to wait for an incremental compilation my heart would explode. My current solution is: 1. Multitask. Do somethings else while I'm waiting. 2. Split the code that I'm iterating on in a new project. With minimal dependencies and copy the code back in the main project when I'm done (or just import it as a crate if it makes sense) Both options suck and I wish they weren't necessary. Please let me know what else could I do. What hardware should I buy etc (I already use zld on Mac and use minimal debug symbols, iirc debug=1)