Prof David West wrote:

but, good Smalltalk programmers would almost never write a loop (instead they would use do: or select: or send some similar message to a collection)

As would almost any good programmer in any language. Most languages have these in their standard libraries.
would use only simple conditionals (no boolean or nested IFs and never a case statement), and - because they are not brain dead - would never use types.

Don't agree. All a statically typed language needs is a reflection system, generics built upon that, and macros. From that you can make dynamic types when you need them. For that effort, you 1) get to know, at compile time when you've missed cases or misused interfaces, and 2) performance. C++ programs, for example, that always use pure virtuals instead of private member functions have more bloat and are slower.

For new users, it's useful to have a lower correctness wall and less up-front work. For example, by up-front work, I mean the cumbersome mechanics of declaring complex union types. Then they can make progress right away and stay engaged. Languages like Smalltalk, Scheme, R, or Pure are appealing for these users. For professional development, I think having internal consistency checks, like strong typing, is useful. Type inference and macros (e.g. Haskell) mostly eliminate the redundant mechanical aspects.
Marcus


============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to