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' {} \; ````
25 lines
1.7 KiB
Markdown
25 lines
1.7 KiB
Markdown
# Programming language
|
|
A programming language is a computer language in which programs can be written, they can either be compiled into native machine code or interpreted.
|
|
Different programming languages offers distinct amount of abstraction over the machine (low-level and high-level),
|
|
being the so called "scripting languages" the ones with the higher level of abstraction, for example.
|
|
|
|
In some ways, assembly can be considered a (low-level) programming language, since it abstracts the numerical opcodes of the machine with mnemonics
|
|
(such as `mov`, `call`, `mul`, etc.) and most offer macro capabilities.
|
|
|
|
## List of acceptable and non-acceptable (harmful) languages
|
|
- Assembly: yes, but non portable.
|
|
- [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.
|
|
- [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.
|
|
- 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](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
|
|
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](articles/frameworks.html).
|
|
- Python: Slow and bloated, avoid
|
|
- C++: No.
|
|
- JavaScript: No.
|
|
- Rust: NO
|