Revisiting “Good” Software Design Principles To Shape Undone Computer Science Topics



In a position paper last year I suggested the notion of anti-limits to qualify all the cases in which the development of a digital system makes both a promise to the users, and an implicit design assumption, that some resource will grow as needed. I wrote: Whatever our personal opinion, as computer scientists we can start exploring the notion of limits even if we do not agree on the moral judgments related to the choice of those limits. We can even explore the notion of limits without being convinced that there should be limits in the first place, just because this is a fascinating territory of undone science. How to stay within limits has become a scientific and technical problem that it is little addressed. In this short paper, I will avoid the moral discussions and the sacrifices end-users might be asked to accept, in order to focus instead on the potential responsibility of the design principles that are considered good principles. My hypothesis is that they might well be an intrinsic obstacle to the emergence of research ideas for studying which type of digital systems would be acceptable in a sustainable world. I will use as an example the hardware/software design principle on which most modern digital systems rely, namely memory hierarchy (caches, virtual memory, …). My hypothesis is that the transparency of this mechanism and the induced design principles applied by software developers make it impossible to think of what it would mean to design digital systems within limits. Revisiting these principles is part of undone computer science.


author = {Maraninchi, Florence},
title = {Revisiting “Good” Software Design Principles

To Shape Undone Computer Science Topics}, booktitle = {Undone Computer Science conference}, year = {2024}, month = {jan}, }