First of all, I don't think there is anything out there that could beat Java + IntelliJ + Spring boot.

It does not matter if you use WebStorm, Clion, Rider ?, one must admit that IntelliJ is a Java IDE at its heart.

It's very hard to describe how amazing the tooling is because you cannot describe a color to blind people.
This is not meant to be offensive.

There is one way I could at least try it.
If you are using Vim/Emacs and everything feels like 'flying', that feeling multiplied by 3.

That's what IntelliJ + Java is.
If you then also install the Vim plugin, you got the best of both worlds.

I did asp.net mvc with C# and VS, it's not even close.
I did Rails a few years, not comparable ...
I tried to so many languages and frameworks, nothing comes even close to IntelliJ+Java+Spring boot.

Since I'm already procrastinating, I'd like to kill a few myths about Java and web development in Java.

1. OMG XML.
I cannot remember the last time I had to dive into XML.

2. I can hit refresh and instantly see changes, can you do that in Java?

Yes, every modern web framework has hot-reload, you don't wait, you just save and hit the browser reload button.
It almost feels like a scripting language.

3. How about ORM's and DB access in general ?
We got the mother of all ORM's, hibernate but if don't like ORM's there are great alternatives.

Jooq[0], which feels almost like SQL:

create.selectFrom(BOOK)
.where(BOOK.PUBLISHED_IN.eq(2011))
.orderBy(BOOK.TITLE)

There is also Spring data JPA ( sits on top of hibernate ), which pushes the abstraction to the limit.
Imagine we got a User class with properties name, age, gender.

You could just create a method like this:

User findByNameAndAge(String name, Integer age);

That's it, spring JPA[1] would automatically understand what you meant by that, it would create the query for you.

The Spring framework in general has probably everything you would ever need in a project, no matter how small or big it is.
If for some weird reason, I'd need a lib that tries to communicate with aliens, I'd probably look for it in the Spring framework because someone probably already wrote that lib.

Security out of the box, you can configure it like you please.
I must admit that it's not as awesome as Rails Devise[2].

4. But Java sucks !

Well you can use Kotlin if you really hate Java but let me ask you, when was the last time you used Java?

What If I would tell you that the folks who are working on Java are smart fucks who made many impossible things possible.
If you know Java 5, many things have changed.

memberNames.stream().filter((s) -> s.startsWith("A"))
.map(String::toUpperCase)
.forEach(System.out::println);

Java now supports functional programming ( it's not like Scala but hey ... it's alright )

Most likely the next update[3] will bring this:

var user = new User("john");

Real threading, raw power, amazing mature libs, huge eco system, this blows every language or eco system out of the water.

I could talk for hours about how awesome Java is but I'll stop here.

If you are creating a single page application, take a look at Jhipster[4], which combines Angular with Spring boot with many useful generators, it's a out of the box solution with many options.

As a freelancer, I also must say that the pay is much better than let's say PHP, Ruby or Python.

If one of my side projects gets traction, I can hire freelancer in a heartbeat,
Spring has > 40% market share, naturally there are many devs available.

If you can't stand Spring, there are also many other great frameworks like Play!, Dropwizard etc etc ...

[0] https://www.jooq.org
[1] https://spring.io/guides/gs/accessing-data-jpa/
[2] https://github.com/plataformatec/devise
[3] http://openjdk.java.net/jeps/286
[4] http://www.jhipster.tech