The best programming language
A question of much debate is: Which is the best programming language? If you throw that question into a room full of programmers you will likely start a heated debate. Lets try to answer that with reason -- as far as possible.
What are important properties of computer programs? The most important property of every computer program is correctness: If the program does not deliver the correct result it is useless.
So what properties of a programming language helps us write correct programs? Crystal clear semantics. If we do not understand what a program does, how shall we decide if it is correct?
If we are programming in a group, we must also be able to read and understand the code of someone else. Even if you are writing something from scratch and try to read it half a year later, you probably cannot remember what you wrote but have to read and understand it again from source. Either way: We must understand everything someone else might write in this language. If you don't understand some feature of a language and a colleague of yours is using it, you cannot determine anymore if his code is correct.
This means that the best programming language should not have as many features as possible but as few features as necessary.
So what features do you really need?
- Turing completeness
- comprehensibleness of code
- compact representation of the code (less code, less bugs)
- automatically verifiable constraints (let the computer find your bugs)
While all mainstream languages feature Turing completeness, the other things differ vastly for different languages.
General programming links
- 99 bottles of beer, in over 200 programming languages
- Design patterns of 1972, excellent article on patterns (and why they are not the holy grail)
- Mastering recursive programming, efficient and proofable correct recursive programming howto
- The art of metaprogramming
- GNU automake manual
- GNU autoconf manual