Brian Kernighan writes:
people use tools in unexpected, perverse ways
- compiler writing
- implementing languages
- object language
- first programming language
the existence of a language encourages programs to generate it
- machine generated inputs stress a program differently than people do
mistakes are inevitable and hard to change
- function syntax
- concatenation syntax
- ambiguities, especially with >
- difficulty of changing a "standard"
- creeping featurism from user pressures
standardization is hard
- there is a POSIX standard for Awk
- awk, gawk, mawk, tawk, busybox awk, ... all differ in places
internationalization is hard
- \$1 \~ /[全一旅]/ { ... }
Brian Kernighan, "Random thoughts on scripting languages", guest lecture in course CS152, David F. Bacon, Spring, 2009, Harvard University. http://www.eecs.harvard.edu/cs152/lectures/CS152-Lecture_14-Kernighan.pdf