Isn’t it funny? We tell people what tech they need to use and what tech they don’t need to use. We don’t even know what problems they are trying to solve. The promotion of tech for universal application has been detrimental to many. On the other side, telling people, they don’t need something without context is just as bad. I agree that starting with a well-traveled path and building your way into more niche solutions is a safe way to approach many problems. You don’t often know as much about the situation when you start, and as you learn more, you refactor to these techniques. You may very well find that you didn’t need that piece of tech or approach. End the end, and it is all about delivering solutions and solving a problem for real users/customers. If you observe many patterns from computing history, you will see a lot of similarities to things today.
Let’s look at operating system kernels. There are monolithic kernels and microkernels, do those approaches sound familiar? Did you know the most popular server operating system runs a monolithic kernel? Yep, Linux is a modular monolithic kernel. Windows and macOS are more of a hybrid approach, with older Mac OSes being an example of a microkernel. Interestingly, we have this same debate kind of happening now with monoliths vs. microservices. I noticed how each have successful implementations, even the concept of a hybrid type system. Why do we always deal in absolutes? Do you know who does deal in absolutes? The Sith. There is room for all to be successful. The one key takeaway for me is that they are all designed to be more modular, aka composable. That provides so much flexibility that makes refactoring manageable.
We do similar things when we talk about containers, mostly technology that has existed for some time just packaged in a more friendly way to consume. I think they are a good step and makes sense for isolating dependencies. It does bring some overhead on learning the technology to use it securely and efficiently. There are considerations when adopting anything.
This list could keep going on and on. Server-side rendering, SSR, is the new hot thing in web development. I am pretty sure that is the thing we used to do before the Single Page Application, SPA, approach that started exploding like 5-6 years ago. Yes, it looks different, and it has newer techniques. Imagine where SSR would be if we focused our efforts on solving those problems. I don’t think we knew what problems to solve until we went the route of the SPA. Now that we have been there, we can now settle on a more hybrid approach. It feels we have to create something new and use it until it hurts. We then reflect on the previous way and realize what problems it solved better and what needs to address that caused us to move away. Maybe we get too close to the problem to see the solution.
This post is just a rambling of something on my mind.
Thanks for reading,
If you enjoy the content then consider buying me a coffee.