diff options
-rw-r--r-- | complexity.html | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/complexity.html b/complexity.html new file mode 100644 index 0000000..818373d --- /dev/null +++ b/complexity.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <title>A word about complexity</title> + <link rel="icon" type="image/png" href="/img/favicon.png"> + <link rel="stylesheet" href="/style.css"> + </head> + <body> +<main> + <h1>A word about complexity</h1> + <i>Written on 2025-09-14 by Rodrigo Arias Mallo</i> + <p> + After spending some time dealing with problems derived from the complexity of + the web, I would like to write something about it. + </p> + <p> + 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: + <strong>complexity</strong>. + </p> + <p>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. + </p> + <p> + 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. + </p> + <p>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. + </p> + <p> + 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. + </p> +</main> +<footer> +<a href="../index.html">← Back</a> +</footer> + </body> +</html> |