This commit is contained in:
Miloslav Ciz 2023-01-08 20:48:10 +01:00
parent 82c02a1627
commit 72aebe3467
16 changed files with 68 additions and 35 deletions

View file

@ -1,12 +1,12 @@
# Bloat
Bloat is a very wide term that in the context of [software](software.md) and technology means extreme growth in terms of source code size, complexity, number of [dependencies](dependency.md), [redundancy](redundancy.md), unnecessary or useless features (e.g. [feature creep](feature_creep.md)) and resource usage, all of which lead to inefficient, badly designed technology with bugs and [security](security.md) vulnerabilities, as well as **loss of [freedom](free_software.md)**, waste of human effort and great obscurity and ugliness. Bloat is extremely bad and one of the greatest technological issues of today. Creating bloat is bad engineering at it worst and unfortunately it is what's absolutely taking over all technology nowadays, mostly due to [capitalism](capitalism.md), commercialization, consumerism and incompetent people trying to take on jobs they are in no way qualified to do.
Bloat is a very wide term that in the context of [software](software.md) and technology means extreme growth in terms of source code size, complexity, number of [dependencies](dependency.md), [redundancy](redundancy.md), unnecessary or useless features (e.g. [feature creep](feature_creep.md)) and resource usage, all of which lead to inefficient, badly designed technology with bugs and [security](security.md) vulnerabilities, as well as **loss of [freedom](free_software.md)**, waste of human effort and great obscurity and ugliness. Simply put bloat is burdening [bullshit](bullshit.md). Bloat is extremely bad and one of the greatest technological issues of today. Creating bloat is bad engineering at its worst and unfortunately it is what's absolutely taking over all technology nowadays, mostly due to [capitalism](capitalism.md), commercialization, consumerism and incompetent people trying to take on jobs they are in no way qualified to do.
[LRS](lrs.md), [suckless](suckless.md) and some others rather small groups are trying to address the issue and write software that is good, minimal, safe, efficient and well functioning. Nevertheless our numbers are very small and in this endeavor we are basically standing against the whole world and the most powerful tech corporations.
The issue of bloat may of course appear outside of the strict boundaries of computer technology, nowadays we may already observe e.g. **[science bloat](science_bloat.md)** -- science is becoming so overcomplicated (many times on purpose, e.g. by means of [bullshit](bullshit.md) science) that 99% people can NOT understand it, they have to BELIEVE "scientific authorities", which does not at all differ from the dangerous blind religious behavior. Any time a new paper comes out, chances are that not even SCIENTISTS from the same field but with a different specialization will understand it in depth and have to simply trust its results. This combined with self-interest obsessed society gives rise to [soyence](soyence.md) and large scale brainwashing and spread of "science approved" propaganda.
Bach to technology though, one of a very frequent questions you may hear a noob ask is **"How can bloat limit software freedom if such software has a [free](free_software.md) license?"** Bloat [de-facto](de_facto.md) limits some of the four essential freedoms (to use, study, modify and share) required for a software to be free. A free license grants these freedoms legally, but if some of those freedoms are subsequently limited by other circumstances, the software becomes effectively less free. It is important to realize that **complexity itself goes against freedom** because a more complex system will inevitably reduce the number of people being able to execute freedoms such as modifying the software (the number of programmers being able to understand and modify a trivial program is much greater than the number of programmers being able to understand and modify a highly complex million [LOC](loc.md) program). As the number of people being able to execute the basic freedom drops, we're approaching the scenario in which the software is de-facto controlled by a small number of people who can (e.g. due to the cost) effectively study, modify and maintain the program -- and a program that is controlled by a small group of people (e.g. a corporation) is by definition [proprietary](proprietary.md). If there is a web browser that has a free license but you, a lone programmer, can't afford to study it, modify it significantly and maintain it, and your friends aren't able to do that either, when the only one who can practically do this is the developer of the browser himself and perhaps a few other rich corporations that can pay dozens of full time programmers, then such browser cannot be considered free as it won't be shaped to benefit you, the user, but rather the developer, a corporation.
Back to technology though, one of a very frequent questions you may hear a noob ask is **"How can bloat limit software freedom if such software has a [free](free_software.md) license?"** Bloat [de-facto](de_facto.md) limits some of the four essential freedoms (to use, study, modify and share) required for a software to be free. A free license grants these freedoms legally, but if some of those freedoms are subsequently limited by other circumstances, the software becomes effectively less free. It is important to realize that **complexity itself goes against freedom** because a more complex system will inevitably reduce the number of people being able to execute freedoms such as modifying the software (the number of programmers being able to understand and modify a trivial program is much greater than the number of programmers being able to understand and modify a highly complex million [LOC](loc.md) program). As the number of people being able to execute the basic freedom drops, we're approaching the scenario in which the software is de-facto controlled by a small number of people who can (e.g. due to the cost) effectively study, modify and maintain the program -- and a program that is controlled by a small group of people (e.g. a corporation) is by definition [proprietary](proprietary.md). If there is a web browser that has a free license but you, a lone programmer, can't afford to study it, modify it significantly and maintain it, and your friends aren't able to do that either, when the only one who can practically do this is the developer of the browser himself and perhaps a few other rich corporations that can pay dozens of full time programmers, then such browser cannot be considered free as it won't be shaped to benefit you, the user, but rather the developer, a corporation.
## Typical Bloat
@ -33,7 +33,7 @@ The following is a list of software usually considered a good, typical example o
Besides the typical big programs that even normies admit are bloated there exists also a smaller bloat which many people don't see as such but which is nevertheless considered unnecessarily complex by some experts and/or idealists and/or hardcore minimalists, including [us](lrs.md).
Small bloat is a subject of popular [jokes](joke.md) such as "OMG he uses a unicode fonts -- BLOAT!!!". These are good jokes, it's nice to make fun out of one's own idealism. But watch out, this doesn't mean small bloat is only a joke concept at all, it plays an important role in designing good technology. When we identify something as *small bloat*, we don't necessarily have to completely avoid and reject that concept, we may just try to for example make it optional. In context of today's PCs using a Unicode font is not really an issue for performance, memory consumption or anything else, but we should keep in mind it may not be so on much weaker computers or for example post-[collapse](collapse.md) computers, so we should try to design systems that don't [depend](depend.md) on Unicode.
Small bloat is a subject of popular [jokes](joke.md) such as "OMG he uses a unicode font -- BLOAT!!!". These are good jokes, it's nice to make fun out of one's own idealism. But watch out, this doesn't mean small bloat is only a joke concept at all, it plays an important role in designing good technology. When we identify something as *small bloat*, we don't necessarily have to completely avoid and reject that concept, we may just try to for example make it optional. In context of today's PCs using a Unicode font is not really an issue for performance, memory consumption or anything else, but we should keep in mind it may not be so on much weaker computers or for example post-[collapse](collapse.md) computers, so we should try to design systems that don't [depend](depend.md) on Unicode.
Small bloat includes for example: