2.6 KiB
Programming Language
A programming language is a computer language in which programs can be written, it 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.
The distinction between compiled and interpreted languages can be a bit blurry sometimes, since most "serious" "interpreted" programming languages actually compile to bytecode (instead of machine code) something that can be considered as compilation. So to summarise, "compiled language" refers to a language that compiles to machine code while an "interpreted language" compiles to bytecode or is executed by a tree-walk interpreter.
In some ways, assembly can be considered to be 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.
Some bloated programming languages such as Python or JavaScript may be acceptable for simple throwaway scripts or for learning programming, but no serious software should be written on them.
List of acceptable and non-acceptable (harmful) languages
- Assembly: yes, but non portable.
- C: yes, the first and natural choice for writing programs. The Unix language.
- Lua: yes, good for embedding and quick scripts.
- Lisp: 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.
- AWK: yes, the standard Unix DSL for text processing.
- (POSIX) Shell Script: yes, has its quirks.
- Perl: acceptable, could be used as a replacement for more complex shell scripts and AWK, 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.
- Python: Slow and bloated, avoid. Can be acceptable if used as a beginners language only.
- C++: No.
- JavaScript: No.
- Rust: NO.