Update
This commit is contained in:
parent
46523273c7
commit
64e42585cf
13 changed files with 93 additions and 23 deletions
43
bloat.md
43
bloat.md
|
@ -26,26 +26,51 @@ The following is a list of software usually considered a good, typical example o
|
|||
|
||||
## Small Bloat
|
||||
|
||||
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 are nevertheless considered unnecessarily complex by some experts and/or idealists and hardcore minimalists, including [us](lrs.md). This includes for example:
|
||||
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 are nevertheless considered unnecessarily complex by some experts and/or idealists and hardcore minimalists, including [us](lrs.md).
|
||||
|
||||
Small bloat is many times a subject of [jokes](joke.md) such as "OMG he uses a unicode fonts -- BLOAT!!!". Many times these are good jokes, it's a fun pastime 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. For example in context of today's PCs using a Unicode font is not really an issue for performance, memory consumption or anything else really, 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:
|
||||
|
||||
- [floating point](float.md) (complex standard with design issues, requires special hardware for acceleration, [fixed point](fixed_point.md) is better)
|
||||
- config files (and other unnecessary file I/O that requires a file I/O library, not all computers have file systems, configs should be part of source code)
|
||||
- any [GPU](gpu.md), [openGL](opengl.md) (complex hardware, not all computers have GPUs, [software rendering](software_rendering.md) is better)
|
||||
- library [linking](linking.md) ([header only](header_only.md) libraries are better)
|
||||
- any [GPU](gpu.md), [openGL](opengl.md) (complex hardware and specifications, not all computers have complex GPUs, [software rendering](software_rendering.md) is better)
|
||||
- [Unicode](unicode.md) (big specification requiring special libraries and big fonts, [ASCII](ascii.md) is better)
|
||||
- anything that's not strictly needed such as [antialiasing](antialiasing.md) or colors in text rendering
|
||||
- [linking](linking.md), build systems/scripts, directories and multiple source code files (single file, [header only](header_only.md) libraries and [single compilation unit](single_compilation_unit.md) programs are better)
|
||||
- [antialiasing](antialiasing.md) (just ignore [aliasing](aliasing.md), use low resolution textures etc.)
|
||||
- 64 bit architectures (they only exist to allow ungodly amounts of RAM, 32 bits completely suffice for any computation, many times even 16 or 8 bits are enough)
|
||||
- [proportional font](proportional_font.md) (fixed width font is better)
|
||||
- [linking](linking.md), build systems/scripts, [makefiles](make.md), directories and multiple source code files (single file, [header only](header_only.md) libraries and [single compilation unit](single_compilation_unit.md) programs are better)
|
||||
- [infix notation](infix_notation.md) ([postfix notation](postfix_notation.md) is better)
|
||||
- any [GUI](gui.md)
|
||||
- any [GUI](gui.md), [window managers](wm.md) (pure text mode is better)
|
||||
- [operating system](os.md) ([bare metal](bare_metal.md) is better)
|
||||
- [multithreading](multithreading.md), [parallelism](parallelism.md)
|
||||
- [multithreading](multithreading.md), [parallelism](parallelism.md), [virtual memory](virtual_memory.md), ...
|
||||
- [encryption](encryption.md), [security](security.md), [memory safety](memory_safery.md) (just don't care and/or don't handle sensitive data with computers connected to the internet, don't live in a shitty society)
|
||||
- [database](database.md) software (plain files are better)
|
||||
- [C](c.md) (something in between C and [brainfuck](brainfuck.md) would be ideal, e.g. [Forth](forth.md) may come close)
|
||||
- [glibc](glibc.md), [gcc](gcc.md), [clang](clang.md) etc. (better alternatives are [tcc](tcc.md), [musl](musl.md), [uclibc](uclibc.md) etc.)
|
||||
- letter accents/diacritics (can normally be ignored in most languages that use them)
|
||||
- [jpg](jpg.md), [png](png.md), [svg](svg.md) and similar formats (e.g. [ppm](ppm.md) or [farbfeld](farbfeld.md) is better)
|
||||
- [syntax highlight](syntax_highlight.md) and just [colors](color.md) anywhere they aren't absolutely necessary
|
||||
- [html](html.md), [markdown](md.md) ([plain text](plaintext.md) is better)
|
||||
- [x86](x86.md) instruction set (e.g. [ARM](arm.md) is probably better, { not completely sure how bloated ARM really is. ~drummyfish })
|
||||
- [x86](x86.md) instruction set (e.g. [ARM](arm.md) is probably better, { Not completely sure how bloated ARM really is. ~drummyfish })
|
||||
- any non-[public-domain](public_domain.md) license (any legal burden introduced by a license is unnecessary bloat)
|
||||
- [computers](computer.md) (pen and paper is better)
|
||||
- dynamic [linking](linking.md) (static linking is better)
|
||||
- ...
|
||||
- [web](web.md) 1.0, [gemini](gemini.md) ([gopher](gopher.md) or [FTP](ftp.md) is better)
|
||||
- [mouse](mouse.md) (keyboard is better)
|
||||
- [TCP](tcp.md) ([UDP](udp.md) is probably better)
|
||||
- [vim](vim.md) (things like [ed](ed.md) are probably better?)
|
||||
- sound (picture is usually enough)
|
||||
- high resolution (640x480 is probably the maximum you'll ever need, lower resolution takes less RAM and makes rendering faster)
|
||||
- [true color](true_color.md) (256 colors, e.g. [332](332.md) palette, is better)
|
||||
- [GNU](gnu.md) Unix utils (things like [busybox](busybox.md) or [sbase](sbase.md) are probably better)
|
||||
- [data types](data_type.md) (untyped or single type is better, everything can be just a [number](number.md))
|
||||
- [package managers](package_manager.md) (just don't use them, install just a few programs manually, or at least make package managers as simple as possible)
|
||||
- [computers](computer.md) (pen and paper or counting with [rocks](rock.md) is better)
|
||||
- ...
|
||||
|
||||
## Non-Computer Bloat
|
||||
|
||||
The concept of bloat can be applied even outside the computing world, e.g. to non-computer technology, [art](art.md), [culture](culture.md), [law](law.md) etc. Here it becomes kind of synonymous with [bullshit](bullshit.md), but using the word *bloat* says we're approaching the issue as computer programmers.
|
||||
|
||||
TODO: examples
|
Loading…
Add table
Add a link
Reference in a new issue