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.
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
- Error handling.
- Primitives are not special messages with special
_syntax, but messages to object
- 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.
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.
Here is some of my articles about tinySelf:
MIT opensource licence.