[
Lists Home |
Date Index |
Thread Index
]
Hi James,
James said:
i would not try to do it in c++ or java. i would use clos or smalltalk.
directly.
yes, they propose patterns and structures which make it possible to
accomplish some of the same things in static languages like c++ and
java. the only thing which i had found useful in their papers was the
effort to standardize rule-based typing. i didn't thin it was worth the
baggage.
Didier replies:
For people who knows only C++ or Java or for people constrained by available
tools offered to these environments, yes it does. These strongly typed
language do not offer dynamic adaptation. Even more, in C++ you have very
little reflexivity offered by the language. Considering type definition as
meta data or as an instance itself allows some reflexivity. This type of
reflexivity can also be language independent. For instance, for C++ and Java
when the implementation is on an object DB. Some recent run-time environment
like Microsoft CLR virtual machine are beginning to offer "multi-language"
reflexive properties. In the past we got "single language" reflexivity as
with, for instance, Smalltalk. Even if the Smalltalk virtual machine could
potentially be used to run other languages. Nonetheless, Java creators just
created a new VM, and so is going the computer world with the "not invented
here" syndrome. All the example you gave James where single language, single
environment. What is new in case you didn't noticed is that the pattern is
language independent. I can have two applications created in two different
languages (let's say C++ and Java) and both can share the same adaptive
model.
James said:
the user still has to be familiar with specific concepts and re-express
their observations and/or requirements in those terms. they say it's
not "programming" because it is not java and does not need to be
"compiled". i suggest that the distinction is not material.
Didier replies:
Notheless, the implementation allows users to modify types without having to
know a particular language. This is because, the "class" definition is
stored as an instance and this latter can be modified. The "class"
definition is still available at run time. Off course, the user has to be
familiar with the object model and know that a particular object can be
modified. The main point here is that the system could be designed to be
adaptable without the need of a developer and a new development cycle. They
don't claim having invented to cookie cutter, just proposed a language
independent pattern for statically typed languages. It's not a revolution,
its just Kaizen.
Off course, you may want users to modify everything, thus, you need a way to
control access to the "class meta information". Also, dependent on the way
you see the world, a link from a "class definition" to the different
contexts where this class could be used. These last two elements are missing
in their model as well as in all previous language dependent dynamic typing
environments. But this is a different story....
Cheers
Didier PH Martin
http://didier-martin.com
|