Before this, I worked for a company that build almost everything in Java and we had to constantly explain why things were in Java and what we were doing to move things to a more modern solution.
But you don't read blog posts about those companies because they choose not to write them. The blog posts you see about the backend technologies are from companies who are proud to use those technologies and want to promote their use of that technology. The companies who use Java (mostly) are companies who aren't going to write blog posts about their backend technology choices.
What exactly qualifies as a modern solution that Java(/jvm?) is disqualified?
Syntax, library eco-system, paradigm, type system, cruft? Is "modern solution" some function of blog post count? A social blade type score for how many early-20 somethings are using it?
Or is it going to be something "simplistic" & "clear" which will eventually inherit the cruft all other large languages do?
There's nothing wrong with Perl or PHP either, but plenty of end users have seriously negative associations with the technology and will blame every fault on the technology because it's had a rough history. All of those languages/ecosystems scream "dotcom" to enterprise users and they don't want to hear that they're paying $1.5m for a system that's built in what they consider to be legacy languages.
> that's built in what they consider to be legacy languages
Who's the software company in this situation - you or them or both?
What's the modern solution which they expect you to be on? Go?
What characteristics does it have?
A solution could just as easily be packaged for them in such a way that they just have to run "java -jar someuberjar.jar"
Java is the goto language in more conservative environments (e.g. insurance, banking, government) and I never had to justify using it there.
In small shops/startups it’s different. Hype is a real thing and running your backend on “25 year old tech” often does not attract the right kind of people you need to have in this space ;^).
That being said, I’ve been shipping stable and performant backends on the JVM for over 15 years and I could not be happier with the state of Java in 2019.
The ecosystem is amazing. Tooling, too. Talent and jobs are available everywhere.
Also, there is an active effort to modernise Javas syntax and I think it’s going into the right direction.
I don’t have the enthusiasm for Java I did 20 years ago (the alternate for employment in Sacramento was largely C++ back then, mind you), but I think what you said is accurate.
Personally, I want to see Java retire, but downvoting people who are pointing out legitimate benefits, even if there are counter points to be made, seems rude.
I am a huge fan of the Grails framework, they do a lot of things right. As a developer I can focus on creating business value as most technical challenges are easily solved with Grails. Grails is performant and memory efficient. With Grails 4 which will be released later this year, memory usage will decrease significantly more.
Seems to be working well enough for them.