Done well it looks amazing, elegant, and efficient, but in the wrong hands you'll lose your hands.
"Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming" [0]
It's also perhaps the best mixed metaphor I've ever encountered.
[0]: https://www.amazon.com/Enough-Rope-Shoot-Yourself-Foot/dp/00...
While Rust might not become a replacement for the Python layer, it may replace the C/C++/Fortran layer with all their speed and low-level optimization, yet provide good (and especially safe!) abstractions on top of that.
Currently, people try to use C++ to fill that gap, but I'd love to see Rust's type system, borrow checker and macro system, instead of C++ templates.
[1] As opposed to Mathematica, MatLab, etc.
Python works well when you have to convey your algorithm in a nice succinct functional manner, but that's optimizing for cuteness, not understanding.
I always say that python is like the English of programming languages; it's an amalgamation of other languages, programming paradigms and a rich set of libraries, and often serves as a 'Common Tongue' to glue disparate processes together. There is an inherit risk to that, though. Because it's so easy to transition between object/procedural/functional modes, because it's so easy to tie together so many different interfaces, because it's so easy to `import everything`... it is often too easy to avoid a proper separation of concerns. The flexibility comes with a disincentive towards discipline.
All of the pedantry of systems level language performance and practices aside, even the context switch alone between 'algorithm language' and 'application language' is beneficial to promoting better discipline in both areas.
where your program doesn't even compile if you don't give it the right invariant.