[squeak-dev] Re: Why FFI is not included with latest squeak ?

Jecel Assumpcao Jr. jecel at merlintec.com
Sun Aug 19 08:03:05 UTC 2012


Bert Freudenberg wrote on Sun, 19 Aug 2012 01:11:11 +0300
> No, Etoys is not the main reason for the Squeak/Pharo split.

Indeed, that is a common misconception. Cuis doesn't include Etoys
either, but nobody would think that this was the motivation for its
creation, right?

> There are quite a few Pharoers who like Etoys, but pretty much nobody likes
> its implementation, with the original design barely visible under all the hacks
> accumulated over the years.

This is particularly true of the people who created Etoys in the first
place, who have ever since been working on its replacement (see the
project list at VPRI). Unfortunately the world of education moves very
slowly and what was meant as a quick and short lived experiment is still
getting traction with new students and teachers over a decade later.

And while I would love a much better Etoys, I miss it very much when
using the systems that have dumped it. If you use Squeak as a
programming language then it doesn't matter, but when Squeak is a system
you use then not having Etoys feels very much like using Unix with C but
not with any shell.

> One difference between Pharo and Squeak is that we Squeakers want to make
> Etoys unloadable but keep it working, whereas in Pharo it was just removed.
> One of Pharo's main goals is getting a clean base system quickly, even if that
> means breaking lots of things that used too work. In Squeak we value backwards
> compatibility higher, even if that means cleaning the system takes longer.  

Just a little historical perspective for those who were not around in
the old days - the Etoys used in schools forked from Squeak in the 2.x
era but was merged back in 3.6, though it soon forked again. Since an
implementation of Etoys was still included in Squeak, this fork was not
always obvious. It would be nice to merge the two systems again and
having an optional Etoys package that can be cleanly loaded into the
official Squeak is a good way of doing that.

And here we come back to the subject of this thread - why is FFI not
included in the official Squeak VM? It is possible to use the security
plugin to make sure no expression you can type into Squeak can mess up
your system. It is still trivial to crash Squeak itself (we are not
talking about the eSqueak kind of security) but you will only be able to
write files to one directory on the whole disk. If FFI is available,
however, then no restrictions can be enforced. That is not good in some
commercial contexts, but it would also make convincing schools to
install Squeak on their computers much harder than it already is.
Unfortunately that battle was lost - VPRI gave up trying to work around
school IT policies and takes advantage, in several of the projects in
the list I mentioned above, of the fact that Javascript is already
there.

Note that using the OSProcess plugin has more or less the same security
issues as FFI. So including them in the official VMs is something that
shouldn't be done lightly.

-- Jecel



More information about the Squeak-dev mailing list