The IT ecosystem is always moving forward, and very quickly. I like the pace within new technologies emerges, I enjoy it when I discover new things, and then get my hands dirty to try to play with it and see what it solves.
Although, with the professional experience, I’ve noticed some bizarre thing about this phenomenon: The HYPE !
Each time we see some an Unicorn doing something we already do but differently, it pumps its propaganda about it, and we then start seeing everyone panic and follow. Panic because no one wants to stay left behind and follow because we BELEIVE in, and TRUST, them. And here comes the problem : Engineers/architects are less able to choose technical stack/architectures that just work for the business case in question, we feel outdated if we don’t know the lastest thing, and if we never used it in a professional way. Then it is so trivial that we will take biased decisions when defining the technical stack of a new project. Then there are more projects using it in the field and it is the (unreasoning?) Hype that every one talking about. Then more architects will feel the same about this thing and etc …
“Microservices are the future, serverless is better, never write plain SQL use ORMs, Frameworks like spring are the best way to go eye blinded”. I have always been hearing this from my best colleague. And I am upset about it.
Don’t get me wrong, I am very fascinated about these new “strategies” to do things, and I am interested on learning each one, BUT please STOP FORCING their use everywhere, they are not for every use case, use them if you have the problems that they solve.
- Microservices are not better than old way monolithics, I can see many cases that they won’t be a better choice : Architecture reflects organizational structure (Conway’s law), I may not advise a microservices architecture when I have only one team that builds the project.
- Event sourcing is not always the best solution, We may not always need the fine grained details of data as functional needs. It definitely does not come with a free cost to implement it and it needs a more rare skillz to find someone to work on.
- Java is not shit and other new languages are not superior : GC ? Yes it was a problem, but I think it is solved, especially with the new improvement to the stack management (shenandoah) in jdk 17. Rust, golang, js, … are good, but not better in every case of what java is doing.
- Spring is not the GOTO for every case, why little java applications/tools need a container ?
- Writing SQL is not an antipattern over using ORM, Most of the time ORMs are a huge boilerplate to do simple things like CRUDs that penalizes performance and resilience, don’t use them systemically.