Lisp vs. Smalltalk

Don Box is considering what programming language to teach to best round-out his children. When teaching programming as a way to balance a child, rather than to accomplish specific programming tasks, it’s interesting to think about the thought patterns that the language encourages or enforces.


Languages like Basic, C, and Assembler always bothered me, because they reward stubborn dogged determination and muddling along rather than clear thinking. They are very direct a naive — you just keep telling the computer what to do, until it actually works. Lisp and Smalltalk both have purer philosophies. So what tells them apart?


The answer, I think, is that Lisp encourages ?right thinking?, while Smalltalk encourages ?right classification?. It’s not Prolog, but Lisp forces you to think in structure, in trees, grammar, and in stacks of reference which you can evaluate to be ?correct?. Most kids are very weak in grammar wetware at a young age, because they’re exposed to so much crap grammar in the media, and grammar schooling is not like it used to be — so a symboic language that exercises these parts of the brain is valuable. Smalltalk, on the other hand, encourages people to think in terms of definitions, building structures that would make Linnaeus proud. Of course, both classification and grammar are inexplicaby intertwined and both are critical parts of our thinking ever since Plato and Aristotle. But I think kids need to learn ?right thinking? first, and it’s important to burn this into the brain while it’s developing. Right thinking is the foundation for much of what we learn later. Good classification philosophycan be learned at any time.

Leave a Reply