Rails left a bad taste on my mouth after using it for one project. Many things about Rails are wonderful, but it feels like the entire project is in shaky ground with so many dependencies. Memory usage and performance aren't nice either.
Python sounds tempting, but I want to avoid dynamic typing if possible. That rules out Node (not that I would like to work with js).
That leaves me with either Java and .NET, which have the taboo of being enterprisey.
Are those the only major players?
I don't like Ruby because it hits a sour spot for me. It used to be very cutting edge, but then stagnated. It has all the problems of a dynamic language, but nothing to really offset it. Its tooling is fairly good for assembling new projects, but not maintaining them.
I think if I went somewhere today, on the spot.
1. FSharp & C#. The .NET Core stuff is exciting. I view, "enterprisey" is just, "I have libraries for lots of things I don't want to solve like calendaring." So long as I can quickly develop and deploy code, those kind of social things are immaterial. People worry about .NET core performance even as they ship Node code, so I find that concern somewhat manufactured.
2. OCaml, in the same vein as F#, but I think this lacks a lot of ecosystem stuff so I suspect it will always be secondary.
3. Go or Rust. I could just bite the bullet and do it. It's doable, it just requires a lot of thought.
2/3) I think the communities are way too small.
So if you are in the Linux world and want to work on Back end . Then Java is your only options. You can mix in groovy/kotlin/scala to make dev less painful .Look at dropwizard and play framework the are an improvement on JSF/JSP/Spring mess.
It's a tax on success they want to impose. They want to turn Java into the same business model as their databases.
Pros:
* Code readability
* Concise syntax
Cons:
* Ruby doesn't perform as well as many other languages.
* There is a cultural tendency among Rails devs to rely on a large number of gems. This creates dependency hell, especially a few years down the line when some libraries are not actively maintained.
* Unicorn is not the easiest server to manage. However I have to admit that I haven't tried any alternative, there might be better servers in the Ruby world.