Igor Bubelov About Blog Photos

Spring Boot

April 26, 2021

There is often a trade-off between doing something interesting and being productive. Recently, I’ve been playing with Rust and I implemented a simple HTTP server based on RFC 7230. It was an interesting journey, but it took a lot of time in order to do a few basic things. After I finished with this server, one of my clients contacted me with an offer to write a simple JSON API. I really wanted to use my little Rust webserver, but I ended up using Spring Boot.

Learning new things can be entertaining, and it can help us in the long run. That’s good for me, but that would be horrible for my client. My productivity would drop, and it would be really hard to find another engineer to work on my Rust webserver. When it comes to business, it’s all about making money, and it’s really hard to make money if you’re not productive at what you’re doing. Backend software isn’t my main focus, so I contacted a few friends and asked them for advice on which tools I should use in order to be productive. The consensus were on the side of Spring Boot.

Spring Boot ended up to be a perfect choice. I must say, I’m impressed how easy it is to set up and customize my Spring Boot project. The defaults are great, and its core foundations are solid. It’s written in Java, but it also works great with Kotlin. Both of those languages are pretty strict, which means they prevent engineers from making costly mistakes. Ruby, JavaScript and Python frameworks are also popular, but they’re based on shaky ground. They may also have mature tooling built around them, but nothing can compensate for the lack of strictness.