New Self Mandarin Improves Versioning
New Self Mandarin Improves Versioning
Written by Kay Ewbank   
Tuesday, 06 June 2017

There's a new version of the Self programming language with new versioning systems for its key subsystems.

Self is a programming language that was originally funded by Sun, at the same time as it was also funding Java and TCL, back in the mid 1990s.  Sun then decided to concentrate on Java, and since then Self has been developed mainly by enthusiasts. Self consists of a user interface and programming environment, so you can create and modify objects entirely within the IDE, then save the objects into files for distribution purposes.

Self bases its handling of objects from the approach taken in Smalltalk, but using prototypes rather than classes. In Self you create objects directly by defining a collection of slots - methods that return values. There is no class in Self and no inheritance, but objects can delegate a method to a parent object.

The other big difference between Self and other languages is that  programs are constructed using a persistent approach. 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, but is now making a small recovery in the form of the many REPL user interfaces to languages such as Python.

 

mandarin

 

The new version of Self (called Mandarin after the duck - the previous version was Mallard), has a number of new features. The new versioning system has been applied to the release as a whole, and to the key subsystems, namely the vm, core, morphic and outliners.

There's a new about object that is accessible from the main menu, and provides system info. Still on the system side, a new preferences object can be used to access system preferences. The outliners have a new theming system, and the look has been improved.

In more practical terms, the object categories have been extensively reorganized in globals to make global objects more easily discoverable and understandable. There's a new option on the worldbuilder.self script to allow for fully automated building of Self worlds by setting subsystem options on command line.

Three new string helper methods have been added:

  • splitOn:
  • joinUsing:
  • slice:

Elsewhere, the transporter is now aware of code being in multiple independent trees. The previous version treated all code as being in a single Self tree. The support for multiple trees means you can create separate projects, and keep them in separate version control repositories.

Finally, a system-wide logger has been included to standardise logging practices within Self, and the Webserver has been moved to a separate repository on Github.

 

selficon

More Information

Self Blog

Self Site

Related Articles

Go Language Of The Year With Dart Catching Up

Dart SDK Improves JavaScript Access

Self 4.5 Released 

 

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

 

Banner


New Robotics Badges for Girl Scouts
05/08/2017

What you do as a Girl Scout stays with you for life. So it's great to see that Think Like a Programmer Awards are being introduced for Girl Scout Daisies, Brownies and Juniors, along with badges for r [ ... ]



Top 10 From Around the Web: More Web Design Resources
18/08/2017

We start this roundup of external blog posts with a guide to getting started with Bootstrap, and two more posts cover responsive web design. Another key topic is deciding what to charge for the web de [ ... ]


More News

 

 
 

 

blog comments powered by Disqus

Last Updated ( Tuesday, 06 June 2017 )
 
 

   
RSS feed of news items only
I Programmer News
Copyright © 2017 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.