The problem with reading class oriented code (C++, Java, C#, Ruby, ...,
Smalltalk) is that the code does not reveal how the system will work at
runtime (polymorphism). The essence of object orientation is that
objects collaborate to achieve a goal. The DCI programming paradigm
adds code for how the system works at runtime:
* A class says everything about the inner construction of an object
but nothing about how it is used in its interaction with other objects.
* The new DCI context says everything about how objects are used when
interacting with other objects
but nothing about their insides.
Class and context separates the code into two materially independent
concerns: What the system IS (classes) and what the system DOES
(Contexts). BabyIDE is a programming environment that supports the DCI
paradigm. It is available in Squeak 4.5 and may be available in Pharo
later.
Cheers
--Trygve
On 11.02.2015 18:36, kilon alios wrote:
Well I tried in the past to use openqwaq , but what I learned from the
experience is that sometimes understanding others code can be even
more time consuming than remaking it yourself. I spent like an
afternoon trying to understand openqwaq before starting Ephestos from
complete scratch. Suffice to say that in another afternoon I had the
prototype of Ephestos working with the ability to send simple python
strings to the cptyhon interpreter to be execute by the time I was not
even able to understand the basic architecture of openqwaq.
The module you recommended alone contains like 11.000 lines of code.
Thats a lot of work to just read that code and I cant find any class
named CModel. In any case I like it that I started from scratch, I
want to keep my project small, light, well documented and super easy
to hack. Even if that means less features :)
--
/The essence of object orientation is that objects collaborateto achieve
a goal. /
Trygve Reenskaug mailto: tryg...@ifi.uio.no <mailto:%20tryg...@ifi.uio.no>
Morgedalsvn. 5A http://folk.uio.no/trygver/
N-0378 Oslo http://fullOO.info
Norway Tel: (+47) 22 49 57 27