
sylvain
Let me order your list:
Smalltalk: 0 Lisp: 0 Tcl: 0
If you count reserved tokens, I guess Lisp reserves parentheses and whitespace?
Haskell: 21 * Python: 31 C: 32 * JavaScript: 36 Ruby: 38 --- Borland Turbo Pascal: ~50 Java: 53 Eiffel: 59 C++: 62
Interestingly enough, interpreted languages tend to need less keywords, which support my observation above.
I can't help but notice that the top three are untyped (all right, "dynamically typed") languages. Static typing seems to require at least a few reserved words (does it make sense to redefine 'data' or 'type' in Haskell?)
But if you really wanted to compare apples to apples you would, for instance, add GHC pragmas and "magic" things like `par` to the mix. I wonder if the picture would change much?
Looking for a minimal subset that everything else can be implemented in terms of? Still, having 'par' as a user redefinable token lets you replace it with your own implementation (par = seq, for instance :-). So I think there's a benefit, even if it is normally implemented using magic. -k -- If I haven't seen further, it is by standing in the footprints of giants