Update
This commit is contained in:
parent
d6459bcdb0
commit
b9e84b9011
12 changed files with 101 additions and 40 deletions
|
@ -20,19 +20,41 @@ A computer language consists from two main parts:
|
|||
- **[syntax](syntax.md)**: The grammar rules and words, i.e. how the language "looks", what expressions we are allowed to write in it. Syntax says which words can follow other words, if indentation has to follow some rules, how to insert comments in the source code, what format numbers can be written in, what kinds of names variables can have etc. Syntax is the surface part, it's often considered not as important or hard as semantics (e.g. syntax errors aren't really a big deal as the language processor immediately catches them and we correct them easily), but a good design of syntax is nevertheless still very important because that's what the programmer actually deals with a great amount of time.
|
||||
- **[semantics](semantics)**: The meaning of what we write, i.e. semantics says what the syntax actually stands for. E.g. when syntax says it is possible to write `a / b`, semantics says this means the mathematical operation of division and furthermore specifies what *a* and *b* can actually be, what happens if *b* is zero etc. Semantics is the deeper part as firstly it is more difficult to define and secondly it gives the language its [features](feature.md), its power to compute, usability, it can make the language robust or prone to errors, it can make it efficient or slow, easy and hard to compile, optimize etc.
|
||||
|
||||
## Nice Languages
|
||||
## Notable Languages
|
||||
|
||||
{ *THIS IS NOT A COMPREHENSIVE LIST, I can only include languages that I am familiar with, please add more* ~drummyfish }
|
||||
Here is a table of notable programming languages in chronological order (keep in mind a language usually has several versions/standards/implementations, this is just an overview).
|
||||
|
||||
- [Brainfuck](brainfuck.md): However funny and meme this language may look, its simple design is actually pretty beautiful and interpreters are ultra extremely simple to make. It is a GOOD language.
|
||||
- [C](c.md): The one and only, the go-to language of the [suckless](suckless.md) community and of compiled languages in general, greatly [future-proof](future_proof.md), uncontested in performance and with nice oldschool [meme](meme.md)-free design, our beloved C. It has many flaws, but has stood as the best practically used language, and is also [historically](history.md) most significant.
|
||||
- [Comun](comun.md): official [LRS](lrs.md) language
|
||||
- [Scheme](scheme.md): the minimal/elegant member of [Lisp](lisp.md) family of [functional](functional.md) languages
|
||||
- [Forth](forth.md): beautifully simple stack-based language
|
||||
- [Lambda calculus](lambda_calculus.md): ultra extremely [minimal](minimalism.md) [mathematical](math.md) [functional](functional.md) language
|
||||
- [LIL](lil.md): very nice KISS & [suckless](suckless.md) interpreted language
|
||||
- [Lua](lua.md)
|
||||
- [Sigma calculus](sigma_calculus): yes or no? seems like yes
|
||||
| language | minimalist/good? | since | notes |
|
||||
| ----------------------- | ---------------- | ----- | ---------------------------------------------------------------------- |
|
||||
|"[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 |
|
||||
| [Lisp](list.md) | **yes** | 1958 | elegant, KISS, functional, many variants (Common Lisp, Closure, ...) |
|
||||
| [Basic](basic.md) | kind of? | 1964 | mean both for beginners and professionals, probably efficient |
|
||||
| [Forth](forth.md) | **yes** | 1970 | [stack](stack.md)-based, elegant, very KISS, interpreted and compiled |
|
||||
| [Pascal](pascal.md) | **kind of** | 1970 | like "educational C", compiled, not so bad actually |
|
||||
| **[C](c.md)** | **kind of** | 1972 |compiled, fastest, efficient, established, suckless, low-level, #1 lang.|
|
||||
| [Prolog](prolog.md) | maybe? | 1972 | [logic](logic.md) paradigm, hard to learn/use |
|
||||
|[Smalltalk](smalltalk.md)| looks like yes? | 1972 | PURE [OOP](oop.md) language, probably not as corrupt as C++/Java/... |
|
||||
| [C++](cpp.md) | no, bearable | 1982 |bastard child of C, only adds [bloat](bloat.md) ([OOP](oop.md)), "games"|
|
||||
| [Ada](ada.md) | ??? | 1983 | { No idea about this, sorry. ~drummyfish } |
|
||||
| Object Pascal | no | 1986 | Pascal with OOP (like what C++ is to C), i.e. only adds bloat |
|
||||
| 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 |
|
||||
| [Bash](bash.md) | well | 1989 | Unix scripting shell, very ugly syntax, not so elegant but bearable |
|
||||
|[Haskell](haskell.md) | **kind of** | 1990 | [functional](functional.md), compiled, acceptable |
|
||||
|[Python](python.md) | NO | 1991 | interpreted, huge bloat, slow, lightweight OOP, artificial obsolescence|
|
||||
|[Brainfuck](brainfuck.md)| **yes** | 1993 | 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) |
|
||||
| [Java](java.md) | NO | 1995 | forced [OOP](oop.md), "platform independent" (bytecode), slow, bloat |
|
||||
| [JavaScript](js.md) | NO | 1995 | interpreted, the [web](web.md) lang., bloated, classless [OOP](oop.md) |
|
||||
| [PHP](php.md) | no | 1995 | server-side web lang., OOP |
|
||||
| [Ruby](ruby.md) | no | 1995 | similar to Python |
|
||||
| [C#](c_sharp.md) | NO | 2000 | proprietary (yes it is), extremely bad lang. owned by Micro$oft, AVOID |
|
||||
| [D](d.md) | no | 2001 | some expansion/rework of C++? OOP, generics etcetc. |
|
||||
| [Rust](rust.md) | NO! lol | 2006 |extremely bad, slow, freedom issues, toxic community, no standard, AVOID|
|
||||
| [Go](go.md) | **kind of** | 2009 | "successor to C" but not well executed, bearable but rather avoid |
|
||||
| [LIL](lil.md) | **yes** | 2010? | not known too much but nice, "everything's a string" |
|
||||
| **[comun](comun.md)** | **yes** | 2022 | "official" [LRS](lrs.md) language, WIP, similar to Forth |
|
||||
|
||||
## Interesting Programming Languages
|
||||
|
||||
|
@ -46,4 +68,4 @@ There is a community around so called **[esoteric programming languages](esolang
|
|||
|
||||
- [esoteric programming language](esolang.md)
|
||||
- [constructed language](conlang.md)
|
||||
- [compiler](compiler.md)
|
||||
- [compiler](compiler.md)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue