The concept of a stream of events with sources, sinks, and processors is one of the most powerful abstraction in computer science.
The software architecture metaphor puts the emphasis on the structural properties of software systems. Other metaphors - city, garden, or biology - can help explain other properties of software systems better.
If artificial intelligence is a computation, does it learn by accumulating more input data, by changing its own computation, or both?
In the book Factfulness, Hans Rosling reminds us that our model of the world is probably too simplistic, outdated, or plain wrong. He also reminds us that progress is an incremental process that doesn’t make newspaper headlines, but still happens.
Software rewrites are risky undertakings, but sometimes necessary. Advising strictly against rewrites is too extreme, but it's also worth beeing aware of the risks.
Different people priorizing goals differently inevitably leads to frictions. Incentives must be aligned for the friction to disappear.
OOP went in the last 40 through three eras, each characterized by various expectations about the technology, and influenced by the learnings of the previous era. Let’s explore them.
Frameworks and platforms promise to raise productivity by removing technical complexity. But it’s the technical aspects that interest developers, much more than domain aspects. This leads to a dynamics where peak productivity with a given technology is never reached, because developers already look for the next framework or platform.
The slides from our talk at BATBern, focused on « event-driven architectures ».
A collection of articles about software engineering that influenced me.