Systems design explains the world: volume 1
The problem with &quot;systems design&quot; is the lack of formality and the excessive use of conjecture. Nobody has a problem with Boxes and Arrows if those boxes and arrows have formal definitions (See category theory). The problem arises when those boxes and arrows represent vague unproven concepts with fuzzy meanings.<p>For something to be more legitimate it needs to be formalized into a fixed set of axioms and formal logical rules. Relativity is an abstract concept but the rules it is based on are formalized. When nothing is formalized then nothing can be formally proven  then the whole field descends into &quot;design arguments&quot; where examples and philosophical conjectures are thrown all over the place with no one able to really prove why one design pattern is better than another design pattern.<p>The problem with this article is he never goes into these formal definitions of what a system is nor does he derive theorems. He just goes into example after example. His &quot;revolutionary&quot; thought here is that systems design may point to some underlying theory of design that applies to the world outside of computers. Big deal.<p>We&#x27;ve seen these concepts many times but in different forms. &quot;Design patterns,&quot; &quot;Architecture&quot; &quot;System Architecture&quot; and the industry just travels in circles around all of these concepts repeating the same old bs time after time never converging on definitive answers. The lack of formalization prevents us from truly knowing what an optimized design is so we just guess.<p>Let me put it to you this way. Anytime you see the word &quot;Design&quot; it refers to a field where we have little knowledge of how things truly work.<p>Nobody &quot;designs&quot; the shortest distance from point A to B. That value is calculated through formal theory. However we can&#x27;t fully understand the best way for a &quot;human&quot; to get from point A, in California to point B in Colorado. We&#x27;re simply not advanced enough to come up with a formal theory that can optimize the individuals preferences, time, space, energy, speed and comfort. Thus we &quot;design&quot; redundant solutions and hope that with each iteration in &quot;design&quot; we converge closer and closer to an optimal solution. But there&#x27;s no way we can ever formally know if one solution is &quot;better&quot; than another.<p>Design is another word for random intuitive guess. It is only deployed for problems where an optimized solution is unknown. &quot;Design&quot; represents an intense lack of knowledge. Anytime you see the word &quot;design&quot; or &quot;architecture&quot; you need to realize that you&#x27;re descending into a field or talking to an &quot;expert&quot; where nobody knows anything really.<p>As a result, the entire field of design travels in circles. Most new programming languages or frameworks are a useless attempt at producing an optimum solution but ends up being just another iteration of the endless circle. Is golang the optimum programming language? can we ever truly know if it&#x27;s better? Are we truly pushing the field forward?<p>I would say that for languages like typescript where the error surface area is provably smaller then JavaScript or Rust which also has a smaller error surface area then C++ that we have moved forward at getting closer to an optimum solution, but overall for things where a formal theory does not apply (type theory applies in the previous two examples) we aren&#x27;t really converging on anything.<p>The field is rife with &quot;fake&quot; formalizations and fake legitimacy. If someone has the job title &quot;System architect&quot; or &quot;System Designer&quot; you know it&#x27;s complete BS. The guy is just making stuff up from intuition and experience, there is no formal science here. He is much closer to an &quot;artist&quot; then he is to a &quot;mathematician&quot;, physicist&quot; or &quot;scientist&quot; and should not command the same respect as the latter titles. The lack of formal legitimacy leaves a lot of room for BS. A good number of people achieve these roles simply by playing politics because there&#x27;s really no way of knowing if the &quot;architectures&quot; they propose are inherently correct or &quot;better&quot;<p>The endless circle is very apparent on HN where you just endlessly see new &quot;Design&quot; blog posts on the latest metaphor that can be used for &quot;design.&quot;  In this case the &quot;design&quot; is &quot;systems design&quot; and the metaphor is the &quot;real world.&quot; Why do people endlessly write articles on new design metaphors? Because &quot;design&quot; indicates a lack of so much knowledge that it&#x27;s really all they can do... make comparisons and metaphors rather then calculate actual optimum solutions.