From 82da0428e0433ada6a210e3a389216a9be28192b Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Sun, 14 Sep 2025 22:35:37 +0200 Subject: Add complexity article --- complexity.html | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 complexity.html diff --git a/complexity.html b/complexity.html new file mode 100644 index 0000000..818373d --- /dev/null +++ b/complexity.html @@ -0,0 +1,64 @@ + + + + + A word about complexity + + + + +
+

A word about complexity

+ Written on 2025-09-14 by Rodrigo Arias Mallo +

+ After spending some time dealing with problems derived from the complexity of + the web, I would like to write something about it. +

+

+ It has come to my attention that the GPL and other free-software licenses + don't seem to be enough to protect their core idea: "[to] guarantee end users + the freedom to run, study, share, or modify the software". There is another + barrier that prevents users from being able to modify the software: + complexity. +

+

An individual or small group of individuals with a common goal of modifying + a piece of software should be able to do it. However, this doesn't seem to + work in practice. For example, despite Chromium being licensed with a + permisive license, people cannot just fork it and reintroduce support for + Manifest V2 to continue to support it on their own, to be able to use + ad-blockers as most people would want. The cost of maintaining a working fork + is just too high because the codebase is too complex. The right to modify the + source code doesn't seem to be enough. +

+

+ One of the first changes that I introduced when I started to maintain Dillo + was to try to limit the complexity of the browser to guarantee that we don't + accidentally arrive at the same situation. So I decided to distribute the + releases in a single floppy disk, which bounds the extension of the source + code to 1.44 MB. This is far from being perfect, but it works in practice for + our particular case and is easy to measure. If we eventually become evil + (hopefully not), another party could fork the code and continue without + requiring a gigantic team of developers to maintain it. +

+

A side effect of not being able to extend the software to implement all + the features you want, is that you eventually make it interoperable with other + programs. So, instead of having to enforce the UNIX philosophy ideas of "doing + one thing only" and "write programs that work together", you already get them + as a side effect. If you try to include support for additional features in the + same program, it just doesn't fit. So you are forced to interoperate with + already existing software if you want to add support for it. For example, + instead of adding support to display videos or audio in Dillo, we added the + support to open them in external programs. This keeps the browser simple. +

+

+ If this rule continues to prove to be effective, it would be ideal if it could + be added to a similar license to the GPL so that it guarantees that a given + program cannot grow outside of a given reasonable limit. It would keep the + software permanently small so that it always remains hackable. +

+
+ + + -- cgit v1.2.3