November 30, 2016

Why Etoys and Not Scratch?

Update: Lately I have been using GP Blocks, a general purpose block programming language developed by some of the programmers behind Squeak, Etoys, Scratch and Snap. It hasn't changed my opinion of Etoys but it's a power house environment.

Well I really like Scratch. Scratch and Etoys were both originally developed in Smalltalk by some of the finest minds in computing and education. They have shared influences and history and have influenced each other. Scratch developers aimed to provide an accessible, intuitive interface to basic programming operations and succeeded spectacularly. So why then am I so besotted with Etoys?

I am not a computer professional of any kind but I like mucking around with things and I don't much care if it's really basic or way over my head. I find using visual programming systems very tedious and the Etoys tile scripting system is the least tedious that I've tried yet. I find workspace management very efficient but that of course is my personal opinion. I particularly like the expression builder.

While Scratch has a focus on programming, Etoys supports applying general knowledge. To be fair, the wealth of Scratch related resources certainly supports using programming knowledge to apply general knowledge. Scripting is a major tool in Etoys but a user can experiment with the object catalogue for hours without even constructing a script. Create a diagram, a graph, a  presentation or a tutorial, fiddle with geometry or change object properties and run commands to see what happens. Scripting just adds functionality. Scratch is fun to use but Etoys is fun to play with. Just tinker if you like, no defined purpose needed.

Beyond that, I like the fact that Etoys is a full Squeak image. That means you can turn tile scripting editors into text editors and type Smalltalk code or use Squeak tools. Etoys methods have some of their own syntax but it's not hard to read and you can work around some of their limits with Smalltalk code. The Etoys app itself  has different interface conventions than a regular Squeak image but most of Squeak's tools and menus are accessible through keyboard shortcuts. You can enter code almost anywhere text is accepted. I often use a text object for a quick and dirty calculator. Etoys can be extended by creating new Squeak Smalltalk classes. There was a time when I thought that this was how software was going to work. You would get a nice environment with some common default capability and the user could just add features as needed. We have gotten that to some degree with application plugins and addons but not at all in the way I envisioned. Now the Internet is the computer and in some ways I feel like it's the early seventies again and not in an entirely good way.

For those who would prefer to move on to textual coding in a different programming language, I have been struck by similarities between Etoys scripting and working with Html and Javascript. I ported a project to see how difficult that would be and it wasn't at all. Etoys handles concurrently running scripts with less fuss.

Etoys projects do require Etoys to run. The web browser plugins aren't compatible with newer browsers at the moment. There is a Javascript Squeak VM developed by Bert Freudenberg. You can run an earlier version of Scratch or an Etoys image there.

To sum it all up, I'm not really advocating Etoys over Scratch, Snap or any other program. Everyone has their own objectives and preferences. Etoys has an impressive feature set and I do recommend giving it a try. I just wanted to provide some pointers to getting the most out of it.



Last Updated  .