After programming the backend for my current project in a non-typed language I never want to go that route again.<p>I think actually that the frontend project with all of its thousand of files and components is easier to handle just because typescript helps me so much.
Unpopular opinion but... most of them are more than good enough. .net with C#, java (though I'd probably use kotlin), typescript, and go are the most popular ones and they will all do whatever you need with pretty great performance if written correctly.<p>I'd do a simple CRUD app in all 4 of them and see which one I liked best from tooling to language design.
If you are familiar with it TypeScript could be a good choice.<p>Language preferences are very personal but I personally like Golang. It's kind of like a "batteries included" language and deploying Go, which is copying a binary to a server is awesome!
If you're serious about using the type system to encode business logic, improve resiliency, and reduce runtime errors: scala is really a great choice. Beware "type astronauts", FP purism, etc. and you'll be able to go very fast. You get access to the whole JVM ecosystem.<p>Rust is great but more clunky. I'm under the impression F# is a viable alternative.
I enjoy using Haskell, because of the type-safety, referential transparency, and stability of interfaces. I use Twain for HTTP server and routing + blaze-html for HTML + Selda for interfacing with SQL. I’ve built my last few projects this way (listed in my profile).
I like <i>Crystal</i> for this, the standard library has support for the most common stuff (HTTP server, JSON/XML parsing, logging, templating), installing additional packages is easy and the build step also.<p>Nice bonus: the resulting app is native and fast.