Oct 10, 2025

Software, Philosophy of Language and Domain-Driven Design

A friend of mine recommended Thinking Fast and Slow in Software Engineering which argues that domain modeling (conceptualization) is very important for good (and ethical) software and that a pure /statistical approach wouldn’t be adequate.

She also associated the argument with Kant’s idea that sensory data and conceptualization must be combined to acquire knowledge 1.

I think these are closely related to the principles behind Domain Driven Design 2 in software development, which argues that good software design is heavily based on communication and developing common vocabulary with domain experts, therefore gradually improving your modeling of the real world problem at hand. Also, it emphasizes on how context matters when communicating terms and even naming things in code, which is really connected to philosophy of language matters.

There is something core in these ideas which I can’t really express yet because it’s quite blur on my mind. It goes along the lines that: when writing software, we are expressing in a formal way our model for a specific problem or domain. Language and communication are key to this practice, as it’s through them that we forge our models. So there is a connection between philosophy of language, communicative acts (maybe philosophy of mathematics too?) and the practice of designing software.

Footnotes

  1. The Togetherness Principle, https://plato.stanford.edu/entries/kant-judgment/supplement1.html

  2. For more details, read Eric Evans’ Domain-Driven Design: Tackling Complexity in the Heart of Software, https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215