This page collects posts that examine the philosophy and practice of programming. The first series lays out the philosophical foundation for the Diagrammatic Programming method.
Get With the Program offers vignettes that remind us that programming is a universal discipline, while considering the factors that make programming of digital processors so important today.
The Modern Tower of Babel compares the evolutionary trends in natural and software languages, and introduces functional abstraction and translation of end-user goals as critical concerns in the design of the latter.
Design by Discipline considers the practice of science and engineering, and identifies programming as the glue that binds them together. Science provides us with knowledge of what is possible, programming proposes abstract cause-and-effect sequences that address a sponsor’s needs, and engineering specifies concrete implementations optimized for cost and performance.
Exploring Solutions Space elaborates the practice of programming in more depth, motivating the core concepts of Diagrammatic Programming upon the twin necessities of abstraction and translation that arise when matching any technology to end-user needs.
You’ll find commentary on specific technology issues by clicking on the “Programming” entry in my topic map.