Self 4.5 Mallard Released
Written by Ian Elliot   
Friday, 24 January 2014

If you haven't heard of Self you are missing out on one of the most influential of languages. So far never a star in its own right, this simple approach to objects gave rise to JavaScript and an improved Java JVM.

 

selficon

 

Self isn't a language that is in the mainstream, but it is worth knowing about and exploring, at least a little, because it provides a view of another way of doing things. It is also worth noting Self's motto - the power of simplicity.

The language derives from the Smalltalk approach to objects, but using prototypes rather than classes. If you know JavaScript you will already know what prototypes are all about.

In Self you create objects directly by defining a collection of slots - methods that return values - again similar to a JavaScript literal object. There is no class in Self and no inheritance, but objects can delegate a method to a parent object and this is the essence of the prototype approach. 

The other big difference between Self and other languages is that it makes use of a persistent approach to building a program. That is, a program isn't just its source code but its entire memory environment, including any objects that have been created at an earlier time. This is an approach to programming that had almost died out bu is now making a small recovery in the form of the many REPL user interfaces to languages such as Python. 

As the language is also dynamic it needs some clever methods to make it work fast and this is why Just-In-Time compilation was pioneered in the language. Many of these ideas ended up in Java's HotSpot VM and influenced other JIT compilers. 

 

mallard

 

The new version, 4.5.0, codenamed Mallard, has a new build system and a revamped "standard world". The standard world is Self's IDE and initial environment all written in Self. The documentation has also been updated.  The VM can now be built on GCC and CLang for both OSX and Linux. 

You can obtain the source code from the GitHub repository and there are binaries for both OSX and Linux. The code is issued under a BSD-like licence.

 

Email Editor or use the comments if you think a "Getting Started With Self" or "A Programmers Guide To Self" is a good idea.

Please retweet, G+ or Like - Self deserves to be better known.

 

selficon

More Information

Self Website

Self Blog

Related Articles

Dart 1.1 Released

Rust Reaches 0.9

Wolfram Language The Key To The Future?

Ceylon 1.0 and Ceylon IDE 1.0 Released in Beta

IPython 1.0 Released

 

To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, FacebookGoogle+ or Linkedin,  or sign up for our weekly newsletter.

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

 

Banner


Fermyon's Spin WebAssembly Version 3.0 Released
26/11/2024

The open source developer tool for building, distributing, and running serverless WebAssembly applications reaches version 3.0. What's new?



Ursina - A Game Engine Powered by Python
08/11/2024

Ursina is a new open source game engine in which you can code any type of game in Python, be it 2-D, 3-D, an application, a visualization, you name it.


More News

Last Updated ( Friday, 24 January 2014 )