HN
Today

Cultures of Making and Relating

This thought-provoking post explores Tomáš Petříček's five programming cultures (Mathematical, Hacker, Engineering, Management, Humanist), extending them to general technology and scientific research. It categorizes these into 'making' and 'relating' to software, highlighting their interplay and inherent tensions. The article offers a compelling framework for understanding diverse approaches to software development and scientific practice, making it a concise and insightful read for anyone interested in the philosophy of technology.

6
Score
0
Comments
#13
Highest Rank
7h
on Front Page
First Seen
Jun 27, 12:00 PM
Last Seen
Jun 27, 6:00 PM
Rank Over Time
18131822242527

The Lowdown

Konrad Hinsen's blog post, 'Cultures of Making and Relating', delves into the conceptual framework presented in Tomáš Petříček's book, 'Cultures of Programming'. Hinsen expands on Petříček's five interwoven cultures of programming, relating them to broader technological practices and the methodologies of scientific research. The core idea is to understand how different perspectives shape software development and scientific work.

  • The five cultures of programming are defined as:
    • Mathematical: Programs as provable mathematical entities.
    • Hacker: Programming as an iterative conversation with the machine.
    • Engineering: Programs as technical artifacts built with best practices and economic trade-offs.
    • Management: Software as an industrial product requiring organizational structures.
    • Humanist: Computation and programs as extensions of human thought and notation.
  • Hinsen categorizes these into two groups: 'making' software (Hacker, Engineering, Management) and 'relating to' software (Mathematical, Humanist), noting their interdependence.
  • He observes that these cultures are not exclusive to programming, drawing parallels between engineering/management in manufacturing, and hackers as modern craftspeople.
  • The tension between formal (Mathematical) and contextual (Humanist) approaches is explored, highlighting that formally proven properties may not always be the most relevant.
  • The post traces the evolution of scientific research, comparing early 'craft' science to modern industrialized approaches, and noting similar cultural tensions in its methodologies.
  • Scientific software, in particular, has evolved from a hacker-driven craft to incorporate engineering principles, though hacker culture persists in research-specific computational work.
  • A surprising observation is the minor role of mathematical culture in scientific software, primarily attributed to the immaturity of formal methods in software development, with static type checking being a visible expression of engineering vs. hacker tension.

Ultimately, Hinsen's analysis provides a valuable lens through which to examine the diverse philosophies underpinning how we create and interact with software, and how these paradigms manifest across different domains, particularly in the realm of scientific inquiry.