Hi,

Over the last coupe of years Stefan Reichhart and the rest of the GT team 
worked on an implementation of examples. The work is inspired from previous 
work done by Markus Gaelli and Adrian Kuhn.

As one of the goals of GT is to offer a live programming environment, one 
important issue is how to move from the static code to live objects as fast as 
possible. That is why we worked on this library as a solution to provide a link 
between the static code and live objects.

Furthermore, this examples library also enables the definition of assertions on 
the examples, and this provides the possibility of rethinking the way we 
construct tests throughout our system. Tests are great as they help us create 
live objects and then to assert live properties. However, they do not allow us 
to leverage the objects we create, and this can be a tremendous resource for 
understanding systems.

In our vision, examples should be everywhere and they should be explicitly 
linked to the static code they exemplify. That is why the library comes with an 
initial integration in existing tools (such as Nautilus, Spotter, Inspector).

The current solution works well and it is the result of several rewrites. We 
think that the solution is complete in terms of features, but there are still 
several things to improve and iterate on. To this end, I kindly ask you to take 
a look at it while distinguishing between the concrete implementation choice 
(e.g., the current extensive use of pragmas) and the conceptual benefits of the 
approach.

To ease the discussion, we put together a short documentation:

        http://gtoolkit.org/doc/Examples/examples.html

That being said, you can get it with the full GToolkit in Pharo 6.0:

        http://gtoolkit.org/#install
        (easiest is to download the ready made image for now)

For those that are at ESUG, I will try to provide a short overview during the 
Show Us Your Project session from today.

Cheers,
Doru


--
www.tudorgirba.com
www.feenk.com

"Reasonable is what we are accustomed with."


Reply via email to