[Self-interest] Self implementations (was: Self implementation in Python)

Jecel Assumpcao Jr jecel at merlintec.com
Thu May 19 19:43:46 UTC 2022


Stephen De Gabrielle asked on Wed, 18 May 2022 08:41:55 +0100

> @Self-interest list: Is there a list of Self implementations?

It would be nice to compile such a list and make it available somewhere
on the main language site.

In the last few decades new languages have tended to have a single
implementation. Having an open source version that you can download over
the Internet and which runs on your computer (PC clone) and operating
system (Linux, Windows or MacOS) eliminates most reasons for creating an
alternative implementation. Only if you need it to be faster (like PyPy
or LuaJit) or smaller to run on embedded devices does the effort make
any sense.

Earlier languages had many implementations. Smalltalk-80, for example,
took a long time to become officially available and even then only on
high end workstations. So people had to create their own: Smalltalk/V
(PCs), Little Smalltalk (text-only Unix machines and many
microcomputers), SmalltalkAgents (Macintosh), Smalltalk/X (Unix X11),
Dolphin, Smalltalk MT, Object Studio, VisualAge and probably many others
I have forgotten.

Other people just mixed Smalltalk features with other languages:
Objective-C, ObjectPascal/Delphi, Clascal/ObjectPascal, Java, Ruby and
so on.

In the same way, I would include in a list of Self implementations
languages that borrowed a lot from its features but which are not
actually compatible.

Beyond the official implementation from Stanford and Sun and the ones
already listed in this thread I can remember:

JSelf by Diego Gómez Deck
> https://web.archive.org/web/20080515215555/http://www.consultar.com/JSelf/ (the page is currently missing)
Self for the Java Virtual Machine

tinySelf0 and tinySelf1 by me
http://www.merlintec.com/lsi/tiny.html
a hand crafted parser in C capable of reading all Self 3.0 sources and a
Self-in-Self testing a thread per object concurrency model, respectively

I seem to also remember a mySelf and an rSelf, which are terrible names
to search for.

Many languages that are prototype instead of class based claim to be
inspired by Self, but I am not sure I would agree in the case of
NewtonScript (and Io, which is inspired by it) since they use Lieberman
prototypes while Self is more similar to "Smalltalk With Examplars":

https://www.davethomas.net/papers/exemplar.pdf

This explanation and list doesn't seem to make this separation:

https://en.wikipedia.org/wiki/Prototype-based_programming

It is interesting that this list doesn't include ObjectLogo which
predates Self and is where I first saw the idea of prototype based
programming (it didn't seem that interesting until I saw Self). Kevo is
mentioned in the article itself, but is also not on the list.

-- Jecel


More information about the Self-interest mailing list