On 20 August 2017 at 12:50, stephan <step...@stack.nl> wrote: > I'm afraid you might do newbies a disservice by adding yet another way of > loading and saving combinations of packages.
I have been reflecting on this point a bit. I think there are two relevant classes of newbies here. One is people who are learning to be Pharo hackers and joining this community. They need to "get with the program" and learn to do things the same way as everybody else. So they need to learn Smalltalk, Monticello, Metacello, Iceberg, FogBugz, etc. The other is people who are using a Pharo-based application and want to make an extension. For example, imagine a Dr. Geo user who wants to contribute support for a new geometric function that they need for their work. This person needs to take the shortest path to solving their problem: reuse their existing skills (e.g. command-line git) and make use of examples (e.g. copy-paste-tweak some existing code.) I'm concerned about the latter group. I'm building an application that I want users to be able to extend, and I am assuming that most of them are not aspiring Smalltalk hackers (yet.) So I am wondering how to minimize the barriers to entry for people to contribute their first extension. My model is Emacs. Lots of people use Emacs to edit text files. Many of them become power users by copy-paste-tweak from each others' configuration files. Only a few take the next step and learn Lisp e.g. to understand what "lambda" actually means. Everybody manages to participate and share. So, coming back to point, this is why I imagine now is to have a simple "Save all..." item in the World menu that saves all of the relevant-to-this-application packages back into a directory on the local disk (which will be a Git checkout that can be committed, pushed, and Pull Requested.) Then I don't need to force people to learn Metacello, etc, just to become "power users" of the application. Maybe I am still on the wrong track anyway? Maybe others have been down this specific trail before, too?