Comment by capyba
3 hours ago
Reading about the `left-pad` incident (almost 10 years ago itself!) gave me an incredibly strong aversion to dependencies in my own projects. I suppose that like the author, I care a lot about understanding the foundations and ensuring that whatever I build can stand on its own, as much as that may be. I think this philosophy has helped me learn a lot more than if I had just focused on “build as fast as possible”, but definitely limited the “amount” of projects I’ve completed.
I love writing in C because a) it’s simple and I can understand everything that’s going on and b) I feel confident that it’ll compile just fine years from now, because that’s how that particular ecosystem has worked and likely will continue to work.
Recently, I’ve been writing new projects in Rust, which has far better ergonomics but is far more complicated and causes me to cede control to the whims of the community and the compiler. I’m sure there are simple ways to ensure that I can use the same compiler for all new platforms that will support it, but just like everything in the modern day (for both better and worse), is implicitly and explicitly designed to always be updated.
Rust has become much more stable in the past few years, but you’re right to expect breaking changes in the next ten years. I love using the language, it’s been fun to learn and I (hope) it’s helped me write far more robust code, but I’m sure in the future there will be many times where I’ll miss C.
I think my general approach to Rust (and to C++ before that) in this type of scenario, is to treat it as a "better C", and take the absolute minimum of dependencies I can get away with