Metaspex's Performance Advantage: A Miracle?
How can Metaspex's "Spec to Cloud" approach work? We have never seen that.
We are used to the "Abstraction Penalty" curse. As soon as we try to build software layers on top of layers, we gradually lose performance until the solution becomes unusable or prohibitively expensive. Any hope of reaching a very high level of abstraction (specification) is lost, because of this phenomenon.
This is why we seem to be condemned to hire massive amounts of programmers to operate at a low level of abstraction, and deliver usable solutions. And it snowballs. More quality-assurance people, more people to manage all these additional people, and more people to manage these latter ones...
But wait, the abstraction penalty principle is not carved into stone. Where is the science which proves it?
Actually, we have evidence that is is false. Granted, it is at low level, but nevertheless, it means that the golden penalty rule is... not a rule!
Let's take an example: a compiler. More specifically, how about a compiler for a language like C? A C compiler, like gcc for instance, translates a C source file into assembler, a language much closer to what computer processors understand and can run.
Today, if you ask a programmer if he can beat gcc at producing assembler code, he'll certainly answer immediately "no." Only in extremely specific circumstances the gcc compiler can be eclipsed by user code.
What is the reason for that? It is actually just the same as the difference between the good old times when people used to solder large components on an electronics board vs. the moment when machines started producing Integrated Circuits automatically. We saved cost, increased quality, and delivered products which would have been impossible to produce otherwise.
Machines are tireless, relentless, accurate and precise, and will not spare their energy to apply patterns and to optimize them. A programmer will stop at some point, because his/her code will become unreadable, therefore unmaintainable.
So if there is no curse and a software like gcc run by a machine can beat human beings like AlphaZero can beat them at chess, or AlphaGo can defeat Lee Sedol and Ke Jie, the successive Go worldwide champions, why couldn't it beat humans at programming?
So as it is clear for everybody that a machine can do better than a programmer at writing assembler code, why wouldn't it be better at writing other layers in the software? There is no reason to doubt that. Actually, Metaspex is the demonstration that it is the case. Metaspex stacked layer over layer, and at some point, it reached specification-level.
Of course, what it requires is to teach the machine all the patterns necessary for it to operate, like the rules of a game. And this is based on an extensive amount of original concepts and science. Stacking abstractions on top of abstractions, in a way which makes the machine beat human code at every stage is what it takes to automate programming while delivering higher quality and more sophisticated solutions that can evolve easily. This is much harder than conventional programming, it could be called "higher-order" software development.
So there is no curse, no miracle, just a very narrow passage through the North Face to reach the summit. We went through it for you, we did all the heavy lifting, so that you don't have to.
A Human Wave Bubble Ready to Burst
The Case for High-Definition Search
Ubergeek corner: Metaspex answering the 8 Ultimate Software Questions