Netflix Standardizes on Spring Boot as Java Framework
medium.com
medium.com
I will take another look at springboot just to see what the fuss is about. I am a bit surprised that netflix did not come up with their own light weight backend framework based on netty.
Is my understanding wrong? Or, maybe this is mostly a PR thing?
PS: They do mention that they used to make in-house tooling, but then why transition? How is depending on a codebase that you have less control over an option when you have Netflix resources?
Circumstances change. It made sense at the time to roll their own. They feel it doesn't make sense any more. That Netflix is capable of doing the work is not the same as whether it makes economic sense for them to do so. This is just Economics 101 -- gains from trade and the theory of the firm.
But as a self-professed Java hater; Spring, Spring Boot, and the surrounding ecosystem is really nice to work in.
I didn't really get the fuss and a lot of our vibe was "why isn't this more like Rails?"
Later I worked on a Spring 3 project. It was a very well-written monolith, all the best practices up to that generation, layers and services and repositories, the whole shebang. Yet various things about it were flatly painful. That's the experience that made me understand why Spring Boot is actually a Really Big Deal.
These days if I am going to write a general consumer-facing app, I'm perfectly happy with Spring Boot, especially if Kotlin is in frame. A lot of Pivotal Labs projects now use Boot+Kotlin as their default starting point and many folks see the virtues.
It's not Rails, it never will be. But on the other hand: It's not Rails, it never will be.
I was running a meetup tonight, and going over spring boot on kotlin. It felt so heavy to me. I've had this thought too why not like X.
Spring has a really great ecosystem around it. I sort of look at it like the AWS of web frameworks. It has practically the kitchen sink in it.
I've switched over to Kotlin. While I gravitated more to I think the sinatra style. I went from Spark -> Jooby -> now Ktor/Vert.x. Vert.x is like a breath of fresh air. I have never felt more liberated writing a backend. Combining that with Kotlin multiplatform and ktor for the js clients. Is so dead simple.
But a warm JVM is a thing of beauty.
Hopefully Graal and Substrate will make this a non-issue in the coming years.
But It works better under gradle, and that is a whole nother battle.
That's why my new framework of choice is Clojure (Leiningen, Luminus) on the server and ClojureScript with Reagent and Fighwheel on client side.
The app starts moderately quickly but once it starts I have REPLs to both server and client side and I have reasonably reliable reloading of everything when I edit it. Once it starts I can add services on backend side and then immediately write client side ui to consume them, all without even reloading the page. As soon as I save any file on either client or server side it is automatically reloaded without me having to do anything.
I can even use same code on client/server side.
Have I mentioned it is the same language?