[Prev][Next][Index][Thread]

RE: Synergy between Skill-driven design and Dylan?




---------------------- Weitergeleitet von Peter Robisch/LANGEN/DE/BULL on
30.05.2000 09:14 ---------------------------


"Avner Ben" <avner@skilldesign.com> on 30.05.2000 23:27:23

Bitte antworten an avner@skilldesign.com

An:   Peter Robisch/LANGEN/DE/BULL@BULL
Kopie:
Thema:    RE: Synergy between Skill-driven design and Dylan?




The answer from "Aver Ben" <avner@skilldesign.com>
to "Synergy between Skill-driven design and Dylan?" forwarded to
info-dylan@ai.mit.edu


Peter,

Your description of the Dylan concept sounds intriguing. When I am free of
my current pressure, I'll attempt to download the free version and
experiment with it.
"Single paradigm" languages attempt to reduce all the problems in the world
into a small set of symbols, thus forcing the designer to decompose the
domain to only a certain type of units (e.g., classes, functions, rules
etc.) allowing only a predefined type of connections among them. Smalltalk,
for example, has no built-in control structure and no free functions because
it supports only the object-oriented paradigm. In such language, you must
emulate the units/connections of another paradigm (e.g., in Smalltalk, while
and if-else are library functions). C++, Ada and Eiffel are multi-paradigm
platforms. C++ supports the procedural paradigm (functions),
data-abstraction (classes), OO (substitutability during run-time among
objects of different classes and Generic (same, during compile time).
In this respect, Dylan seems to be multi-paradigm. I am not sure it supports
data-abstraction in the common sense of the word. Its concept of binding
functions to objects seems to suggest a unique paradigm that I have yet to
comprehend.
Does Dylan handle multiple-polymorphism (also called "multi-methods" -
e.g., intersection function between two shapes of two unknown types) in a
natural way (i.e., without having to introduce a "double dispatch" mechanism
or the "visitor" pattern)?
The example I bring in my STL foils is from the C++ standard library. I was
relieved to see that Dylan can operate in a similar - and quite readable -
way! The Java example is awful - there you have the weaknesses of being
single paradigm!
     Avner.








Follow-Ups: