On Mon, Dec 19, 2016 at 3:53 PM, Nicolai Hess <nicolaih...@gmail.com> wrote: > > > 2016-12-19 8:46 GMT+01:00 Tudor Girba <tu...@tudorgirba.com>: >> >> Hi, >> >> I would prefer if this thread does not transform in a terminology debate >> too much. >> > > @Doru, but you asked "What do you think" and I think Bens response about > sampleScript is valid > > @Ben Did you check Dorus blog entry > (http://gtoolkit.org/doc/Examples/examples.html) I think this makes > it more clear why gttExamples are more than just methods producsing > "samples"
I hadn't seen that before. Thanks for the tip. So I cede the point the aim is something more than just a sample. cheers -ben > > >> >> Example is a term that fits both the code and the returning object. >> <gtExample> is applied on a method and it primarily describes that method. >> The term “example” also describes the meta object that is wraps the concrete >> return value with the information from the method (for example, the label of >> the example, the link to the subject, or the dependencies to other >> examples). The example term is also important from the metaphor point of >> view: "we learn from examples”. >> >> Cheers, >> Doru >> >> >> >> > On Dec 19, 2016, at 3:34 AM, Ben Coman <b...@openinworld.com> wrote: >> > >> > On Mon, Dec 19, 2016 at 5:49 AM, Tudor Girba <tu...@tudorgirba.com> >> > wrote: >> >> Hi, >> >> >> >> As you might know, a while ago we created GTExamples, a framework that >> >> supports both example-based live documentation and testing: >> >> http://gtoolkit.org/doc/Examples/examples.html >> >> >> >> GTExamples was part of the GTInspector for a while, but as it evolved, >> >> we pulled it out in a separate project. This separate project is not in >> >> Pharo anymore but it is part of the full GToolkit configuration (Pharo >> >> only >> >> ships the core of GToolkit). The idea of taking GTExamples out was to >> >> allow >> >> the community to have a more elaborate discussion about the role of >> >> examples >> >> in our environment. >> >> >> >> I have invited you to join that conversation, but it did not take off. >> >> I understand that perhaps the topic does not look appealing at this >> >> moment. >> >> >> >> We will certainly continue to evolve GTExamples both on the semantics >> >> level of the dependency constructs and on the integration with tools. Our >> >> goal is to enable a new practice that I would like to call Example-Guilded >> >> Development (or Example-Driven Development), and position Pharo to be the >> >> only platform on which someone can do that. But, that is our goal, and >> >> does >> >> not have to be the same with other people’s goal. >> >> >> >> Right now, GTExamples relies on the <gtExample> pragma to denote a >> >> method that returns an object that exemplifies something. >> > >> > >> > I've previously not done a good job of promoting the use of <sample> >> > for this. I'll try spinning this wheel once more. >> > >> > There are two concepts to consider: >> > * The returned object. >> > * The method code that creates the returned object. >> > >> > The "returned object" is best considered a <sample>. >> > The "method code" is best considered an <example> that produces the >> > sample. >> > >> > http://www.differencebetween.com/difference-between-example-and-vs-sample/ >> > >> > The term "exemplifies/exemplification" associates equally with both... >> > * http://www.thesaurus.com/browse/example >> > * http://www.thesaurus.com/browse/sample >> > but for example... from a draw full of cutlery you don't "take an >> > example spoon", you "take a sample spoon". >> > >> > >> > So it depends on where you want the focus to be. >> > * If the focus is on working with a sample object, then <sample> makes >> > a better pragma for the method creating it. >> > * If the focus is on the code producing the sample, then <example> is >> > a better choice. >> > >> > Maybe you are constrained by existing industry terminology, >> > but "Example-Driven Development" might be equally called >> > "Sample-Driven Development". >> > Without having read into the topic, intuitively the former broadly >> > encompasses copying static code >> > while the latter feels more limited to working with an object. >> > >> > >> > My proposal... >> > * <sample> provides a narrower sense of side-effect-free provision of >> > object to work with. "Samples are often tangible parts and can be >> > observed" >> > * <example> provides a broader sense of showing how things work >> > together, in ways that may or may-not include side effects that you >> > don't actually want to execute - just to refer to. "Examples are used >> > [to] illustrate something. [Its] expected that the example will be >> > imitated and replicated among its audience." >> > * <script> provides a sense of system management, of methods causing >> > significant side effects. You won't want to copy these methods, just >> > make use them. >> > >> > <sampleScript> feels awkward to apply to examples, since by my these >> > are neither samples nor scripts. >> > >> > >> > cheers -ben >> > >> > >> >> Executing this method as an example should have no side-effects (either >> >> because the method itself does not have a side-effect, or because the >> >> example method defines how the cleanup should happen using the mechanism >> >> provided by GTExamples). >> >> >> >> This meaning is different from the meaning of the <example> pragma used >> >> through Pharo. There are currently 55 places that use this pragma inside >> >> Pharo and most of them come from FastTable. As things will progress and >> >> more >> >> libraries might use GTExamples, the situation can become confusing. >> >> >> >> To make things less confusing in the future, I would like to define the >> >> meaning of the <example> to denote a method that returns an object without >> >> having side effects. Would you agree with this? >> >> >> >> If yes, I would suggest the name of the new pragma that would replace >> >> the existing one to include “script” in the name. For example, >> >> <sampleScript>. >> >> >> >> What do you think? >> >> >> >> Cheers, >> >> Doru >> >> >> >> >> >> -- >> >> www.tudorgirba.com >> >> www.feenk.com >> >> >> >> "Reasonable is what we are accustomed with." >> >> -- >> www.tudorgirba.com >> www.feenk.com >> >> “Software has no shape. Actually, it has no one shape. It has many." >> >> >