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
"Innovation comes in the least expected form.
That is, if it is expected, it already happened."