4 ms·
In every day life, average (non-programmer, non-scientist, non-mathematician) humans do many complicated things naturally. Walking, or driving a car, or orderin
by YuriNiyazov 12y ago
In every day life, average (non-programmer, non-scientist, non-mathematician) humans do many complicated things naturally. Walking, or driving a car, or ordering food at a restaurant are immensely complicated activities. Huge portions of the human population are not explicitly trained in symbol manipulation or algorithmic thought, and yet they perform those activities with fairly standard education. If you were to ask most of those people to write instructions (at the level that it would be executable by a von-Neumann machine) for performing those activities, you wouldn't get satisfactory results, because humans don't naturally break high-level processes down into their constituent components; only those humans that are explicitly trained to view common processes in terms of their constituent components can do so. This process of breaking processes down into components is a fundamental aspect of programming; it only becomes easy with significant training, which makes it unnatural.
- blt 12y agoWhat about higher-level languages that significantly abstract away the Von Neumann machine? Based on the other Epigrams, I don't think Perlis's definition of "Programming" was restricted to assembly or even low-level compiled languages.
- YuriNiyazov 12y agoI mentioned von Neumann architecture in my original description so as to make the distinction as clear as possible between computer architectures and human architectures, but the analogy works just as well with what you call high-level languages (presumably something like Lisp or Haskell?). You really have to be precise about why you think high-level languages make a difference. I claim that the distance between high-level programming languages and human languages is quite great; humans find it natural to express and understand instructions in human languages, but to express them in high-level programming languages still requires significant training. Yea, we've attempted to create programming languages that are really close to human languages, but for whatever reason, those never became successful.