Update
This commit is contained in:
parent
1ae8bf1e9d
commit
91a4ce4727
7 changed files with 202 additions and 29 deletions
|
@ -23,7 +23,7 @@ Some notable things feminists managed to achieve are:
|
||||||
- Industries such as those of [technology](tech.md), [science](science.md), movies etc. all go to absolute shit because of incompetent women FORCED there because "we need more strong women everywhere".
|
- Industries such as those of [technology](tech.md), [science](science.md), movies etc. all go to absolute shit because of incompetent women FORCED there because "we need more strong women everywhere".
|
||||||
- Strong propaganda everywhere, destroying all [art](art.md), truth about history etc.
|
- Strong propaganda everywhere, destroying all [art](art.md), truth about history etc.
|
||||||
- Women are more stressed because their capabilities are overestimated by the propaganda, a young girl is told she is better than a man and she is expected to beat men; in reality she finds out she can't beat a man and becomes depressed, thinking she is extremely inferior while she is just a normal woman.
|
- Women are more stressed because their capabilities are overestimated by the propaganda, a young girl is told she is better than a man and she is expected to beat men; in reality she finds out she can't beat a man and becomes depressed, thinking she is extremely inferior while she is just a normal woman.
|
||||||
- [Censorship](censorship.md) of basically all old art such as movies without enough women in them, movies that make any kind of fun of any woman, movies that show any woman as weak etc.
|
- [Censorship](censorship.md) of basically all old art such as movies without enough women in them, movies that make any kind of fun of any woman, movies that show any woman as weak etc. Tiny bits of [free speech](free_speech.md) are disappearing completely.
|
||||||
- Women marry women and raise children who lack fathers, something that's objectively extremely bad from psychological point of view. Ask literally anyone who grew up without a father if he missed having one.
|
- Women marry women and raise children who lack fathers, something that's objectively extremely bad from psychological point of view. Ask literally anyone who grew up without a father if he missed having one.
|
||||||
- People believe literal lies such as that a woman is physically stronger and more intelligent than man.
|
- People believe literal lies such as that a woman is physically stronger and more intelligent than man.
|
||||||
- Eye contact is perceived as [rape](rape.md).
|
- Eye contact is perceived as [rape](rape.md).
|
||||||
|
@ -38,4 +38,4 @@ If anything's clear, then that feminism is not at all about gender equality but
|
||||||
|
|
||||||
Part of the success of feminism is also [capitalism](capitalism.md) -- women with priviledges, e.g. those of not having to work as much as men, are not accepted under capitalism; everyone has to be exploited as much as possible, everyone has to be a work slave. Therefore capitalist propaganda promotes ideas such as "women not having to work is oppression by men and something a woman should be ashamed of", which is of course laughable, but with enough brainwashing anything can be established, even the most ridiculous and obvious bullshit.
|
Part of the success of feminism is also [capitalism](capitalism.md) -- women with priviledges, e.g. those of not having to work as much as men, are not accepted under capitalism; everyone has to be exploited as much as possible, everyone has to be a work slave. Therefore capitalist propaganda promotes ideas such as "women not having to work is oppression by men and something a woman should be ashamed of", which is of course laughable, but with enough brainwashing anything can be established, even the most ridiculous and obvious bullshit.
|
||||||
|
|
||||||
Apparently in Korea feminists already practice segregation, they separate parking spots for men and women so as to prevent women bumping into men or meeting a man late at night because allegedly men are more aggressive and dangerous. Now this is pretty ridiculous, this is exactly the same as if they separated e.g. parking lots for black and white people because black people are statistically more often involved in crime, you wouldn't want to meet them at night. So, do we still want to pretend feminists are not fascist?
|
Apparently in Korea feminists already practice segregation, they separate parking spots for men and women so as to prevent women bumping into men or meeting a man late at night because allegedly men are more aggressive and dangerous. Now this is pretty ridiculous, this is exactly the same as if they separated e.g. parking lots for black and white people because black people are statistically more often involved in crime, you wouldn't want to meet them at night. So, do we still want to pretend feminists are not fascist?
|
||||||
|
|
|
@ -31,4 +31,5 @@ Free culture has become a relative success, the free Creative Commons licenses a
|
||||||
|
|
||||||
- [free software](free_software.md)
|
- [free software](free_software.md)
|
||||||
- [free universe](free_universe.md)
|
- [free universe](free_universe.md)
|
||||||
- [copyfree](copyfree.md)
|
- [copyfree](copyfree.md)
|
||||||
|
- [kopimi](kopimi.md)
|
|
@ -6,6 +6,36 @@ For beginners: a programming language is actually much easier to learn than a fo
|
||||||
|
|
||||||
A programming language is distinct from a general computer language by its purpose to express algorithms and be used for creation of [programs](program.md). This is to say that there are computer languages that are NOT programming languages (at least in the narrower sense), such as [HTML](html.md), [json](json.md) and so on.
|
A programming language is distinct from a general computer language by its purpose to express algorithms and be used for creation of [programs](program.md). This is to say that there are computer languages that are NOT programming languages (at least in the narrower sense), such as [HTML](html.md), [json](json.md) and so on.
|
||||||
|
|
||||||
|
A **simple example** of source code in the [C](c.md) programming language is the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
// simple program computing squares of numbers
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int square(int x)
|
||||||
|
{
|
||||||
|
return x * x;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 5; ++i)
|
||||||
|
printf("%d squared is %d\n",i,square(i));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Which prints:
|
||||||
|
|
||||||
|
```
|
||||||
|
0 squared is 0
|
||||||
|
1 squared is 1
|
||||||
|
2 squared is 4
|
||||||
|
3 squared is 9
|
||||||
|
4 squared is 16
|
||||||
|
```
|
||||||
|
|
||||||
We divide programming languages into different groups. Perhaps the most common divisions is to two groups:
|
We divide programming languages into different groups. Perhaps the most common divisions is to two groups:
|
||||||
|
|
||||||
- **compiled** languages: Meant to be transformed by a [compiler](compiler.md) to a [native](native.md) (directly executable) binary program, i.e. before running the program we have to run it through the process of compilation into runnable form. These languages are typically more efficient but usually more difficult to program in, less flexible and the compiled programs are non-portable (can't just be copy-pasted to another computer with different [architecture](isa.md) and expected to run; note that this doesn't mean compiled languages aren't [portable](portability.md), just that the compiled EXECUTABLE is not). These languages are usually [lower level](low-level), use static and strong [typing](typing.md) and more of manual [memory management](memory_management.md). Examples: [C](c.md), [C++](cpp.md), [go](go.md), [Haskell](haskell.md) or [Pascal](pascal.md).
|
- **compiled** languages: Meant to be transformed by a [compiler](compiler.md) to a [native](native.md) (directly executable) binary program, i.e. before running the program we have to run it through the process of compilation into runnable form. These languages are typically more efficient but usually more difficult to program in, less flexible and the compiled programs are non-portable (can't just be copy-pasted to another computer with different [architecture](isa.md) and expected to run; note that this doesn't mean compiled languages aren't [portable](portability.md), just that the compiled EXECUTABLE is not). These languages are usually [lower level](low-level), use static and strong [typing](typing.md) and more of manual [memory management](memory_management.md). Examples: [C](c.md), [C++](cpp.md), [go](go.md), [Haskell](haskell.md) or [Pascal](pascal.md).
|
||||||
|
@ -22,7 +52,25 @@ A computer language consists from two main parts:
|
||||||
|
|
||||||
**What is the best programming language and which one should you learn?** (See also [programming](programming.md).) These are the big questions, the topic of programming languages is infamous for being very [religious](holy_war.md) and different people root for different languages like they do e.g. for [football](football.md) teams. For [minimalists](minimalism.md), i.e. [suckless](suckless.md), [LRS](lrs.md) (us), [Unix](unix.md) people, [Plan9](plan9.md) people etc., the standard language is **[C](c.md)**, which is also probably the most important language in [history](history.md). It is not in the league of the absolutely most minimal and objectively best languages, but it's relatively minimalist (much more than practically any [modern](modern.md) language) and has great advantages such as being one of the absolutely fastest languages, being extremely well established, long tested, supported everywhere, having many compilers etc. But C isn't easy to learn as a first language. Some minimalist also promote [go](golang.md), which is kind of like "new C". Among the most minimal usable languages are traditionally [Forth](forth.md) and [Lisp](lisp.md) which kind of compete for who really is the smallest, then there is also our [comun](comun.md) which is a bit bigger but still much smaller than C. To learn programming you may actually want to start with some ugly language such as [Python](python.md), but you should really aim to transition to a better language later on.
|
**What is the best programming language and which one should you learn?** (See also [programming](programming.md).) These are the big questions, the topic of programming languages is infamous for being very [religious](holy_war.md) and different people root for different languages like they do e.g. for [football](football.md) teams. For [minimalists](minimalism.md), i.e. [suckless](suckless.md), [LRS](lrs.md) (us), [Unix](unix.md) people, [Plan9](plan9.md) people etc., the standard language is **[C](c.md)**, which is also probably the most important language in [history](history.md). It is not in the league of the absolutely most minimal and objectively best languages, but it's relatively minimalist (much more than practically any [modern](modern.md) language) and has great advantages such as being one of the absolutely fastest languages, being extremely well established, long tested, supported everywhere, having many compilers etc. But C isn't easy to learn as a first language. Some minimalist also promote [go](golang.md), which is kind of like "new C". Among the most minimal usable languages are traditionally [Forth](forth.md) and [Lisp](lisp.md) which kind of compete for who really is the smallest, then there is also our [comun](comun.md) which is a bit bigger but still much smaller than C. To learn programming you may actually want to start with some ugly language such as [Python](python.md), but you should really aim to transition to a better language later on.
|
||||||
|
|
||||||
TODO: how to judge minimalism of a language
|
## More Details And Context
|
||||||
|
|
||||||
|
What really IS a programming language -- is it software? Is it a standard? Can a language be [bloated](bloat.md)? How does the languages evolve? Where is the exact line between a programming language and non-programming language? Who makes programming languages? Who "owns" them? Who controls them? Why are there so many and not just one? These are just some of the questions one may ask upon learning about programming. Let's try to quickly answer some of them.
|
||||||
|
|
||||||
|
Strictly speaking programming language is a [formal language](formal_language.md) with [semantics](semantics.md), i.e. just something akin a "mathematical idea" -- as such it cannot be directly "owned", at least not on the grounds of [copyright](copyright.md), as seems to have been quite strongly established by a few court cases now. However things related to a language can sadly be owned, for example their specifications (official standards describing the language), [trademarks](trademark.md) (the name or logo of the language), implementations (specific software such as the language's compiler), [patents](patent.md) on some ideas used in the implementation etc. Also if a language is very complex, it can be owned practically; typically a corporation will make an extremely complicated language which only 1000 paid programmers can maintain, giving the corporation complete control over the language -- see [bloat monopoly](bloat_monopoly.md) and [capitalist software](capitalist_software.md).
|
||||||
|
|
||||||
|
At this point we should start to distinguish between the pure language and its **[implementation](implementation.md)**. As has been said, the pure language is just an idea -- this idea is explained in detail in so called **language specification**, a document that's kind of a standard that precisely describes the language. Specification is a technical document, it is NOT a tutorial or promotional material or anything like that, its purpose is just to DEFINE the language for those who will be implementing it. Theoretically specification is the first thing, however in practice we usually have someone e.g. program a small language for internal use in a company, then that language becomes more popular and widespread and only then someone decides to standardize it and make the official specification. Specification describes things like syntax, semantics, conformance criteria etc., often using precise formal tools such as [grammars](grammar.md). It's hugely difficult to make good specification because one has to decide what depth to go to and even what to purposefully leave unspecified! One would thought that it's always better to define as many things as possible, but that's naive -- leaving some things up to the choice of those who will be implementing the language gives them freedom to implement it in a way that's fastest, most elegant or convenient in any other way.
|
||||||
|
|
||||||
|
It is possible for a language to exist without official specification -- the language is then basically specified by some of its implementations, i.e. we say the language is "what this program accepts as valid input". Many languages go through this phase before receiving their specification. Language specified purely by one implementation is not a very good idea because firstly such specification is not very readable and secondly, as said, here EVERYTHING is specified by this one program (the language EQUALS that one specific compiler), we don't know where the freedom of implementation is. Do other implementations have to produce exactly the same compiled binary as this one (without being able to e.g. optimize it better or produce binaries for other platforms)? If not, how much can they differ? Can they e.g. use different representation of numbers (may be important for compatibility)? Do they have to reproduce even the same bugs as the original compiler? Do they have to have the same technical limitations? Do they have to implement the same command line interface (without potentially adding improvements)? Etc.
|
||||||
|
|
||||||
|
Specification typically gets updated just as software does, it has its own version and so we then also talk about version of the language (e.g. C89, C99, C11, ...), each one corresponding to some version of the specification.
|
||||||
|
|
||||||
|
Now that we have a specification, i.e. the idea, someone has to realize it, i.e. program it, make the implementation; this mostly means programming the language's [compiler](compiler.md) or [interpreter](interpreter.md) (or both), and possibly other tools (debugger, optimizer, [transpiler](transpiler.md), etc.). A language can (and often does) have multiple implementations; this happens because some people want to make the language as fast as possible while others e.g. want to rather have small, [minimalist](minimalism.md) implementation that will run on limited computers, others want implementation under a different license etc. The first implementation is usually so called **reference implementation** -- the one that will serve as a kind of authority that shows how the language should behave (e.g. in case it's not clear from the specification) to those who will make newer implementations; here the focus is often on correctness rather than e.g. efficiency or minimalism, though it is often the case that reference implementations are among the best as they're developed for longest time. Reference implementations guide development of the language itself, they help spot and improve weak points of the language etc. Besides this there are third party implementations, i.e. those made later by others. These may add extensions and/or other modifications to the original language so they spawn **dialects** -- slightly different versions of the language. We may see dialects as [forks](fork.md) of the original language, which may sometimes even evolve into a completely new language over time. Extensions of the languages may sound like a good thing as they add more "comfort" and "features", however they're usually bad as they create a [dependency](dependency.md) and fuck up the standardization -- if someone writes a program in a specific compiler's dialect, the program won't compile under other compilers.
|
||||||
|
|
||||||
|
A new language comes to existence just as other things do -- when there is a reason for it. I.e. if someone feels there is no good language for whatever he's doing or if someone has a brilliant idea and want to write a PhD thesis or if someone smokes too much weed or if a corporation wants to control some software platform etc., a new language may be made. This often happen gradually (again, like with many things), i.e. someone just starts modifying an already existing language -- at first he just makes a few macros, then he starts making a more complex preprocessor, then he sees it's starting to become a new language so he gives it a name and makes it a new language -- such language may at first just be transpiled to another language (often [C](c.md)) and over time it gets its own full compiler. At first a new language is written in some other language, however most languages aim for **[self hosted](self_hosting.md) implementation**, i.e. being written in itself. This is natural and has many advantages -- a language written in itself proves its maturity, it becomes independent and as it itself improves, so does its own compiler. Self hosting a language is one of the greatest milestones in its life -- after this the original implementation in the other language often gets deletes as it would just be a burden to keep [maintaining](maintenance.md) it.
|
||||||
|
|
||||||
|
**So can a language be bloated?** Well, yes, if we consider that a very complicated language just cannot be implemented in a simple, non-bloated way -- we can say the language itself is inevitably bloated. It may contain features that will be rarely used, it may be inelegant etc. However many times when referring to language we just refer to its implementation(s). **How to tell if language is bloated?** One can get an idea from several things, e.g. list of features, [paradigm](paradigm.md), size of its implementations, size of the specification, year of creation (newer mostly means more bloat) and so on. However be careful, many of these are just clues, for example small specification may just mean it's vague. Even a small self hosted implementation doesn't have to mean the language is small -- imagine e.g. a language that just does what you write in plain English; such language will have just one line self hosted implementation: "Implement yourself." But to actually [bootstrap](boot.md) the language will be immensely difficult and will require a lot of bloat.
|
||||||
|
|
||||||
|
**Can you use multiple programming languages for one project?** Yes, though it may be a burden, so don't do it just because you can. Combining languages is possible in many ways, e.g. by embedding a [scripting](scripting.md) language into a compiled language, linking together object files produces by different languages, creating different programs that communicate over network etc.
|
||||||
|
|
||||||
## Notable Languages
|
## Notable Languages
|
||||||
|
|
||||||
|
@ -31,7 +79,7 @@ Here is a table of notable programming languages in chronological order (keep in
|
||||||
| language | minimalist/good? | since |~min. selfhos. impl. LOC |spec. (~no stdlib pages)| notes |
|
| language | minimalist/good? | since |~min. selfhos. impl. LOC |spec. (~no stdlib pages)| notes |
|
||||||
| ----------------------- | ---------------- | ----- | ----------------------- | ---------------------- | ----------------------------------------------------------------------- |
|
| ----------------------- | ---------------- | ----- | ----------------------- | ---------------------- | ----------------------------------------------------------------------- |
|
||||||
|"[assembly](assembly.md)"| **yes** but... | 1947? | | | NOT a single language, non-[portable](portability.md) |
|
|"[assembly](assembly.md)"| **yes** but... | 1947? | | | NOT a single language, non-[portable](portability.md) |
|
||||||
|[Fortran](fortran.md) | **kind of** | 1957 | | | similar to Pascal, compiled, fast, was used by scientists a lot |
|
| [Fortran](fortran.md) | **kind of** | 1957 | | | similar to Pascal, compiled, fast, was used by scientists a lot |
|
||||||
| [Lisp](list.md) | **yes** | 1958 | 100 (judg. by jmc lisp) | 1 | elegant, KISS, functional, many variants (Common Lisp, Closure, ...) |
|
| [Lisp](list.md) | **yes** | 1958 | 100 (judg. by jmc lisp) | 1 | elegant, KISS, functional, many variants (Common Lisp, Closure, ...) |
|
||||||
| [Basic](basic.md) | kind of? | 1964 | | | mean both for beginners and professionals, probably efficient |
|
| [Basic](basic.md) | kind of? | 1964 | | | mean both for beginners and professionals, probably efficient |
|
||||||
| [Forth](forth.md) | **yes** | 1970 |100 (judg. by milliforth)| 1 | [stack](stack.md)-based, elegant, very KISS, interpreted and compiled |
|
| [Forth](forth.md) | **yes** | 1970 |100 (judg. by milliforth)| 1 | [stack](stack.md)-based, elegant, very KISS, interpreted and compiled |
|
||||||
|
@ -45,11 +93,11 @@ Here is a table of notable programming languages in chronological order (keep in
|
||||||
| Objective-C | probably not | 1986 | | | kind of C with Smalltalk-style "pure" objects? |
|
| Objective-C | probably not | 1986 | | | kind of C with Smalltalk-style "pure" objects? |
|
||||||
| [Perl](perl.md) | rather not | 1987 | | | interpreted, focused onstrings, has kinda cult following |
|
| [Perl](perl.md) | rather not | 1987 | | | interpreted, focused onstrings, has kinda cult following |
|
||||||
| [Bash](bash.md) | well | 1989 | | | Unix scripting shell, very ugly syntax, not so elegant but bearable |
|
| [Bash](bash.md) | well | 1989 | | | Unix scripting shell, very ugly syntax, not so elegant but bearable |
|
||||||
|[Haskell](haskell.md) | **kind of** | 1990 | | 150, proprietary | [functional](functional.md), compiled, acceptable |
|
| [Haskell](haskell.md) | **kind of** | 1990 | | 150, proprietary | [functional](functional.md), compiled, acceptable |
|
||||||
|[Python](python.md) | NO | 1991 | | | interpreted, huge bloat, slow, lightweight OOP, artificial obsolescence |
|
| [Python](python.md) | NO | 1991 | | 200? (p. lang. ref.) | interpreted, huge bloat, slow, lightweight OOP, artificial obsolescence |
|
||||||
|[Brainfuck](brainfuck.md)| **yes** | 1993 | 100 (judg. by dbfi) | | extremely minimal (8 commands), hard to use, [esolang](esolang.md) |
|
|[Brainfuck](brainfuck.md)| **yes** | 1993 | 100 (judg. by dbfi) | 1 | extremely minimal (8 commands), hard to use, [esolang](esolang.md) |
|
||||||
| [Lua](lua.md) | **kind of** | 1993 | | | interpreted, mainly for scripting (used a lot in games) |
|
| [Lua](lua.md) | **kind of** | 1993 | | | interpreted, mainly for scripting (used a lot in games) |
|
||||||
| [Java](java.md) | NO | 1995 | | | forced [OOP](oop.md), "platform independent" (bytecode), slow, bloat |
|
| [Java](java.md) | NO | 1995 | | 800, proprietary | forced [OOP](oop.md), "platform independent" (bytecode), slow, bloat |
|
||||||
| [JavaScript](js.md) | NO | 1995 | 50K (est. from QuickJS) | 500, proprietary? | interpreted, the [web](web.md) lang., bloated, classless [OOP](oop.md) |
|
| [JavaScript](js.md) | NO | 1995 | 50K (est. from QuickJS) | 500, proprietary? | interpreted, the [web](web.md) lang., bloated, classless [OOP](oop.md) |
|
||||||
| [PHP](php.md) | no | 1995 | | 120 (by Google), CC0 | server-side web lang., OOP |
|
| [PHP](php.md) | no | 1995 | | 120 (by Google), CC0 | server-side web lang., OOP |
|
||||||
| [Ruby](ruby.md) | no | 1995 | | | similar to Python |
|
| [Ruby](ruby.md) | no | 1995 | | | similar to Python |
|
||||||
|
@ -61,16 +109,17 @@ Here is a table of notable programming languages in chronological order (keep in
|
||||||
| [uxntal](uxn.md) | **yes** but SJW | 2021 | 400 (official) | 2? (est.), proprietary | assembly lang. for a minimalist virtual machine, PROPRIETARY SPEC. |
|
| [uxntal](uxn.md) | **yes** but SJW | 2021 | 400 (official) | 2? (est.), proprietary | assembly lang. for a minimalist virtual machine, PROPRIETARY SPEC. |
|
||||||
| **[comun](comun.md)** | **yes** | 2022 | < 5K | 2, CC0 | "official" [LRS](lrs.md) language, WIP, similar to Forth |
|
| **[comun](comun.md)** | **yes** | 2022 | < 5K | 2, CC0 | "official" [LRS](lrs.md) language, WIP, similar to Forth |
|
||||||
|
|
||||||
## Interesting Programming Languages
|
## Interesting Languages
|
||||||
|
|
||||||
Some programming languages may be [interesting](interesting.md) rather than directly useful, however they teach us a lot and may help us design good practically usable languages. In fact professional researches in theory of computation spend their whole lives dealing with such languages.
|
Some programming languages may be [interesting](interesting.md) rather than directly useful, however these are important too as they teach us a lot and may help us design good practically usable languages. In fact professional researches in theory of computation spend their whole lives dealing with practically unusable languages and purely theoretical computers.
|
||||||
|
|
||||||
One such language is e.g. **[Unary](unary_lang.md)**, a programming language that only uses a single character while being Turing complete (i.e. having the highest possible "computing power", being able to express any program). All programs in Unary are just sequences of one character, differing only by their length (i.e. a program can also be seen just as a single natural number, the length of the sequence). We can do this because we can make an ordered list of all (infinitely many) possible programs in some simple programming language (such as a [Turing machine](turing_machine.md) or [Brainfuck](brainfuck.md)), i.e. assign each program its ordinal number (1st, 2nd, 3rd, ...) -- then to express a program we simply say the position of the program on the list.
|
One such language is e.g. **[Unary](unary_lang.md)**, a programming language that only uses a single character while being Turing complete (i.e. having the highest possible "computing power", being able to express any program). All programs in Unary are just sequences of one character, differing only by their length (i.e. a program can also be seen just as a single natural number, the length of the sequence). We can do this because we can make an ordered list of all (infinitely many) possible programs in some simple programming language (such as a [Turing machine](turing_machine.md) or [Brainfuck](brainfuck.md)), i.e. assign each program its ordinal number (1st, 2nd, 3rd, ...) -- then to express a program we simply say the position of the program on the list.
|
||||||
|
|
||||||
There is a community around so called **[esoteric programming languages](esolang.md)** which takes great interest in such languages, from mere [jokes](jokes.md) (e.g. languages that look like cooking recipes or languages that can compute everything but can't output anything) to discussing semi-serious and serious, even philosophical and metaphysical questions. If you dare, kindly follow the rabbit hole.
|
There is a community around so called **[esoteric programming languages](esolang.md)** which takes great interest in such languages, from mere [jokes](jokes.md) (e.g. languages that look like cooking recipes or languages that can compute everything but can't output anything) to discussing semi-serious and serious, even philosophical and metaphysical questions. They make you think about what really is a programming language; where should we draw the line exactly, what is the absolute essence of a programming language? What's the smallest thing we would call a programming language? Does it have to be Turing complete? Does it have to allow output? What does it even mean to compute? And so on. If you dare, kindly follow the rabbit hole.
|
||||||
|
|
||||||
## See Also
|
## See Also
|
||||||
|
|
||||||
- [esoteric programming language](esolang.md)
|
- [esoteric programming language](esolang.md)
|
||||||
- [constructed language](conlang.md)
|
- [constructed language](conlang.md)
|
||||||
- [compiler](compiler.md)
|
- [pseudocode](pseudocode.md)
|
||||||
|
- [compiler](compiler.md)
|
6
quine.md
6
quine.md
|
@ -34,4 +34,8 @@ TODO: more langs?
|
||||||
|
|
||||||
Yet a stronger quine is so called *radiation hardened quine*, a quine that remains quine even after any one character from the program has been deleted (found here in [Ruby](ruby.md): https://github.com/mame/radiation-hardened-quine).
|
Yet a stronger quine is so called *radiation hardened quine*, a quine that remains quine even after any one character from the program has been deleted (found here in [Ruby](ruby.md): https://github.com/mame/radiation-hardened-quine).
|
||||||
|
|
||||||
In the [Text](plaintext.md) [esoteric programming language](esolang.md) every program is a quine (and so also a radiation hardened one).
|
In the [Text](plaintext.md) [esoteric programming language](esolang.md) every program is a quine (and so also a radiation hardened one).
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [polyglot](polyglot.md)
|
121
usenet.md
121
usenet.md
|
@ -10,10 +10,129 @@ Usenet was originally [ASCII](ascii.md) only, but people started to post binary
|
||||||
|
|
||||||
It worked like this: there were a number of Usenet servers that all collaborated on keeping a database of *articles* that users posted (very roughly this is similar to how [blockchain](blockchain.md) works nowadays); the servers would more or less mirror each other's content. These servers were called *providers* as they also allowed access to Usenet but this was usually for a fee. The system uses a [NNTP](nntp.md) (Network News Transfer Protocol) protocol. The articles users posted were also called *posts* or *news*, they were in [plain text](plain_text.md) and were similar to email messages ([mailing lists](mailing_list.md) actually offer a similar experience). Other users could reply to posts, creating a discussion thread. Every post was also categorized under certain **newsgroup** that formed a hierarchy (e.g. *comp.lang.java*). After so called *Big Renaming* in 1987 the system eventually settled on 8 top level hierarchies (called the *Big 8*): comp.* (computers), news.* (news), sci.* (science), rec.* (recreation), soc.* (social), talk.* (talk), misc.* (other) and humanities.* (humanities). There was also another one called alt.* for "controversial" topics (see especially alt.tasteless). According to [Jargon File](jargon_file.md), by 1996 there was over 10000 different newsgroups.
|
It worked like this: there were a number of Usenet servers that all collaborated on keeping a database of *articles* that users posted (very roughly this is similar to how [blockchain](blockchain.md) works nowadays); the servers would more or less mirror each other's content. These servers were called *providers* as they also allowed access to Usenet but this was usually for a fee. The system uses a [NNTP](nntp.md) (Network News Transfer Protocol) protocol. The articles users posted were also called *posts* or *news*, they were in [plain text](plain_text.md) and were similar to email messages ([mailing lists](mailing_list.md) actually offer a similar experience). Other users could reply to posts, creating a discussion thread. Every post was also categorized under certain **newsgroup** that formed a hierarchy (e.g. *comp.lang.java*). After so called *Big Renaming* in 1987 the system eventually settled on 8 top level hierarchies (called the *Big 8*): comp.* (computers), news.* (news), sci.* (science), rec.* (recreation), soc.* (social), talk.* (talk), misc.* (other) and humanities.* (humanities). There was also another one called alt.* for "controversial" topics (see especially alt.tasteless). According to [Jargon File](jargon_file.md), by 1996 there was over 10000 different newsgroups.
|
||||||
|
|
||||||
Usenet was the pre-[web](www.md) web, kind of like an 80s [reddit](reddit.md) which contained huge amounts of historical information and countless discussions of true computer [nerds](nerd.md) which are however not easily accessible anymore as there aren't so many archives, they aren't well indexed and direct Usenet access is normally paid. It's a shame. It is possible to find e.g. initial reactions to the [AIDS](aids.md) disease, people asking what the [Internet](internet.md) was, people discussing future technologies, the German cannibal (Meiwes) looking for someone to eat (which he eventually did), [Bezos](bezos.md) looking for [Amazon](amazon.md) programmers, a heated debate between [Linus Torvalds](torvalds.md) and [Andrew Tanenbaum](tanenbaum.md) about the best OS architecture (the "Linux is obsolete" discussion) or [Douglas Adams](douglas_adams.md) talking to his fans. There were [memes](meme.md) and characters like [BIFF](biff.md), a kind of hilarious noob wannabe cool personality. Some users became kind of famous, e.g. Scott Abraham who was banned from Usenet by court after an extremely long flame war, Alexander Abian, a mathematician who argued for blowing up the Moon (which according to his theory would solve all Earth's issues), Archimedes Plutonium who suggested the Universe was really a big plutonium atom (he later literally changed his name to Plutonium lol) or John Titor (pretend time traveler). There are also some politically incorrect groups like *alt.niggers* [lol](lol.md).
|
Usenet was the pre-[web](www.md) web, kind of like an 80s [reddit](reddit.md) which contained huge amounts of [historical](history.md) [information](information.md) and countless discussions of true computer [nerds](nerd.md) which are however not easily accessible anymore as there aren't so many archives, they aren't well indexed and direct Usenet access is normally paid. It's a shame. It is possible to find e.g. initial reactions to the [AIDS](aids.md) disease, people asking what the [Internet](internet.md) was, people discussing future technologies, the German cannibal (Meiwes) looking for someone to eat (which he eventually did), [Bezos](bezos.md) looking for [Amazon](amazon.md) programmers, a heated debate between [Linus Torvalds](torvalds.md) and [Andrew Tanenbaum](tanenbaum.md) about the best OS architecture (the "Linux is obsolete" discussion) or [Douglas Adams](douglas_adams.md) talking to his fans. There were [memes](meme.md) and characters like [BIFF](biff.md), a kind of hilarious noob wannabe cool personality. Some users became kind of famous, e.g. Scott Abraham who was banned from Usenet by court after an extremely long flame war, Alexander Abian, a mathematician who argued for blowing up the Moon (which according to his theory would solve all Earth's issues), Archimedes Plutonium who suggested the Universe was really a big plutonium atom (he later literally changed his name to Plutonium lol) or John Titor (pretend time traveler). There are also some politically incorrect groups like *alt.niggers* [lol](lol.md).
|
||||||
|
|
||||||
{ I mean I don't remember it either, I'm not that old, I've just been digging on the Internet and in the archives, and I find it all fascinating. ~drummyfish }
|
{ I mean I don't remember it either, I'm not that old, I've just been digging on the Internet and in the archives, and I find it all fascinating. ~drummyfish }
|
||||||
|
|
||||||
|
## The Newsgroup Hierarchy
|
||||||
|
|
||||||
|
Here are some notable groups, placed in the group hierarchy:
|
||||||
|
|
||||||
|
- *comp*: computers, part of Big 8
|
||||||
|
- *ai*: [AI](ai.md)
|
||||||
|
- *answers*
|
||||||
|
- *bbs*: [BBS](bbs.md)
|
||||||
|
- *binaries*
|
||||||
|
- *compression*: [compression](compression.md)
|
||||||
|
- *editors*: [text editors](text_editor.md)
|
||||||
|
- *graphics*: [computer graphics](graphics.md)
|
||||||
|
- *internet*: [Internet](internet.md)
|
||||||
|
- *services*
|
||||||
|
- *wiki*: [wikis](wiki.md)
|
||||||
|
- *lang*: [programming languages](programming_language.md)
|
||||||
|
- *asm*: [assembly](assembly.md)
|
||||||
|
- *c*: [C](c.md) language
|
||||||
|
- *forth*: [Forth](forth.md)
|
||||||
|
- *lisp*: [Lisp](lisp.md)
|
||||||
|
- *python*: [Python](python.md) language
|
||||||
|
- *object*: [OOP](oop.md)
|
||||||
|
- *os*: [operating systems](os.md)
|
||||||
|
- *linux*: [Linux](linux.md)
|
||||||
|
- *misc*
|
||||||
|
- *programming*: [programming](programming.md)
|
||||||
|
- *society*: technology as related to society
|
||||||
|
- *theory*: theoretical [compsci](compsci.md)
|
||||||
|
- *unix*: [Unix](unix.md)
|
||||||
|
- *humanities*: humanities, part of Big 8
|
||||||
|
- *lit*: literature
|
||||||
|
- *music*: [music](music.md)
|
||||||
|
- *misc*: miscellaneous, part of Big 8
|
||||||
|
- *books*: [books](books.md)
|
||||||
|
- *business*: [business](business.md)
|
||||||
|
- *education*: [education](education.md)
|
||||||
|
- *fitness*
|
||||||
|
- *news*: news from various regions
|
||||||
|
- *survival*
|
||||||
|
- *news*: about the network itself, part of Big 8
|
||||||
|
- *announce*
|
||||||
|
- *software*
|
||||||
|
- *rec*: recreational activity, part of Big 8
|
||||||
|
- *animals*
|
||||||
|
- *arts*: [art](art.md)
|
||||||
|
- *drugs*
|
||||||
|
- *food*
|
||||||
|
- *games*
|
||||||
|
- *humor*: [funny stuff](jokes.md)
|
||||||
|
- *knives*: [knives](knife.md)
|
||||||
|
- *sci*: [science](science.md), part of Big 8
|
||||||
|
- *answers*: answers and questions
|
||||||
|
- *bio*: [biology](biology.md)
|
||||||
|
- *chem*: [chemistry](chemistry.md)
|
||||||
|
- *crypt*: [cryptography](cryptography.md)
|
||||||
|
- *fractals*: [fractals](fractal.md)
|
||||||
|
- *lang*: [languages](natural_language.md), [linguistics](linguistics.md)
|
||||||
|
- *logic*: [logic](logic.md)
|
||||||
|
- *math*: [math](math.md) { See, it's science. ~drummyfish }
|
||||||
|
- *physics*: [physics](physics.md)
|
||||||
|
- *space*: [space](space.md)
|
||||||
|
- *soc*: social issues and socializing, part of Big 8
|
||||||
|
- *atheism*: [atheism](atheism.md)
|
||||||
|
- *bi*: [bisexual](bisexual.md)
|
||||||
|
- *culture*: [culture](culture.md)
|
||||||
|
- *feminism*: [feminism](feminism.md)
|
||||||
|
- *history*: [history](history.md)
|
||||||
|
- *politics*: [politics](politics.md)
|
||||||
|
- *religion*: [religion](religion.md)
|
||||||
|
- *christian*: [Christianity](christianity.md)
|
||||||
|
- *islam*: [Islam](islam.md)
|
||||||
|
- *women*: [women](woman.md)
|
||||||
|
- *talk*: talk, part of Big 8
|
||||||
|
- *euthanasia*
|
||||||
|
- *philosophy*
|
||||||
|
- *politics*
|
||||||
|
- *rumors*
|
||||||
|
- *alt*: alternative, weird/controversial/NSFW/NSFL
|
||||||
|
- *alien*
|
||||||
|
- *anarchism*: [anarchism](anarchism.md)
|
||||||
|
- *ascii-art*: [ASCII art](ascii_art.md)
|
||||||
|
- *atheism*: [atheism](atheism.md)
|
||||||
|
- *abortion*
|
||||||
|
- *binaries*: binary file sharing, [piracy](piracy.md)
|
||||||
|
- *games*
|
||||||
|
- *pictures*: picture sharing
|
||||||
|
- *erotica*: erotic pictures
|
||||||
|
- *animals*
|
||||||
|
- *child*: [pedo](pedophilia.md)
|
||||||
|
- *female*
|
||||||
|
- *male*
|
||||||
|
- *lolita*: [loli](loli.md)
|
||||||
|
- *pre-teen*
|
||||||
|
- *tasteless*
|
||||||
|
- *teen*
|
||||||
|
- *drugs*
|
||||||
|
- *freedom*
|
||||||
|
- *fun*: [fun](fun.md)
|
||||||
|
- *games*: [games](game.md)
|
||||||
|
- *doom*: [Doom](doom.md)
|
||||||
|
- *ii*
|
||||||
|
- *duke3d*: [Duke3D](duke3d.md)
|
||||||
|
- *video*: vidya
|
||||||
|
- *game-boy*: [GameBoy](gameboy.md)
|
||||||
|
- *humor*
|
||||||
|
- *jokes*: [jokes](jokes.md)
|
||||||
|
- *niggers*: [niggers](nigger.md)
|
||||||
|
- *sex*: [sex](sex.md)
|
||||||
|
- *pedophilia*: [pedo](pedo.md)
|
||||||
|
- *pictures*
|
||||||
|
- *swaps*
|
||||||
|
- *sheep*
|
||||||
|
- *zoophilia*
|
||||||
|
- *suicide*: [suicide](suicide.md)
|
||||||
|
- *tasteless*
|
||||||
|
- *jokes*
|
||||||
|
- *ufo*: [UFO](ufo.md)
|
||||||
|
- *tv*: [TV](tv.md)
|
||||||
|
|
||||||
## Where To Freely Browse Usenet
|
## Where To Freely Browse Usenet
|
||||||
|
|
||||||
Search for Usenet archives, I've found some sites dedicated to this, also [Internet archive](internet_archive.md) has some newsgroups archived. [Google](google.md) has Usenet archives on a website called "Google groups" (now sadly requires login). There is a nice archive at https://www.usenetarchives.com. Possibly guys from Archive Team can help (https://wiki.archiveteam.org/index.php/Usenet, https://archive.org/details/usenet, ...). See also http://www.eternal-september.org. There is an archive from 1981 accessible through [gopher](gopher.md) at gopher://gopher.quux.org/1/Archives/usenet-a-news. Also https://yarchive.net/. Also search for *Henry Spencer's UTZOO NetNews Archive*.
|
Search for Usenet archives, I've found some sites dedicated to this, also [Internet archive](internet_archive.md) has some newsgroups archived. [Google](google.md) has Usenet archives on a website called "Google groups" (now sadly requires login). There is a nice archive at https://www.usenetarchives.com. Possibly guys from Archive Team can help (https://wiki.archiveteam.org/index.php/Usenet, https://archive.org/details/usenet, ...). See also http://www.eternal-september.org. There is an archive from 1981 accessible through [gopher](gopher.md) at gopher://gopher.quux.org/1/Archives/usenet-a-news. Also https://yarchive.net/. Also search for *Henry Spencer's UTZOO NetNews Archive*.
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -3,8 +3,8 @@
|
||||||
This is an autogenerated article holding stats about this wiki.
|
This is an autogenerated article holding stats about this wiki.
|
||||||
|
|
||||||
- number of articles: 547
|
- number of articles: 547
|
||||||
- number of commits: 678
|
- number of commits: 679
|
||||||
- total size of all texts in bytes: 2852667
|
- total size of all texts in bytes: 2858831
|
||||||
|
|
||||||
longest articles:
|
longest articles:
|
||||||
|
|
||||||
|
@ -24,6 +24,17 @@ longest articles:
|
||||||
latest changes:
|
latest changes:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Date: Sun Feb 4 21:08:42 2024 +0100
|
||||||
|
c.md
|
||||||
|
cpp.md
|
||||||
|
feminism.md
|
||||||
|
golang.md
|
||||||
|
less_retarded_society.md
|
||||||
|
marketing.md
|
||||||
|
mechanical.md
|
||||||
|
programming_language.md
|
||||||
|
wiki_pages.md
|
||||||
|
wiki_stats.md
|
||||||
Date: Sun Feb 4 07:54:26 2024 +0100
|
Date: Sun Feb 4 07:54:26 2024 +0100
|
||||||
books.md
|
books.md
|
||||||
brainfuck.md
|
brainfuck.md
|
||||||
|
@ -46,17 +57,6 @@ jokes.md
|
||||||
open_console.md
|
open_console.md
|
||||||
privacy.md
|
privacy.md
|
||||||
programming_tips.md
|
programming_tips.md
|
||||||
usenet.md
|
|
||||||
wiki_pages.md
|
|
||||||
wiki_stats.md
|
|
||||||
Date: Fri Feb 2 08:28:14 2024 +0100
|
|
||||||
ancap.md
|
|
||||||
cat_v.md
|
|
||||||
copyleft.md
|
|
||||||
cpu.md
|
|
||||||
drummyfish.md
|
|
||||||
fascism.md
|
|
||||||
float.md
|
|
||||||
```
|
```
|
||||||
|
|
||||||
most wanted pages:
|
most wanted pages:
|
||||||
|
|
Loading…
Reference in a new issue