rewrite articles urls, once again
change the html extension to md
This commit is contained in:
parent
02e5298b51
commit
cb69c5d301
17 changed files with 48 additions and 48 deletions
|
@ -6,13 +6,13 @@ This article is more about bloat in the software sense, but it could also be ext
|
|||
- Eye candy (animations, etc.)
|
||||
- Useless colors (as opposed to meaningful colors carrying a semantic value)
|
||||
- Animations (waste of CPU power)
|
||||
- Monolithic programs (as opposed to the [Unix philosophy](unix_philosophy.html))
|
||||
- [Frameworks](frameworks.html)
|
||||
- [OOP (object oriented programming)](oop.html)
|
||||
- [C++](cpp.html)
|
||||
- [JavaScript](javascript.html)
|
||||
- [Rust](rust.html)
|
||||
- Monolithic programs (as opposed to the [Unix philosophy](unix_philosophy.md))
|
||||
- [Frameworks](frameworks.md)
|
||||
- [OOP (object oriented programming)](oop.md)
|
||||
- [C++](cpp.md)
|
||||
- [JavaScript](javascript.md)
|
||||
- [Rust](rust.md)
|
||||
- ...
|
||||
|
||||
## See also
|
||||
- [Minimalism](minimalism.html)
|
||||
- [Minimalism](minimalism.md)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# BSD
|
||||
BSD, standing for **B**erkeley **S**oftware **D**istribution, is a family of libre (BSD license) Unix-like operating systems.
|
||||
|
||||
The BSDs are a direct descendant of the original Unix operating system, unlike [Linux](linux.html) which could
|
||||
The BSDs are a direct descendant of the original Unix operating system, unlike [Linux](linux.md) which could
|
||||
be considered as a "clean room" implementation of Unix.
|
||||
|
||||
Compared to Linux, BSDs have managed to keep the bloat in check and a reasonable codebase.
|
||||
|
@ -14,5 +14,5 @@ Compared to Linux, BSDs have managed to keep the bloat in check and a reasonable
|
|||
- [OpenBSD](https://www.openbsd.org/): quite hysterical with "security features", but quite functional as its contributors actually daily drive it.
|
||||
|
||||
## See Also
|
||||
- [Linux](linux.html)
|
||||
- [Unix](unix.html)
|
||||
- [Linux](linux.md)
|
||||
- [Unix](unix.md)
|
||||
|
|
|
@ -10,7 +10,7 @@ an abstracts model", ignoring the fact that C being so influential that any CPU
|
|||
(therefore a CPU made to efficiently execute C, incidentally or not). Additionally, it is quite unforgiving and does not handhold the
|
||||
programmer at all, in part this is good since it forces to actually think what one is doing, unlike in "modern" languages.
|
||||
|
||||
C was created in 1973 by Dennis Ritchie, then working in the [Unix](unix.html) operating system, which up to that point was
|
||||
C was created in 1973 by Dennis Ritchie, then working in the [Unix](unix.md) operating system, which up to that point was
|
||||
exclusively written in PDP-11 assembly (thus non portable) as a programming language suitable for systems programming.
|
||||
|
||||
The name "C" comes from the fact that C is a successor of the earlier B programming language (made by Ritchie and Ken Thompson)
|
||||
|
@ -23,7 +23,7 @@ In 1978 the first edition of *The C Programming Language* was released, describi
|
|||
This version had slight syntax differences, one of them being a different function parameter syntax and extensive use of
|
||||
the explicit `int` type.
|
||||
|
||||
In 1979 C was defiled by Bjarne Stroustrup and turned into the abomination nowadays known as [C++](cpp.html).
|
||||
In 1979 C was defiled by Bjarne Stroustrup and turned into the abomination nowadays known as [C++](cpp.md).
|
||||
|
||||
In 1989 the first standardized version of C was released, C89 also known as *ANSI C*, a standard that remains relevant today, being
|
||||
considered as a baseline for maximum portable C code.
|
||||
|
@ -34,15 +34,15 @@ as an extension. Also adds C++ style `//` comments, the `stdint.h` (fixed intege
|
|||
|
||||
Currently there are multiple independent compilers (non exhaustive list):
|
||||
- GCC (GNU compiler collection)
|
||||
- Clang: based in [LLVM](llvm.html).
|
||||
- [TCC](tcc.html) (Tiny C Compiler): by Fabrice Bellard, a small compiler with fast compile times, implements modern C standards.
|
||||
- Clang: based in [LLVM](llvm.md).
|
||||
- [TCC](tcc.md) (Tiny C Compiler): by Fabrice Bellard, a small compiler with fast compile times, implements modern C standards.
|
||||
- [chibicc](https://github.com/rui314/chibicc): "toy" compiler by Rui Ueyama.
|
||||
- [SubC](https://www.t3x.org/reload/index.html): educational compiler by Nils M Holm, public domain.
|
||||
- [cproc](https://sr.ht/~mcf/cproc/): uses the [QBE](qbe.html) backend.
|
||||
- [cproc](https://sr.ht/~mcf/cproc/): uses the [QBE](qbe.md) backend.
|
||||
- [pcc](https://web.archive.org/web/20231212090621/http://pcc.ludd.ltu.se/)
|
||||
(Portable C Compiler): classic portable compiler from the Unix days, successor of Ritchie's C compiler.
|
||||
- [OpenWatcom](https://openwatcom.org/): a C compiler from the DOS days, proprietary.
|
||||
- MSVC: proprietary compiler from [Micro$oft](microsoft.html), notable for being stuck in ANSI C for decades.
|
||||
- MSVC: proprietary compiler from [Micro$oft](microsoft.md), notable for being stuck in ANSI C for decades.
|
||||
|
||||
## Examples
|
||||
### Hello world
|
||||
|
@ -97,5 +97,5 @@ main(int argc, char **argv)
|
|||
- *The C Programming Language* by Brian Kernighan and Dennis Ritchie, covers the ANSI C version.
|
||||
|
||||
## See also
|
||||
- [C tutorial](c_tutorial.html)
|
||||
- [Pointer](pointer.html)
|
||||
- [C tutorial](c_tutorial.md)
|
||||
- [Pointer](pointer.md)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# C++
|
||||
C++ was created in a in 1979 as a "C with Classes" ([Simula](simula.html) kind of OOP) by Bjarne Stroustrup. Formally
|
||||
C++ was created in a in 1979 as a "C with Classes" ([Simula](simula.md) kind of OOP) by Bjarne Stroustrup. Formally
|
||||
released in 1985, it has grown out of control since then.
|
||||
|
||||
A bloated programming language, one of its main features aside from [OOP](oop.html) is the STL (standard template library) implementing basic generic
|
||||
A bloated programming language, one of its main features aside from [OOP](oop.md) is the STL (standard template library) implementing basic generic
|
||||
data types, arrays, hash tables, etc. Famous for producing almost unintelligible error messages, due to extensive use of templates, which
|
||||
add generic programming capabilities (but in a crippled and slow way) and also slow down compilation, since C++ still uses C headers, even
|
||||
though C++20 introduced modules, almost no compiler at the time of writing this have implemented them properly (or even at all).
|
||||
|
|
|
@ -5,7 +5,7 @@ Drummyfish (Miloslav Číž) is a Moravian programmer, anarchopacifist, free sof
|
|||
- Anarch
|
||||
- Licar
|
||||
- [Less Retarded Wiki](https://www.tastyfish.cz/lrs/main.html)
|
||||
- [comun](comun.html)
|
||||
- [comun](comun.md)
|
||||
- raycastlib
|
||||
- ...
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ A common mistake is conflating the "free" as in no price, when it actually refer
|
|||
|
||||
# Free Software Movement
|
||||
The Free Software Movement was founded by Richard Matthew Stallman (RMS) in 1983, along with the GNU operating system project, which
|
||||
initially consisted of free versions of common UNIX utilities, including a compiler, [GCC](gcc.html).
|
||||
initially consisted of free versions of common UNIX utilities, including a compiler, [GCC](gcc.md).
|
||||
|
||||
For software to be considered free software it must grant the following rights (unconditionally and irrevocable) also known as the
|
||||
*Four essential freedoms*:
|
||||
|
@ -20,5 +20,5 @@ The first freedom is absolute, no software calling itself "free" can restrict it
|
|||
of its authors (because it doesn't imply endorsement of such actions).
|
||||
The freedom 1 implies having complete and unrestricted access to the source code.
|
||||
|
||||
Free software prevents the use of abusive practices common in the world of proprietary and [open $source](open_source.html)
|
||||
Free software prevents the use of abusive practices common in the world of proprietary and [open $source](open_source.md)
|
||||
software, by allowing anyone to study the source code and promoting ethics.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Go
|
||||
Go (also Golang) is a compiled programming language created by Rob Pike, Ken Thompson and others at [Google](google.html), released in 2009.
|
||||
Go (also Golang) is a compiled programming language created by Rob Pike, Ken Thompson and others at [Google](google.md), released in 2009.
|
||||
In contrast with other "modern" languages (such as Rust, etc.) Go is relatively simple, with the spec being about 130 pages.
|
||||
|
||||
Go generated executables are bloated (>1 MiB), since everything is statically linked. Using flags
|
||||
|
@ -7,11 +7,11 @@ like `-ldflags "-s -w"` can aid with the executable size by stripping debug symb
|
|||
is almost impossible with the default compiler. However, alternative implementations such as TinyGo compile to small
|
||||
executables, mainly targeted for embedded use.
|
||||
|
||||
Furthermore, Go's runtime is quite heavy by having a [garbage collector](gc.html) and a weird stack layout for
|
||||
Furthermore, Go's runtime is quite heavy by having a [garbage collector](gc.md) and a weird stack layout for
|
||||
supporting the builtin concurrency system, goroutines, which makes C interop slow and cumbersome compared to other
|
||||
languages.
|
||||
|
||||
Go being a Google project, depends on it financially, also it has a [code of censorship](coc.html).
|
||||
Go being a Google project, depends on it financially, also it has a [code of censorship](coc.md).
|
||||
|
||||
## Compilers
|
||||
Due to Go having a formal spec (and being simple enough), Go has more than one compiler:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Gopher
|
||||
Gopher is an hypertext protocol, similar to [HTTP](http.html) but far more simpler and [KISS](kiss.html).
|
||||
Gopher is an hypertext protocol, similar to [HTTP](http.md) but far more simpler and [KISS](kiss.md).
|
||||
|
||||
Pages using the Gopher protocol are known as "Gopherholes". As of writing this, there are about 200~300 active gopherholes.
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# Lua
|
||||
[Lua](https://lua.org) is a libre, scripting programming language created in 1993 by the Brazilian programmer Roberto Ierusalimschy.
|
||||
|
||||
Lua is notable for its efficiency (faster than [Python](python.html)), minimal features, extensibility and a small,
|
||||
Lua is notable for its efficiency (faster than [Python](python.md)), minimal features, extensibility and a small,
|
||||
non bloated implementation, making it a excellent choice for embedding into programs.
|
||||
|
||||
Lua has only has 5 datatypes: numbers, tables, functions, strings and `nil`. Tables are specially important in Lua,
|
||||
implementing arrays and hash tables in a single type and enabling metaprogramming though the use of metamethods and metatables.
|
||||
|
||||
The main reference implementation is written in [ANSI C](c.html) (about 32000 LOC) and uses a register-based bytecode virtual machine for execution.
|
||||
The main reference implementation is written in [ANSI C](c.md) (about 32000 LOC) and uses a register-based bytecode virtual machine for execution.
|
||||
Another notable implementation is [LuaJIT](https://luajit.org), which speeds up execution speed by JIT compiling the Lua code.
|
||||
|
||||
## Examples
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Welcome!
|
||||
Welcome to this wiki (I'm yet to give it a name). Inspired by [drummyfish's](drummyfish.html)
|
||||
Welcome to this wiki (I'm yet to give it a name). Inspired by [drummyfish's](drummyfish.md)
|
||||
[LRS wiki](https://www.tastyfish.cz/lrs/main.html). Mostly a dump of what I know.
|
||||
|
||||
Everything on this wiki is released to the public domain ([CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) license).
|
||||
|
|
|
@ -19,4 +19,4 @@ Graphical mnemonic:
|
|||
```
|
||||
|
||||
## See Also
|
||||
- [Watt's Law](watts_law.html)
|
||||
- [Watt's Law](watts_law.md)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Open $ource
|
||||
*Not to be confused with Free Software*
|
||||
|
||||
Open Source (also open $ource) is a neoliberal and capitalist perversion of the [Free Software Movement](free_software.html)
|
||||
Open Source (also open $ource) is a neoliberal and capitalist perversion of the [Free Software Movement](free_software.md)
|
||||
that abandons the main principles of Free Software: freedom and ethics, in exchange of maximum profit and exploit of programmers and users.
|
||||
|
||||
Megacorporations love "open source" since it gives them positive PR: "see our source code is OPEN!" but due to the lack of ethics, this
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Pascal
|
||||
Pascal is a procedural programming language created by [Niklaus Wirth](niklaus_wirth.html) in 1970.
|
||||
Pascal is a procedural programming language created by [Niklaus Wirth](niklaus_wirth.md) in 1970.
|
||||
|
||||
Pascal was a popular choice for microcomputers in the 70's and 80's, even more popular than C initially (C was still quite an UNIX-only language)
|
||||
due to its simple design, which allowed fast simple single-pass compilers.
|
||||
|
@ -8,7 +8,7 @@ due to its simple design, which allowed fast simple single-pass compilers.
|
|||
- [FPC](https://www.freepascal.org/) (Free Pascal Compiler): currently the most popular Pascal compiler with wide support
|
||||
for different OSes and architectures, libre software.
|
||||
- Turbo Pascal: old compiler for DOS systems, proprietary
|
||||
- Delphi: proprietary, adds [OOP](oop.html) bloat
|
||||
- Delphi: proprietary, adds [OOP](oop.md) bloat
|
||||
|
||||
## Examples
|
||||
### Hello world
|
||||
|
@ -72,4 +72,4 @@ end.
|
|||
flaws described in the article has been fixed by modern Pascal compilers. <https://www.lysator.liu.se/c/bwk-on-pascal.html>
|
||||
|
||||
## See also
|
||||
- [Oberon](oberon.html)
|
||||
- [Oberon](oberon.md)
|
||||
|
|
|
@ -8,17 +8,17 @@ In some ways, assembly can be considered a (low-level) programming language, sin
|
|||
|
||||
## List of acceptable and non-acceptable (harmful) languages
|
||||
- Assembly: yes, but non portable.
|
||||
- [C](c.html): yes, the first and natural choice for writing programs. The Unix language.
|
||||
- [Lua](lua.html): yes, good for embedding and quick scripts.
|
||||
- [Lisp](lisp.html): yes, flexible and relatively fast, prefer Scheme over the more bloated Common Lisp (still better than C++ however).
|
||||
- [C](c.md): yes, the first and natural choice for writing programs. The Unix language.
|
||||
- [Lua](lua.md): yes, good for embedding and quick scripts.
|
||||
- [Lisp](lisp.md): yes, flexible and relatively fast, prefer Scheme over the more bloated Common Lisp (still better than C++ however).
|
||||
- Forth: yes, niche, but it is a nice exercise on minimalism.
|
||||
- Pascal (no OOP): yes, old school and quite verbose, but small and fast compared to, say C++ or Rust; comparable to C in terms
|
||||
of features.
|
||||
- (POSIX) [Shell Script](shell_script.html): yes, has its quirks.
|
||||
- (POSIX) [Shell Script](shell_script.md): yes, has its quirks.
|
||||
- Perl: acceptable, could be used as a replacement for more complex shell scripts, since it is commonly installed in most
|
||||
modern unixes.
|
||||
- Go: acceptable but beware of the big executable sizes.
|
||||
- PHP (no OOP): acceptable, if you need interactive web pages but stay away from [frameworks](frameworks.html).
|
||||
- PHP (no OOP): acceptable, if you need interactive web pages but stay away from [frameworks](frameworks.md).
|
||||
- Python: Slow and bloated, avoid
|
||||
- C++: No.
|
||||
- JavaScript: No.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Rust
|
||||
Rust is a [bloated](bloat.html) and [open $ource](open_source.html) programming language. It was created out of frustration that
|
||||
[C++](cpp.html) wasn't bloated and shitty enough.
|
||||
Rust is a [bloated](bloat.md) and [open $ource](open_source.md) programming language. It was created out of frustration that
|
||||
[C++](cpp.md) wasn't bloated and shitty enough.
|
||||
|
||||
The main "feature" of Rust is the so called borrow checker which will reject any code that considers as "unsafe", even rejecting completely
|
||||
"safe" and valid code that Rust users have to resort to workarounds such as heap allocating everything and wrapping objects under a matroska
|
||||
|
@ -21,10 +21,10 @@ Due to its extreme complexity and lack of formal specification, theres only the
|
|||
Go to your average non trivial rust project `Cargo.lock` file and when you find one that is less than 100 lines long you win.
|
||||
|
||||
## Less harmful alternatives
|
||||
- [C](c.html)
|
||||
- [Lisp](lisp.html)
|
||||
- Even [Go](golang.html) is preferable.
|
||||
- Learning how to use [pointers](pointer.html) properly.
|
||||
- [C](c.md)
|
||||
- [Lisp](lisp.md)
|
||||
- Even [Go](golang.md) is preferable.
|
||||
- Learning how to use [pointers](pointer.md) properly.
|
||||
|
||||
## See also
|
||||
- [drummyfish's take on Rust](https://www.tastyfish.cz/lrs/rust.html)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# SystemD
|
||||
*This article is part of the bloat and vomit inducing series*
|
||||
|
||||
SystemD (also known as SoystemD) is a bloated and predatory init system for [Linux](linux.html) made by [Micro$oft](microsoft.html)
|
||||
SystemD (also known as SoystemD) is a bloated and predatory init system for [Linux](linux.md) made by [Micro$oft](microsoft.md)
|
||||
employee Lennart Poettering (then working for RedHat) as a mean of bringing the *Embrace, Extend and Extinguish* and update culture movements into Linux.
|
||||
|
||||
A notable backdoor (thwarted) attempt in 2024 on liblzma was facilitated by a completely redundant SystemD dependency added by Debian maintainers to OpenSSH.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# TCC (Tiny C Compiler)
|
||||
[TCC](https://www.bellard.org/tcc/) is a [C](c.html) [compiler](compiler.html) written by Fabrice Bellard,
|
||||
[TCC](https://www.bellard.org/tcc/) is a [C](c.md) [compiler](compiler.md) written by Fabrice Bellard,
|
||||
notable for having a simple implementation (< 40k LOC) and very fast compile times compared to more heavy duty
|
||||
compilers such as GCC or Clang. Originally it only supported the x86 (and x86-64) architecture,
|
||||
but ARM and RISC-V codegen have been implemented.
|
||||
|
|
Loading…
Add table
Reference in a new issue