Programming languages as tools for thought and rigorous engineering.
Programming languages are the fundamental tool of software engineers. A good language for serious work should have at least the following properties:
- Static
- The language should be statically typed with programs as compiled binaries. This prevents simple errors, encourages rigorous thinking, and simplifies distribution.
- Simple
- A good language and its compiler should be simple enough that the developer using them can (with some work) understand and modify them if needed.
- Unmanaged
- Garbage collection introduces non-determinism into applications and prevents the satisfaction of hard real-time requirements. It also obscure memory usage from programmers leading to wasteful designs. This is antithetical to the principle of budgeting.
- Low-level
- High-quality software often requires skirting around wasteful abstractions. A good language should allow efficient access to low-level constructs related to the machine and the operating system.
Last update on 7E4B17, edited 1 times. 1/1thh