Rust
Rust is the newest language in my repertoire, and though it is admittedly more difficult to learn than most other languages I've had success with, building new projects in it has taught me more about the deeper levels of software than any other language. Simply put, Rust makes me a better developer. It's not just the strongly-typed nature of the language, but the absence of NULL and the surprising effect it has on how you think about code.
I nearly always prefer a typed language, and I find that dynamic languages tend to leave me thinking about types just as much (or even more) than when I'm using an explicitly typed language. I'd prefer to go through the effort to be explicit rather than vaguely trusting often peculiar language conventions. The demanding nature and strictness of the Rust compiler forces you to deal with all the gaps that you might have had the luxury of ignoring in other languages. It makes the gaps and hairline-fractures visible and loud. It demands that you dispel your ignorance and acknowledge how much better your code can be.
After getting past the initial learning curve, the strictness of Rust makes you feel confident that edge-case behavior has largely been taken care of, allowing you to focus more intently on the goal at hand. Fighting with ambiguities is never fun, and the freedom of mind the language design gives you is well worth the times spent learning why Rust was designed in this fashion.
"Rust’s central feature is ownership. Although the feature is straightforward to explain, it has deep implications for the rest of the language."
There are many Rust projects that have impressed me. Helix is a terminal-based editor with all the most crucial developer tools included in its core functionality. There are no plugins or laborious initial setup as with many other editors. The speed of Helix is notable, especially when combing or studying unfamiliar code.
Navigating between files is extremely fast, and the navigational keystrokes are quite intuitive. It supports LSP out of the box, and has non-intrusive diagnostic messages. Theme configuration is very easy, and employs a simpler syntax that is easily editable. There are no arcane rules or legacy formats to deal with.
"I'm still completely in the excited-newbie honeymoon phase, but writing Rust code feels very wholesome."
fn main() {
let name = "Ryan Frishkorn";
println!("Rust makes {} a better developer.", name);
}