Architecture Doesn’t Care About the Language of the System – or Does It?
by Mike Sperber
Many tomes on software architecture pretend as though the programming language of a project is unimportant for the architecture. After all, architecture is about building blocks and interfaces. Isn’t that basically the same everywhere? No. In fact, there are great differences: OCaml’s module system, for examples, fosters pervasive decoupling even within a monolith. The process concept of Erlang opens up a different view on microservices than, say, Spring Boot. It’s not even all about modules: Macros in Racket or Clojure simplify the development of a DSL to the point where making a new language becomes a routine activity in software development. Moreover, the powerful abstraction mechanisms in functional languages enable particularly flexible domain models. Knowing these languages and concepts makes you a better architect.