3 ms·
You’re right. But a good test for abstraction is consistency. Abstractions are generators. You identify a few parameters from which you can derive the rest of t
by skydhash 1y ago
You’re right. But a good test for abstraction is consistency. Abstractions are generators. You identify a few parameters from which you can derive the rest of the system. But to be good, it needs to be able to solve all the problem space without the need to tweak the generated system (leaky abstraction)
Human languages is the ultimate leaky abstraction, because while you can put names on something, you needs more words to refine it, and that action is recursive.
That’s why formal language was born. And then we invented computers for automated interpretation of formal notation. All the current abstractions are still formal (the semantic is unambiguous as soon as the variables are fixed)
The transition from natural to formal is not a probabilistic process. It’s identifying a set of abstractions that closely fit the ambiguous nature of the natural soecifications, then going on to compose them and fixing variables. This is the design process. The result is made real by the code, which is the complete specification.