I admit it. I cannot look away from this Smalltalk fallout from Ovid's post.
James Robertson (of Cincom Smalltalk) blogged a response, which elicited a comment from Shane King:
While I'd agree with you that the average perl code has more lexical complexity than the average smalltalk code, I'd guess the average smalltalk code has more conceptual complexity than the average perl code.This is the simplest and most concise expression I've seen of the difference between languages like C, Perl, etc. vs. Lisp, Scheme, Smalltalk and such. [1]I think lexical complexity is easier on most people than conceptual complexity. With perl, sure there's a lot to learn, but it's all pretty simple, and can be learnt by memorisation. On the other hand, while there's not as much to learn syntax wise with smalltalk, there are a number of higher level concepts you wont encounter much (if at all) in most perl code.
It's a double edged sword - higher level concepts are what makes a programming language more productive for experts, but they're also what intimidates newcomers.
A few other responses to James' post fall into the "intuitive trap"[2], but a good many more highlight the "Where's my program?" problem innate to image-based Smalltalks.
1: I once heard a Lisp bigot claim that Lisp was easier to learn, because there is no distinction between statements and expressions as in C. In practice, those distinctions take about a nanosecond for most programmers to absorb, which made that line of argument especially hollow.
2: The only intuitive interface is the nipple. All else is learned.
Re:Syntax vs Semantics
chromatic on 2004-09-23T16:05:34
Perhaps the people drawn to create and use academic languages are more comfortable expressing their languages in the context of algebraic expressions. There's certainly something similar about the desire to move from first principles to highly-derived theorems.