My programming language ranking
My personal ranking of programming languages (just because I feel like it).
The winner - Scala
Anyone that knows me well, knows that I rank Scala as the best, most enjoyable language to write software code.
The flexibility it provides (from more "Java-like" structure to pure functional code), and the expressiveness of the language (pattern matching, higher-order functions), I feel I can both write and understand the code with ease.
I also love SBT (Build Tool) and all the features it provides, I feel a productive developer when building applications in Scala.
I understand and respect the criticism on the steep learning curve it requires. But personally I would rather invest on climbing that learning curve and have a more solid and maintainable application than pay the price of developing on another language and have bugs, runtime exceptions and/or poor maintainability down the road.
Strong seconds - Kotlin, Java, Crystal, Rust
I had the chance at some point of my life to try these programming languages and I had a good experience about all of them.
Kotlin felt to me a "better Java", not excessive boilerplate code, I could quickly understand and become productive on a new repository.
Crystal lang is not widely used but, for my sandbox projects, I enjoyed the simplicity and performance of this language.
Finally, Rust. I definitely need more experience with the language, but I enjoyed the language features, didn't feel too hard to start developing on Rust.
Not my cup of tea - Go and Python
I have used in the past both Go and Python, and can't say it was a positive experience.
With Go, I struggled with libraries dependency management as well as the lack of generics and advanced features. Always felt I had to write a lot of code to do some simple operations.
With Python, I struggled with runtime bugs simply because of no type checking and what felt to me a poor testing setup. On top of all known criticisms of the language (such as poor performance and scaling issues), I would not use Python on a live production application.
