4 ms·
I really want to work with "modern" Java. My experience with Java was from a massive awful J2EE enterprise Java fintech company, and from college. When I see mo
by void_mint 5y ago
I really want to work with "modern" Java. My experience with Java was from a massive awful J2EE enterprise Java fintech company, and from college. When I see modern Java apps it seems like a pretty decent combination of modern features/tooling and an incredibly mature runtime.
- mrkeen 5y agoThe 'modern' stuff is just the enterprise crap all over again. Annotations everywhere that don't do what they say. Contexts and Factories. The Beans are called Components now I guess. Incredibly slow startup and shutdown of apps. Tests that require all the components in the system to standup before you can test one endpoint of your controller. > incredibly mature runtime Cool, but do note that modern is by definition the opposite of mature. If A was invented before B, who cares? I want whichever one's better.
- kaba0 5y agoHow is that the modern part? Beans have been around for decades! Also, there are very small libs for java, you don’t have to create a spring/JEE app.
- mrkeen 5y agoExactly! I hated my time with Spring. Compile-time bugs became runtime bugs (Cannot startup one bean because cannot find other beans). Startup was slow (looking for all the beans!). Solved problems like null-checking constructors and 'final'ing all variables became unsolved once you needed to leave them nullable/mutable for Spring to update them post-constructor. Testing a single class became slower and flakier when you needed to spin up the IOC to test - because it would start building config for all the other classes too. Keep in mind, Spring is already touting itself as modern. But along comes Micronaut[1] with a new set of promises: "...monumental leap in startup time" "Keeps your startup time and memory footprint low by doing the heavy lifting up-front" "Easily spin up servers and clients in your unit tests and run them instantaneously" Which is EXACTLY what I want in a framework. Having built two greenfield Micronaut services at work, as well as maintaining a few others, I can say it's bullshit. All the stuff I listed about Spring above is still true of Micronaut. > Also, there are very small libs for java, you don’t have to create a spring/JEE app. I like https://sparkjava.com/ https://sparkjava.com/ but I'm never going to be working with colleagues who choose it over Spring/Micronaut. [1] https://micronaut.io/ https://micronaut.io/