Magik Language

Smallworld is built upon a programming language called Magik. It is a very powerful and fully functional programming language by it self. Developers of the Smallworld GIS have used Magik to develop standalone applications. An example is OGRES from FCSI that is a fully functional GIS using Magik but without the underlying Database Technology.

The first thing that any programmer, beginner or experienced, is to set up easy to use globals. There is a file called setvars.magik located in the sorceforge CVS repository:


This page contains information about memory usage and configuration


Is your application or plugin not running as fast as you expected, then check this page out for some help.

Compiler Dialog

A dialog that pops up if there is a compiler error.

Object-Oriented Techniques

Magik is an object-oriented language. Check this page out for tips and techniques.

Language Tips and Tricks

Loops, ifs, assignments. Know something cool and useful, please lets us know

Advanced Language Tips and Tricks

For advanced level programmers: Know something cool and useful, please lets us know

Error Handling

Magik has a fully functional error handling, however some concepts may not as straight forward as one might hope. Check this page for tips on how error handling works.

Sets & Collections

Information about sets, collections, ropes, and vectors.

GUI (Basic)

For now this is separated from SWAF specific GUIs. This page is for basic GUI components for example buttons, rowcol, list_viewa, etc.

GUI - Plugins, Components, Frameworks (incl SWAF)

Magik has a very robust GUI interface. See this page for interesting things you can do with the GUI items to make the user's experience much more productive.


SWIFT is a new and highly interactive GUI. It has been release in 4.3 for trial. It has many cool features as described in the documentation.


For information about configuring Smallworld for localization..

GUI (pre 4.x)

This page is for older (pre 4.X). Information about the classic or the older professional applications should go here.


Magik can interface with other programming languages. This page will help you understand how to use the ACP and get better performance out of your ACP.

Debugging Tips

This page has several helpful debugging tips to help you figure out those pesky problems.

Debugging Tools

Smallworld has had several version of debugging tools available. There is also a newer one built upon Eclipse.

Unit Testing

Unit Testing in Smallworld can be done. This page gives you information about it.

Product & Module Structure Information

This page discusses the product and module structure for magik. It also has information on the patch system.


This page list some oddities that are not release specific that you may run across.

Coding Metrics

How much time does it cost to implement functionally in Smallworld…

General Programming Techniques

Here you can see some general examples of solving simple algorithmic problems with the Magik programming language.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License