[squeak-dev] Re: [ANN] The Squeak Shell

marcel.taeumel Marcel.Taeumel at hpi.de
Mon Jul 11 07:40:17 UTC 2016


<http://forum.world.st/file/n4905883/squeak-shell-2.gif> 

See SqshCommandLine >> #editText to understand extension points (shortcuts)
inthe command line and how to run custom applications (i.e. subclasses of
SqshController).

Best,
Marcel


David T. Lewis wrote
> This is a really nice demonstration of how Projects work in Squeak. It
> is completely different from either Morphic or MVC, and the removal of
> the traditional GUI makes it clear that Projects are not directly tied
> to any one mode of user interaction.
> 
> The shell itself has an interesting conceptual model. We usually think
> of a "shell" or "console window" that navigates around file systems,
> such that where you are in the shell is based on a current working
> directory in a file system. But in SqueakShell we are navigating in
> the object space.
> 
> And of course the text-mode Squeaky the Mouse logo makes for a compelling
> user experience :-)
> 
> I would encourage everyone to try loading this and playing around with
> SqueakShell.
> 
> Dave
> 
> 
> On Fri, Jul 08, 2016 at 07:17:26AM -0700, marcel.taeumel wrote:
>> Hi, there!
>> 
>> I am happy to announce a new kind of project for Squeak: "The Squeak
>> Shell".
>> :-)
>> 
>> You can install it into any trunk image via:
>> 
>> Installer swa
>>    project: 'SqueakShell';
>>    install: 'SqueakShell'.
>> 
>> Then you will find a new kind of project under Projects -> New Project
>> ...
>> 
>> The Squeak Shell is independent from Morphic and MVC. It's architecture
>> is,
>> partially, a mixture of both. :-D I wanted to keep it as simple as
>> possible
>> while avoiding global state as much as possible.
>> 
>> My goal is to add it to trunk to simplify modularization of MVC and
>> Morphic.
>> For example, we have to extract UserInputEvent and Canvas from Morphic
>> into
>> the base system. These would form a splendid addition to other projects
>> because object-oriented event processing and displaying is not something
>> that only Morphic should have.
>> 
>> The Squeak Shell helped me refactor Squeak's project mechanism. It also
>> revealed potential improvements for our Debugger, which I am going to
>> address later this year. One goal is to make Squeak more robust and
>> mitigate
>> the risk of getting locked out of the system.
>> 
>> Here is the interesting part: It can be used to recover from
>> serious/recursive errors in Morphic and MVC. When you open a new Morphic
>> project from within a Squeak Shell project, the shell will appear then.
>> Only
>> recursive errors in the shell will then start our traditional emergency
>> evaluator.
>> 
>> Some figures: 12 classes, 274 methods, 1454 LOC.
>> 
>> You can open the Squeak Shell on top of the Morphic loop ("SqueakShell
>> open") or as custom process inside the Morphic project ("SqueakShell
>> openConcurrent"). You enter a SqueakShell project via: "SqueakShell
>> openAsProject".
>> 
>> The core of the Squeak Shell covers only 6 classes (see
>> "SqueakShell-Core").
>> There are already two applications in this project: (1) a command line
>> and
>> (2) a text editor (see "SqueakShell-Tools").
>> 
>> You can use the Squeak Shell to explore all our tool extension points,
>> which
>> we use for browsing classes, inspecting objects, debugging unhandled
>> errors
>> in processes, etc. For this, take a look at SqshProject, SqshToolSet, and
>> SqshUIManager.
>> 
>> I am sure that there can be an even smaller kind of project. However, I
>> am
>> not so sure about the usefulness of such a project. :-)
>> 
>> &lt;http://forum.world.st/file/n4905613/shell.png&gt; 
>> 
>> Have fun!
>> Marcel
>> 
>> 
>> 
>> --
>> View this message in context:
>> http://forum.world.st/ANN-The-Squeak-Shell-tp4905613.html
>> Sent from the Squeak - Dev mailing list archive at Nabble.com.





--
View this message in context: http://forum.world.st/ANN-The-Squeak-Shell-tp4905613p4905883.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.


More information about the Squeak-dev mailing list