tinySelf
tinySelf is an experimental programming language inspired by the Self lang, with the emphasis on the word experimental.
I would like something like the glasswork rack you know from the chemistry pictures, but for computation.

The point of the experiment is not that much in the language itself, but all kind of different stuff that can be done with it. tinySelf should be lightweight, compact, collapsible, interchangeable, universal computational apparatus for anything I can possibly hope to make.
Technology
Whole interpreter is written in Python, specifically in dialect of the python know as RPython (`r` as in restricted), which is provided by the makers of the PyPy project to ease the creation of new languages.
For example, it gives you a JIT, garbage collector, ways how to bind numeric ints to your objects and so on. Also, it translates to C.
Differences from Self
- Support for cascading operator
;
.
- Comments using
#
.
- Standard strings using
"
and'
.
- Error handling.
- Primitives are not special messages with special
_syntax
, but messages to objectprimitives
.
- Stdlib is my own, and it is only loosely inspired by Self.
- Focus on hackability and usefulness, instead on research and academia.
- More changes are in process of evaluation and design:
- Different annotations, probably more close to Smalltalk's.
- Arbitrary string messages.
Experiments
The goals of the tinySelf language experiment is to:
- Try representation of the data by using prototype based object oriented programming language, instead of data oriented serialization formats like JSON and XML.
- Prototype based user interface like Morphic and how much it is really useful for representation and working with data and information.
- Try Reflection. In interpreter, language, but also in graphic interface. I think that reflection may one of the key features for reducing cognitive load, but I have to try it to actually see how much.
- Philosophical concept of the "explicitly structured data". If the data are objects and object have reflection and docstrings, they should be more understandable and explorable than binary formats or structures based on dictionaries.
- Implement and test some of Engelbart's ideas about working with infosphere. Object wiki which is partially also a database and API and language.
- Obtain platform to test some of the Alan Kay's and David Ungar's ideas.
- Obtain, test and describe custom-made environment for tight-coupled-loop technology as it was described by J. C. R. Licklider in his Man-Computer Symbiosis paper.
Articles
Here is some of my articles about tinySelf:
📄 The "traits float" bug 2020/1
Update from the development of my own programming language called tinySelf.
📄 tinySelf performance gains 2019/4
Description of how I gained performance in my programming language tinySelf. Rpython profiling and optimizations.
📄 Speedups of the interpreter 2019/1
Description of how I gained performance in my programming language tinySelf. Rpython profiling and optimizations, usage of JIT compiler.
📂 Simple while benchmark 2019.01.06
First benchmark in my programming language tinySelf.
Source code
Licence
MIT opensource licence.