It's not about not finishing as much as it is about letting something in unfinished state.
You can finish what you are doing right now, and start something else to get a clear view of the next step. Or take something you want to fix, and put a breakpoint it it and plenty of print, to make it sure nothing works and the day after you know where to start.
If you learn how to build a castel with a very specific era look and feel as an architect, would you not then be likely hired to build a similar castel elsewhere?
The problem is more complicated than that, because psychopaths traits (and even just sociopath ones) makes you more efficient at certain things. When you have to sacrifice your leisure, your family, your free time or your health to do something else, few people can do it. When you have to fire 5000 people knowing the consequence on their life, you have to be able to live with it. Some contracts can only be signed if you are ok to bribe and corrupt. Some clients will only work with you if you accept to bend the rules or lower your morality standards.
Gandhi will not produce an iphone, for obvious reasons.
I used to be a strong proponent of this, but I tend to use dataclasses more and more with time. Still use a lot of dicts, lists, and sets, but mostly as collections, rarely to hold one single element data.
It came naturally, not out of some design, but I guess having better and better typing support everywhere makes it more and more convenient.
I like the fact minimalist approaches, like svelte, htmx and alpine.js are getting more and more traction.
I felt like fighting this fight alone for years in the golden years of node, webpack and react where everybody was creating crazy stacks and adding GraphQL and so on, to basically get what Django + jquery did 10 years ago in a tenth of the time and code.
So far I also survived:
- xml is the future
- let's use nosql for all the things
- you must use the same language at the back and front
- yes, you site must have an AMP version (ah, you forgot this one, didn't you? It was sooo imporant, and then pouf, it was gone like tear in the rain)
- yes, your home page must be an SPA
- you can't code anything without async
- you can't live without a message queue
- everything must become a micro service
- of course you need a container for that
- of course you need a orchestrator to organize those containers
- of course you need the cloud, it would be crazy to deal with those containers and orchestrators yourself
- dude, why do you have a server? Use a serveless backend!
- dude, why do you have a backend? Just call saas from the edge!
Every year, some generation of engineers have to learn the concepts of "there is no silver bullet", "use the right tech for the right problem", "your are not google", "rewriting a codebase every 2 years is not a good business decision", "things cost money".
In theory, they would be the perfect plugin system, but in practice, they are so slow if all your stack add a couple of them, Python start up takes seconds.