re: C++ & Rust
@amiloradovsky@functional.cafe
Didn't mean marketed in a full on marketing industry sense, just culturally, we often tend to oversell unfinished R&D. It was presented in every c++ related conference, claimed to be both fast and safe (as fast and safer) and to have finally solved the memory management problem for good, by breaking the shackles of c++ legacy. It was not explained as something between c++ and a garbage collected functional language, which might be its fallback now. Speed/efficiency is one of the most important things in this context. It is indeed dependent on the data structures, that's why I was very disappointed to find out that there is no way to implement certain (even memory safe) data structures in safe rust efficiently, not because I want to write my own intrusive doubly linked list, but because trying to solve a problem with safe rust I will never arrive at the next such data structure that might fit the problem perfectly. I still have to revert to abstractions of c/c++ to conceive of this structure and then go back and see if I can wedge it into rust with unsafe code. In my eyes this makes rust a failure from the very "cost/overhead of abstractions" point of view you're referring to: the cost of safe rust is the optimal data structure for my problem (potentially).
In a more relaxed context, talking about social aspects, and ways people write code, I'd argue that the ease of writing decent code is more important. If the compiler is a huge PITA, people would be more inclined to override it with unsafe code or otherwise work around it (turn a memory error into a logic error, dangling pointer into an invalid index/id). You don't want this kind of rules to be enforced from top to bottom, like "you'll be fired if I see unsafe code", especially since there are legitimate use cases. You want simple rules that you can trust people to follow (even under pressure), and a higher level language or a coding guideline fit this role much better than a mechanical borrow checker, which you have to struggle to understand sometimes. C++ compiler can give you hard time as well, but it's all optional (aside form very simple core derived from C, arguably the simplest language) meaning someone in your "team" has conceived the rules that are imposed in specific context and you can "discuss" it with them humanely, at least in theory.