What about functional programming? I have been doing mostly scala for the past 5–6 years now and when I go back to Java with something like Spring, it PAINS me to not be in a ecosystem that promotes (dare I say requires) immutability.
Also, from my experience I would NOT suggest using Apache Spark with the Java API — only scala or (maybe) python.