Got it, thank you for that explanation. I completely agree that we can eliminate all kinds of erroneous behaviors with better type systems.
> good luck with a legacy microservice architecture in a few years. And it seems to be getting worse.
It is getting worse. The complexity of systems and their dependencies are growing faster than the discipline of seeking to reduce accidental complexity.
I imagine an implementation of this is equivalent to writing code and tests with the same level of detail as one might today. Language features put constraints on the solution, but do not reduce the essential complexity of a problem.
Could you elaborate more on what you mean by "could be taken much further"?
I took an interest in programming in high-school and ran into Todd (mentioned in the article) in the lobby of an online first-person shooter. The topic of programming came up, and I explained where was at in this whole coding-thing.
After a few games, Todd gave me a challenge:
Thoroughly understand multilevel pointers, and then explain it back. In doing that, there would be a cash reward.
Hell yeah! So, I studied. Eventually, something clicked and I was able to answer those interview-style questions he threw at me. I ran the whole “money from a video game” thing past my parents, and Todd followed through on his promise. That small gesture fueled an understanding that projected into a career.
Interesting article, it's worth a read; there are good people behind it. Thanks again.
> good luck with a legacy microservice architecture in a few years. And it seems to be getting worse.
It is getting worse. The complexity of systems and their dependencies are growing faster than the discipline of seeking to reduce accidental complexity.