In The golden quarter Michael Hanlon wrote “Some of our greatest cultural and technological achievements took place between 1945 and 1971. Why has progress stalled?”
Here are a few clues:
- The missing zero – classical civilization failed to advance for a thousand years because of the inability of these societies to use the zero. The zero is the basis for place value. and place value is the basis for modern mathematics. The missing zero lead to an inability to efficiently represent mathematical thought.
- Evidence of a missing link – The software development industry shows that there is a missing link from business to artificial intelligence. If this missing link existed, a large percentage of business programming would include artificial intelligence of some sort rather than the significantly less than 1% we have today.
- The wrong turn for computer programming/science probably came about about sometime around 1971. Computer science is probably the bedrock foundation technology for the modern world. Just as with classical civilization the inability to materially represent thought could be the reason for our stagnation. My candidate for the wrong turning is hard coded context with the Algol 68 ‘struct’.
I believe that the creation of the ‘struct’ in Algol 68 was a major wrong turning in computer science and that it stifled innovation and progress in computer science and thus the rest of the technological field. One way of looking at the struct is – hard coded context for data. Hard coded means the data contexts (members) are part of a program rather than something that can be processed by a program.
The struct has become utterly predominant in computer science, with an almost complete inability to use other more advanced approaches in modern software development. Modern frameworks, OO and SOA have institutionalized the struct.
Without approaches other than the struct, we can not write information oriented software. Information can be defined as that which has meaning. One major form of meaning is context. We are unable to embed soft coded meaning/context in computer code. Since meaning/context is hard coded we are unable to write programs that process it. Without the ability to process embedded meaning we are only able to go so far.
A few more primitive approaches still hang on such as SQL and functional programming, but these are being progressively more and more sidelined. They are being sidelined because they have severe problems with
1) storing meaning and more importantly 2) being easy to develop with and 3) the ability to cover the needs of customers and applications.
The focus of my research right now is building a framework that will allow us to work with a soft-coded version of the ‘struct’.