Condensing Programs

This is an idea about a different way to think about programming computers. It's really hard getting the individual bits of a program right so that behaves correctly as a whole. It's not unlike the problem of designing molecules to effect certain metabolic changes in a whole organism. It is much easier to do it the way life works: whole ecosystems adapt to the metabolic regimes induced in the individuals by the conditions in which they live. Adaptation can then be a kind of phase change in the whole system. Phase change is a global condition whereas the metabolic effects of a certain drug are local conditions, depending upon the organisms which ingest it.

One of the reasons that modern software systems are so insecure is that they contain enormous amounts of superfluous functionality which can easily be co-opted to other ends. The trick with programming a computer is not just to get it to do some particular thing, it is to get it to do only that particular thing, and nothing else. Living organisms achieve this because of the capacity of whole systems to adapt: if the metabolism of any individual organism is subverted then it is still part of the whole system, but its function is altered. Think of Oak galls and wasps, prion diseases or lethal viruses. These all alter the role of the organism in the whole ecosystem. Because this condition of the whole ecosystem holds in general, there is no superfluous functionality in any individual.

The problem with designing software that only does one particular thing and nothing else is that this is not how people think of effective computer use: one of the key features of a computer system is that it can be programmed to do anything, so we tend to think of computers as general purpose electronic devices that can be reconfigured at will. Because of this we tend to expect programming languages to be general purpose and able to do anything we might want. This is the background against which operating systems and optimising compilers have been developed. The net result however is that the whole system can be subverted, and that's what has happened. The devices are being used for purposes of which their rightful owners are not even aware and the whole system adapts by turning TV manufacturers into ISPs for hackers and cyber security, data broker and then a data broker removal industry.

See Programming Paradigms and Thorsten Altenkirch on NaÏve Type Theory and An Interesting and Useful Duality.


This was interesting to listen to as a follow-up:

My comment:

From 55:38 it is just a repeat of the part from around 19 minutes. I guess that's the video editor making a Sein und Zeit joke.

Subscribe to Topos Institute.

Comments

Popular posts from this blog

Steven Johnson - So You Think You Know How to Take Derivatives?

How Could One Unify CMU and MIT

Tensor Fields and Simplicial Complexes