- C when I absolutely had to (kernel/modules/plumbing).
- Python for scripting and broad accessibility.
- Haskell when I had the choice and I knew everybody who would work on the project.
I was skeptical of Rust when it first came out, due in large part to the many different kinds of pointers it originally had, many of which involved significant manual memory management. But now, with a strong static type system, garbage collection, pattern matching, associated types, and many other features, Rust is looking like a serious contender to replace all three of those languages for me.
Still waiting to see if it develops a strong following, community, and batteries-included library ecosystem, but I need to start doing more experiments with Rust.
Disappointing to see yet another language-specific package management system (Cargo), though.