Brian Harvey wrote in message <73unos$dlc$1@agate.berkeley.edu>... > >I think this may be the core of our disagreement. It's not quite clear from >that sentence whether you mean "simple for the implementor" or "simple for >the user." If the former, we disagree in principle. If the latter, we >disagree about user interface strategy. I'm not convinced that simplicity >means "give the user a hammer and teach him that everything is a nail"! > I do mean the user. Though I would like advanced users to have a good idea of how things are implemented. Don't Scheme and Lisp courses teach students how to write meta-interpreters? That is a lot harder to do if the language isn't simple. When I first came to Xerox PARC (1984) I became heavily involved in a multi-paradigm language project (called Loops, then InterLoops, then CommonLoops, and I dropped out when it became CLOS). I recall reviewing a paper written at Bell Labs that argued persausively that there were very large cognitive and collaborative costs to using such rich languages. I became convinced that it is hard for most people to switch between different programming paradigms at the fine-grain that these languages enable. And the author of the paper reported on the problems teams at Bell Labs had due to different members using very different ways of programming. Team members found it hard to understand and modify each other's code. Also there can be interference between the parts. A Prolog-like, logic programming, component has troubles integrating well with an imperative sub-language. A pure functional component permits all sorts of program transformations and parallel executions that break when integrated with languages with side-effects. >You started this whole discussion by saying that computer science has moved >on since Logo, and we should support new paradigms. So I think it's worth >noting that the mainstream languages that support parallelism and OOP haven't >thrown out other expressive mechanisms; afaik that's unique to TT. Yes, the mainstream has just added parallelism to existing frameworks. And professional programmers have a hard time understanding and debugging Java programs with threads (and Java is one of the better examples of this). Computer scientists continue to explore actor, functional, logic-based, and constraint-based programming languages that, like ToonTalk, throw out some old ideas in order to make progress. In contrast, the computer industry or mainstream just tries to graft new things on the old. This news group is about Logo - about powerful programming languages for kids. Unlike the mainstream, the constraints of legacy systems and backwards compatibility are minimal. And we can give kids the ability to make parallel programs without forcing them to master the complexity of locks and atomic regions. And without expecting them to debug race conditions and deadlocks. Best, -ken kahn (www.toontalk.com) --------------------------------------------------------------- Please post messages to the Logo forum to logo-l@gsn.org. Mail questions about the list administration to logofdn@gsn.org. To unsubscribe send unsubscribe logo-l to majordomo@gsn.org.
Global SchoolNet Foundation -
Linking Kids Around the World!
Copyright GSN - All Rights Reserved
- Comments
& Questions
Visit GSN's
Global
Schoolhouse for more exciting learning resources!
Search our Site
-
Home