A programming paradigm is a way to describe the world by means of programming. Therefore, every programming paradigm must have a philosophical foundation that answers the questions which define the basis of our view of the world. The goal of this paper is to analyze the foundation of different programming paradigms to find a link between programming and philosophy, and use this link to develop a new programming paradigm that has a strong philosophical foundation.
The paper examines functional, procedural and object-oriented programming and categorizes them under subjective, dualistic and objective concepts depending on the way they handle the relationship between data and functions. It examines several philosophers, including René Descartes and Plato, by comparing their theories to various programming paradigms.
After this, the paper applies the link between philosophy and programming to Immanuel Kant's transcendental idealism by introducing a new programming paradigm called "sensible programming". The paper examines the basic ideas of transcendental idealism and their link to programming. Then the paper describes the structure of a program using sensible programming and demonstrates how it is possible to use sensible programming with the programming languages we use today.
The functionality of the sensible programming paradigm proves that it is possible to use philosophical theories to analyze and develop programming paradigms. This opens new possibilities in the field of programming, because through philosophy this young, constantly changing field obtains tools that have evolved for over two thousand years.
This paper is based on the thesis "Havainnoiva ohjelmointi" written in Finnish by Jouni Hätinen. The thesis is available on the Theseus Internet library.