Tomas Patricek offers a stimulating analysis of program language design in the framework of science as a practice. As tools advance, later generations often deride their predecessors as “unscientific,” seeing their theories as myth. This is a point that I have advanced in defense of ancient philosophers and theologians: they were thinking rigorously within the limitations of the evidence that they could perceive. More, their thinking encompassed types of experience (what we call “spiritual”) that modern scientists, trapped in materialism, fail to honor.
Patricek is particularly interested in the evolution of programming languages, which are subject to rigorous scientific analysis both as regards expressiveness and efficiency. My comment to him:
I greatly enjoyed your article. I do have one specific vision regarding the future: programming language design is about bridging the mismatch between the digital and organic perceptions of reality. For much of the history of programming languages, the burden was on the organic participants to conform to the limitations of digital devices. That boundary is shifting rapidly to allow digital devices to interpret utterances of non-programmers.
Within any one paradigm for adaption between the two domains of perception, “developers” (which may include the general public) are not really involved in science as a search for first principles that constrain possibilities. Rather, they are exploring and evolving an ecosystem. An analogy is the human genome which can be understood – but probably not justified in scientific terms (missing initial conditions), nor optimized in engineering terms (due to complex functional dependencies).