Let’s not be dogmatic here. I applaud the virtues of Rust and am all for static safety. That being said, Rust is not a panacea, nor a one-size-fits-all solution that can be levied against any problem.
As an example of a class of problems where I’ve struggled with Rust - cyclic data structures. I would encourage everyone to try implementing their own binary search tree in Rust (and not using an array representation!). I don’t believe a solution is possible using plain lifetimes. Using
Rc<RefCell<T>> quickly becomes tedious with all the cumbersome type annotations, dereferencing, and unwrapping, and even then your program can still panic at runtime if you don’t
borrow_mut carefully! What happened to all the static guarantees?
At what point do you just step down into unsafe Rust and munge around pointers? When I got to this point I just started asking myself why I decided not to write this in plain C.
Ultimately, like everything else, the choice of Rust has its associated benefits and drawbacks. Sometimes code just needs to be shipped out the door, at the expense of memory safety and getting off the Rust bandwagon. This is a tradeoff, and the author of this post seems to have put careful thought into their choice of solution.