Keep the balance

I am part of a Java chat group on Telegram and I noticed several interesting conversations and trends that remind me of my younger self.

TL;DR: Keep the balance between what you want and what you can do.

The weirdness

About the last point I find it quite quaint that although they do push for the latest and greatest new framework they are not actually developing applications with actually the greatest and latests, for example, none use containers or don’t understand CI/CD pipelines nor even why use Jenkins.

What’s worrying

There is a push by some developers that Spring, the IoC/DI framework, and Spring Boot are some sort of silver bullet that, after you learn to use it you won’t need anything else in life and it should be used for everything. That also goes for don’t use JSF! and Maven sucks. Use Gradle.

There seems to be no actual basis on these decisions or thought worth explaining, it’s all take my word, I know what I’m talking about and a plethora of biased, poorly translated Internet articles.

Someone said that Gradle is da bomb and pointed to a Gradle article that, if you spent a bit of time working with Maven, you can debunk it in 15 seconds. So I pointed out that, although Gradle does some things well, referring to an article written by the Gradle team is definitely a biased reference that should be taken with considerable amounts of grains of salt. As an example, I debunked a couple of the items and, the developer who referenced it, didn’t engage in the conversation just pointing out that Gradle is indeed very good and there are many articles saying that but he couldn’t reference them. Hmmmm, that doesn’t bode well when you are trying to defend a point of view, does it?

Back to the Spring developers, I mentioned to a young developer asking about what the market wants and provided some of my hard gained, cheap wisdom that, as everything in life, there’s a balance of what you can and can’t do. There’s no simple answer. A category of companies use the latest and greatest, other companies prefer the tried and tested and each project is its own project and each team is its own team, meaning that depending on the team, project deadlines and company culture you can try and bring something new to the table and help introducing a new technology to the team or you should actually leverage the team’s collective knowledge in order to deliver a project that suits the requirements.

This young developer regarded that as a revelation, which was quite funny but also explains my soon-to-be-white beard. The Spring developer? Passed it as nonsense, if a company is not willing to implement Spring Boot and microservices it’s not worth joining.

It’s important to always keep a balance in life. Being it your personal or professional life. There’s no such thing as the best ever framework, programming language, laptop, neighbourhood, etc. It’s all a balance between what you want and what you can at that point in time. Things can always be adjusted, maybe in small steps, maybe in large steps, in the future. Life’s ever changing and not seeing that it is fluid you end up losing the balance and that can be quite disastrous.