Derisive comments are often made about the syntax of Lisp,
as witness some reproaches on
my previous blog entry.
Thus the half-joking, half-serious backronym of
Lots of (Insipid | Irritating | Infuriating | Idiotic | ...)
and (Spurious | Stubborn | Superfluous | Silly | ...) Parenthesesand accusations that Lisp syntax would make
(
Read more... )
2) The human brain is massively parallel. And it has the benefit of some billions years of evolution in dealing with large detailed spatial environments. Which do not have any recursion to speak of, are not regular or repetitive, and cannot be combined in any meaningful way. The most important thing is to recognize them by multitude of visual, aural, olfactory or tactile cues - and so not to get lost.
The grammar-capable brain regions are relatively recent, 100k years or so. They're small, too (check Broca's area on a brain anatomy map, for example, and compare with the size of visual cortex (occipital (V1-V4) and inferotemporal lobe). No natural language has anything like deeply nested structures (interestingly, the most "recursive" language is Vietnamese :)
The simple truth is people are very poor thinkers when faced with recursive structures. The 1929 Goedel's results could be well accessible to Aristotle or Mohammed Al Khorezmi, but it took, well, millenia to come with what, in restrospect, seems to be the fundamental but rather simple statement about the foundations and meaning of logic.
Most practical programming projects are, in fact, very similar. There's quite a limited set of movements, algorithms or tricks an "average" programmer has it his bag. Those are practically always sufficient to get the job done.
3) Programming is different from the usual stuff. Yes, it is. It requires people to perform unnatural tasks, all day long. That's why it is much harder than, say, driving. But, at the end of the day, - both professions are about telling machines what to do.
The result is obvious - most people are extremely poor programmers, and even good programmers are apt to make frequent mistakes. A driver with comparable error rate would get himself killed on the very first trip.
Some languages make it easier to discuss semantics than other.
Programming is not about discussing - it is about translating intent into code. The descriptive power is often counterproductive - replacing mechanically learned movements with deliberations and reasoning is a sure way to sabotage the actual task - namely getting from "we want this and that to be done" to "computer: do this and that".
Reply
Leave a comment