I've been around writing relatively large applications in mainstream languages as well as personal projects in languages like Erlang, Ocaml, Rust, and Scheme. To sum it up, I'm a PL aficionado.
It is very mandatory today that a good programming language is 50% about good tooling and ecosystem. For instance, I love Ocaml, but it's 2020 and it still doesn't own a native concurrent construct and its barrier to entry is too high for busy programmers to spend time learning it. A lot of great languages die because they don't have a straightforward path to success and small wins to warrant users' productivity loss. My go-to language is almost always Go. It's not a great language by itself, but most of my work is about building API servers and its tooling is just very robust and frictionless. Also, it takes little effort to type in Go (at least for me) and the error messages are very debug-friendly. So today I've decided to pick up Nim and try writing a small command-line tool in my project at work with it. And heck, its learning curve is so chilled I could become productive almost in the first hour! Being a compiled language makes executing code straightforward and the error messages are very intuitive. From where I am it's a mystery why Nim hasn't caught on faster. Any ideas?