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."