rewrite articles urls
Probably I will never have a VPS so this wiki will live in a git repository only. To make the article urls work properly so the wiki can be browsed, I removed the leading `/`. For the record, this is what I used (sed could have done the job too): ``` find articles -type f -name '*.md' -exec \ perl -pi -e 's/\[([^]]+)\]\(\/([a-zA-Z0-9\/_.-]+)\)/\[\1\]\(\2\)/g' {} \; ````
This commit is contained in:
parent
fb50cd7f68
commit
4b17ce4782
18 changed files with 50 additions and 50 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.)
|
- Eye candy (animations, etc.)
|
||||||
- Useless colors (as opposed to meaningful colors carrying a semantic value)
|
- Useless colors (as opposed to meaningful colors carrying a semantic value)
|
||||||
- Animations (waste of CPU power)
|
- Animations (waste of CPU power)
|
||||||
- Monolithic programs (as opposed to the [Unix philosophy](/articles/unix_philosophy.html))
|
- Monolithic programs (as opposed to the [Unix philosophy](articles/unix_philosophy.html))
|
||||||
- [Frameworks](/articles/frameworks.html)
|
- [Frameworks](articles/frameworks.html)
|
||||||
- [OOP (object oriented programming)](/articles/oop.html)
|
- [OOP (object oriented programming)](articles/oop.html)
|
||||||
- [C++](/articles/cpp.html)
|
- [C++](articles/cpp.html)
|
||||||
- [JavaScript](/articles/javascript.html)
|
- [JavaScript](articles/javascript.html)
|
||||||
- [Rust](/articles/rust.html)
|
- [Rust](articles/rust.html)
|
||||||
- ...
|
- ...
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
- [Minimalism](/articles/minimalism.html)
|
- [Minimalism](articles/minimalism.html)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# BSD
|
# BSD
|
||||||
BSD, standing for **B**erkeley **S**oftware **D**istribution, is a family of libre (BSD license) Unix-like operating systems.
|
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](/articles/linux.html) which could
|
The BSDs are a direct descendant of the original Unix operating system, unlike [Linux](articles/linux.html) which could
|
||||||
be considered as a "clean room" implementation of Unix.
|
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.
|
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.
|
- [OpenBSD](https://www.openbsd.org/): quite hysterical with "security features", but quite functional as its contributors actually daily drive it.
|
||||||
|
|
||||||
## See Also
|
## See Also
|
||||||
- [Linux](/articles/linux.html)
|
- [Linux](articles/linux.html)
|
||||||
- [Unix](/articles/unix.html)
|
- [Unix](articles/unix.html)
|
||||||
|
|
|
@ -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
|
(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.
|
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](/articles/unix.html) operating system, which up to that point was
|
C was created in 1973 by Dennis Ritchie, then working in the [Unix](articles/unix.html) 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.
|
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)
|
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
|
This version had slight syntax differences, one of them being a different function parameter syntax and extensive use of
|
||||||
the explicit `int` type.
|
the explicit `int` type.
|
||||||
|
|
||||||
In 1979 C was defiled by Bjarne Stroustrup and turned into the abomination nowadays known as [C++](/articles/cpp.html).
|
In 1979 C was defiled by Bjarne Stroustrup and turned into the abomination nowadays known as [C++](articles/cpp.html).
|
||||||
|
|
||||||
In 1989 the first standardized version of C was released, C89 also known as *ANSI C*, a standard that remains relevant today, being
|
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.
|
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):
|
Currently there are multiple independent compilers (non exhaustive list):
|
||||||
- GCC (GNU compiler collection)
|
- GCC (GNU compiler collection)
|
||||||
- Clang: based in [LLVM](/articles/llvm.html).
|
- Clang: based in [LLVM](articles/llvm.html).
|
||||||
- [TCC](/articles/tcc.html) (Tiny C Compiler): by Fabrice Bellard, a small compiler with fast compile times, implements modern C standards.
|
- [TCC](articles/tcc.html) (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.
|
- [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.
|
- [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](/articles/qbe.html) backend.
|
- [cproc](https://sr.ht/~mcf/cproc/): uses the [QBE](articles/qbe.html) backend.
|
||||||
- [pcc](https://web.archive.org/web/20231212090621/http://pcc.ludd.ltu.se/)
|
- [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.
|
(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.
|
- [OpenWatcom](https://openwatcom.org/): a C compiler from the DOS days, proprietary.
|
||||||
- MSVC: proprietary compiler from [Micro$oft](/articles/microsoft.html), notable for being stuck in ANSI C for decades.
|
- MSVC: proprietary compiler from [Micro$oft](articles/microsoft.html), notable for being stuck in ANSI C for decades.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
### Hello world
|
### 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.
|
- *The C Programming Language* by Brian Kernighan and Dennis Ritchie, covers the ANSI C version.
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
- [C tutorial](/articles/c_tutorial.html)
|
- [C tutorial](articles/c_tutorial.html)
|
||||||
- [Pointer](/articles/pointer.html)
|
- [Pointer](articles/pointer.html)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# C++
|
# C++
|
||||||
C++ was created in a in 1979 as a "C with Classes" ([Simula](/articles/simula.html) kind of OOP) by Bjarne Stroustrup. Formally
|
C++ was created in a in 1979 as a "C with Classes" ([Simula](articles/simula.html) kind of OOP) by Bjarne Stroustrup. Formally
|
||||||
released in 1985, it has grown out of control since then.
|
released in 1985, it has grown out of control since then.
|
||||||
|
|
||||||
A bloated programming language, one of its main features aside from [OOP](/articles/oop.html) is the STL (standard template library) implementing basic generic
|
A bloated programming language, one of its main features aside from [OOP](articles/oop.html) 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
|
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
|
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).
|
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
|
- Anarch
|
||||||
- Licar
|
- Licar
|
||||||
- [Less Retarded Wiki](https://www.tastyfish.cz/lrs/main.html)
|
- [Less Retarded Wiki](https://www.tastyfish.cz/lrs/main.html)
|
||||||
- [comun](/articles/comun.html)
|
- [comun](articles/comun.html)
|
||||||
- raycastlib
|
- raycastlib
|
||||||
- ...
|
- ...
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ A common mistake is conflating the "free" as in no price, when it actually refer
|
||||||
|
|
||||||
# Free Software Movement
|
# Free Software Movement
|
||||||
The Free Software Movement was founded by Richard Matthew Stallman (RMS) in 1983, along with the GNU operating system project, which
|
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](/articles/gcc.html).
|
initially consisted of free versions of common UNIX utilities, including a compiler, [GCC](articles/gcc.html).
|
||||||
|
|
||||||
For software to be considered free software it must grant the following rights (unconditionally and irrevocable) also known as the
|
For software to be considered free software it must grant the following rights (unconditionally and irrevocable) also known as the
|
||||||
*Four essential freedoms*:
|
*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).
|
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.
|
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](/articles/open_source.html)
|
Free software prevents the use of abusive practices common in the world of proprietary and [open $source](articles/open_source.html)
|
||||||
software, by allowing anyone to study the source code and promoting ethics.
|
software, by allowing anyone to study the source code and promoting ethics.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Go
|
# Go
|
||||||
Go (also Golang) is a compiled programming language created by Rob Pike, Ken Thompson and others at [Google](/articles/google.html), released in 2009.
|
Go (also Golang) is a compiled programming language created by Rob Pike, Ken Thompson and others at [Google](articles/google.html), released in 2009.
|
||||||
In contrast with other "modern" languages (such as Rust, etc.) Go is relatively simple, with the spec being about 130 pages.
|
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
|
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
|
is almost impossible with the default compiler. However, alternative implementations such as TinyGo compile to small
|
||||||
executables, mainly targeted for embedded use.
|
executables, mainly targeted for embedded use.
|
||||||
|
|
||||||
Furthermore, Go's runtime is quite heavy by having a [garbage collector](/articles/gc.html) and a weird stack layout for
|
Furthermore, Go's runtime is quite heavy by having a [garbage collector](articles/gc.html) and a weird stack layout for
|
||||||
supporting the builtin concurrency system, goroutines, which makes C interop slow and cumbersome compared to other
|
supporting the builtin concurrency system, goroutines, which makes C interop slow and cumbersome compared to other
|
||||||
languages.
|
languages.
|
||||||
|
|
||||||
Go being a Google project, depends on it financially, also it has a [code of censorship](/articles/coc.html).
|
Go being a Google project, depends on it financially, also it has a [code of censorship](articles/coc.html).
|
||||||
|
|
||||||
## Compilers
|
## Compilers
|
||||||
Due to Go having a formal spec (and being simple enough), Go has more than one compiler:
|
Due to Go having a formal spec (and being simple enough), Go has more than one compiler:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Gopher
|
# Gopher
|
||||||
Gopher is an hypertext protocol, similar to [HTTP](/articles/http.html) but far more simpler and [KISS](/articles/kiss.html).
|
Gopher is an hypertext protocol, similar to [HTTP](articles/http.html) but far more simpler and [KISS](articles/kiss.html).
|
||||||
|
|
||||||
Pages using the Gopher protocol are known as "Gopherholes". As of writing this, there are about 200~300 active gopherholes.
|
Pages using the Gopher protocol are known as "Gopherholes". As of writing this, there are about 200~300 active gopherholes.
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ printf '\n' | nc 'khzae.net' 70
|
||||||
"Modern" web browsers are so advanced that can't bother implementing such a trivial protocol, so if you're using a web browser you
|
"Modern" web browsers are so advanced that can't bother implementing such a trivial protocol, so if you're using a web browser you
|
||||||
can use a proxy like <https://gopher.floodgap.com/gopher/> that works over HTTP.
|
can use a proxy like <https://gopher.floodgap.com/gopher/> that works over HTTP.
|
||||||
But for the true experience, you want a text based browser with native support for Gopher such as [Lynx](https://lynx.invisible-island.net/)
|
But for the true experience, you want a text based browser with native support for Gopher such as [Lynx](https://lynx.invisible-island.net/)
|
||||||
or [Bitreich's](/articles/bitreich.md) [sacc](gopher://bitreich.org/1/scm/sacc) browser.
|
or [Bitreich's](articles/bitreich.md) [sacc](gopher://bitreich.org/1/scm/sacc) browser.
|
||||||
|
|
||||||
## Notable Gopherholes
|
## Notable Gopherholes
|
||||||
- [Bitreich](gopher://bitreich.org/1)
|
- [Bitreich](gopher://bitreich.org/1)
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
# Lua
|
# Lua
|
||||||
[Lua](https://lua.org) is a libre, scripting programming language created in 1993 by the Brazilian programmer Roberto Ierusalimschy.
|
[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](/articles/python.html)), minimal features, extensibility and a small,
|
Lua is notable for its efficiency (faster than [Python](articles/python.html)), minimal features, extensibility and a small,
|
||||||
non bloated implementation, making it a excellent choice for embedding into programs.
|
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,
|
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.
|
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](/articles/c.html) (about 32000 LOC) and uses a register-based bytecode virtual machine for execution.
|
The main reference implementation is written in [ANSI C](articles/c.html) (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.
|
Another notable implementation is [LuaJIT](https://luajit.org), which speeds up execution speed by JIT compiling the Lua code.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Welcome!
|
# Welcome!
|
||||||
Welcome to this wiki (I'm yet to give it a name). Inspired by [drummyfish's](/articles/drummyfish.html)
|
Welcome to this wiki (I'm yet to give it a name). Inspired by [drummyfish's](articles/drummyfish.html)
|
||||||
[LRS wiki](https://www.tastyfish.cz/lrs/main.html). Mostly a dump of what I know.
|
[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).
|
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
|
## See Also
|
||||||
- [Watt's Law](/articles/watts_law.html)
|
- [Watt's Law](articles/watts_law.html)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Open $ource
|
# Open $ource
|
||||||
*Not to be confused with Free Software*
|
*Not to be confused with Free Software*
|
||||||
|
|
||||||
Open Source (also open $ource) is a neoliberal and capitalist perversion of the [Free Software Movement](/articles/free_software.html)
|
Open Source (also open $ource) is a neoliberal and capitalist perversion of the [Free Software Movement](articles/free_software.html)
|
||||||
that abandons the main principles of Free Software: freedom and ethics, in exchange of maximum profit and exploit of programmers and users.
|
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
|
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
|
||||||
Pascal is a procedural programming language created by [Niklaus Wirth](/articles/niklaus_wirth.html) in 1970.
|
Pascal is a procedural programming language created by [Niklaus Wirth](articles/niklaus_wirth.html) 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)
|
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.
|
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
|
- [FPC](https://www.freepascal.org/) (Free Pascal Compiler): currently the most popular Pascal compiler with wide support
|
||||||
for different OSes and architectures, libre software.
|
for different OSes and architectures, libre software.
|
||||||
- Turbo Pascal: old compiler for DOS systems, proprietary
|
- Turbo Pascal: old compiler for DOS systems, proprietary
|
||||||
- Delphi: proprietary, adds [OOP](/articles/oop.html) bloat
|
- Delphi: proprietary, adds [OOP](articles/oop.html) bloat
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
### Hello world
|
### 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>
|
flaws described in the article has been fixed by modern Pascal compilers. <https://www.lysator.liu.se/c/bwk-on-pascal.html>
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
- [Oberon](/articles/oberon.html)
|
- [Oberon](articles/oberon.html)
|
||||||
|
|
|
@ -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
|
## List of acceptable and non-acceptable (harmful) languages
|
||||||
- Assembly: yes, but non portable.
|
- Assembly: yes, but non portable.
|
||||||
- [C](/articles/c.html): yes, the first and natural choice for writing programs. The Unix language.
|
- [C](articles/c.html): yes, the first and natural choice for writing programs. The Unix language.
|
||||||
- [Lua](/articles/lua.html): yes, good for embedding and quick scripts.
|
- [Lua](articles/lua.html): yes, good for embedding and quick scripts.
|
||||||
- [Lisp](/articles/lisp.html): yes, flexible and relatively fast, prefer Scheme over the more bloated Common Lisp (still better than C++ however).
|
- [Lisp](articles/lisp.html): 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.
|
- 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
|
- 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.
|
of features.
|
||||||
- (POSIX) [Shell Script](/articles/shell_script.html): yes, has its quirks.
|
- (POSIX) [Shell Script](articles/shell_script.html): yes, has its quirks.
|
||||||
- Perl: acceptable, could be used as a replacement for more complex shell scripts, since it is commonly installed in most
|
- Perl: acceptable, could be used as a replacement for more complex shell scripts, since it is commonly installed in most
|
||||||
modern unixes.
|
modern unixes.
|
||||||
- Go: acceptable but beware of the big executable sizes.
|
- Go: acceptable but beware of the big executable sizes.
|
||||||
- PHP (no OOP): acceptable, if you need interactive web pages but stay away from [frameworks](/articles/frameworks.html).
|
- PHP (no OOP): acceptable, if you need interactive web pages but stay away from [frameworks](articles/frameworks.html).
|
||||||
- Python: Slow and bloated, avoid
|
- Python: Slow and bloated, avoid
|
||||||
- C++: No.
|
- C++: No.
|
||||||
- JavaScript: No.
|
- JavaScript: No.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# QBE
|
# QBE
|
||||||
[QBE](https://c9x.me/compile/) is an optimizing compiler backend with a simple implementation in C, compared to
|
[QBE](https://c9x.me/compile/) is an optimizing compiler backend with a simple implementation in C, compared to
|
||||||
huge and slower backends such as [LLVM](/articles/llvm.md). Supports codegen for the x86, ARM and RISC-V architectures.
|
huge and slower backends such as [LLVM](articles/llvm.md). Supports codegen for the x86, ARM and RISC-V architectures.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Rust
|
# Rust
|
||||||
Rust is a [bloated](/articles/bloat.html) and [open $ource](/articles/open_source.html) programming language. It was created out of frustration that
|
Rust is a [bloated](articles/bloat.html) and [open $ource](articles/open_source.html) programming language. It was created out of frustration that
|
||||||
[C++](/articles/cpp.html) wasn't bloated and shitty enough.
|
[C++](articles/cpp.html) 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
|
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
|
"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.
|
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
|
## Less harmful alternatives
|
||||||
- [C](/articles/c.html)
|
- [C](articles/c.html)
|
||||||
- [Lisp](/articles/lisp.html)
|
- [Lisp](articles/lisp.html)
|
||||||
- Even [Go](/articles/golang.html) is preferable.
|
- Even [Go](articles/golang.html) is preferable.
|
||||||
- Learning how to use [pointers](/articles/pointer.html) properly.
|
- Learning how to use [pointers](articles/pointer.html) properly.
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
- [drummyfish's take on Rust](https://www.tastyfish.cz/lrs/rust.html)
|
- [drummyfish's take on Rust](https://www.tastyfish.cz/lrs/rust.html)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# SystemD
|
# SystemD
|
||||||
*This article is part of the bloat and vomit inducing series*
|
*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](/articles/linux.html) made by [Micro$oft](/articles/microsoft.html)
|
SystemD (also known as SoystemD) is a bloated and predatory init system for [Linux](articles/linux.html) made by [Micro$oft](articles/microsoft.html)
|
||||||
employee Lennart Poettering (then working for RedHat) as a mean of bringing the *Embrace, Extend and Extinguish* and update culture movements into Linux.
|
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.
|
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 (Tiny C Compiler)
|
||||||
[TCC](https://www.bellard.org/tcc/) is a [C](/articles/c.html) [compiler](/compiler.html) written by Fabrice Bellard,
|
[TCC](https://www.bellard.org/tcc/) is a [C](articles/c.html) [compiler](compiler.html) written by Fabrice Bellard,
|
||||||
notable for having a simple implementation (< 40k LOC) and very fast compile times compared to more heavy duty
|
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,
|
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.
|
but ARM and RISC-V codegen have been implemented.
|
||||||
|
|
Loading…
Add table
Reference in a new issue