It's as if the CEO are calling on each other, let's scream together now, "30% of our code is written by artificial intelligence".
— Chomba Bupe (@ChombaBupe) May 1, 2025
Like that even makes sense, it could be 30% of repeating boilerplate code which is technically not that wild honestly to automate away.
Back when I was with David Hays in the 1970s and 1980s we talked a lot about the software problem: How can you build high-quality bug-free software? We know how to build high-quality hardware, but software is something else. This is not the place to discuss the problem, but there’s a classic set of essays from 1975 that’s worth looking at, Fred Brooks, The Mythical Man-Month: Essays on Software Engineering.
We thought of something we called metagramming. One thing we had in mind was the difference between calculating using Roman numerals vs. calculating using Arabic numerals. Here’s a passage from our article, “The Evolution of Cognition” that lays things out:
These procedures are so familiar to us, and so obviously elementary, that we forget that their creation was a major cultural achievement—attempting long division in Roman numerals, however, should remind us of just how very difficult computation can be without a good system of notation. Nor did the ancients have explicit rules of procedure. Marrou, in describing education in the Hellenistic period, writes
“Strange though it may seem at first, it is nevertheless quite clear that addition, subtraction, multiplication and division ... were, in antiquity, far beyond the horizon of any primary school. The widespread use of calculating-tables and counting-machines shows that not many people could add up--and this goes on being true to a much later date, even in educated circles.” (1956: 158)
In an additional note (p. 410), Marrou remarks that adults would often write out multiplication tables for themselves, presumably because they could not obtain answers out of their heads. Without a good system of notation the formulation of algorithms is so difficult that a complete set wasn’t created for any number system other than the Indo-Arabic. Before these procedures were gathered and codified the calculations our children routinely make required the full attention of educated adults, who solved them on a case-by-case basis:
“The mathematical texts are simply concrete examples of different problems worked out in full. They illustrate to the reader how to do sums of various kinds. But by themselves such series of examples could hardly suffice to enlighten a novice as to new methods nor impart to him fresh knowledge. They must have been intended as supplements to oral instruction.” (Childe 1936/1951, 152-153)
But Childe has no evidence about the oral instruction, and Marrou seems to believe that there was none. In the twentieth century we have taught psychiatry, business management, and the law by the method of case study. What has to be accepted as fact, however “Strange though it may seem at first,” is that up to the Renaissance elementary arithmetic was taught in just that way, and, we hold, for the same reason: The kind of thinking that was available in the culture could just manage the substance of the matter but could not rise above it to abstract and rationalize the principles.
The algorithms of arithmetic were collected by Abu Ja’far Mohammed ibn Musa al-Khowarizm around 825 AD in his treatise Kitab al jabr w’al-muqabala (Penrose 1989). They received an effective European exposition in Leonardo Fibonacci’s 1202 work, Algebra et almuchabala (Ball 1908). It is easy enough to see that algorithms were important in the eventual emergence of science, with all the calculations so required. But they are important on another score. For algorithms are the first purely informatic procedures which had been fully codified. Writing focused attention on language, but it never fully revealed the processes of language (we’re still working on that). A thinker contemplating an algorithm can see the complete computational process, fully revealed.
That’s what we were looking for, something that would stand in relation to calculating with Roman numerals as does calculating with Arabic numerals.
We never got there, never got anywhere close. But vibe coding seems to be a step in that direction. It’s not there yet, possibly not by a long shot. But it’s something.
* * * * *
Note: We did snag a small Air Force grant to investigate metagramming. Here’s a link to our report along with the abstract:
David G. Hays and William L. Benzon, Metagram Software - A New Perspective on the Art of Computation, 1981, Rome Air Development Center Technical Report, RADC-TR-81-118.
Abstract: The report documents the results of a six-month R&D effort consisting of a critical examination and feasibility test of the metagramming technique to assess its innovative utility in providing an improved access to databases in the COINS network. The introduction briefly describes current problems in software development/management and outlines metagramming principles. The first chapter illustrates state-of-the-art limitations of conventional programming. The second chapter elucidates the conceptual foundations of metagramming (multi-level abstraction, cognitive processes) and describes a three-level computational system based on metagramming. The third chapter discusses a continuous evolutionary growth of cognition to progressively higher strata described as a sequence of cognitive jumps, each of them characterized by a greater control over complexity than its predecessor. The historical evolution of computational technology is described in the fourth chapter, prior to highlighting the role of higher-level abstractions and the “universal executive” inherent in the metagramming strategy of computation. The fifth chapter envisions the development of metagramming technology as a series of successively easier-to-use machines. The problem of control in metagramming processes is addressed in the sixth chapter. The seventh chapter discusses computational requirements associated with progressively more complex world models inherent in the evolution of metagramming from the initial system (level 0) to a multi-system (level-6). The last chapter deals with the applicability of metagramming to intelligence needs as a means of substantially enhancing the analytic competence of the intelligence community. A discussion of metagramming in the context of intelligence requirements is provided in the Appendix.
No comments:
Post a Comment