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: http://magikcmpnts.cvs.sourceforge.net/viewvc/magikcmpnts/dev_utils/basic_utils/setvars.magik?view=log
Memory
This page contains information about memory usage and configuration
Performance
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.
GUI - SWIFT
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.
Localization/Globalization
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.
ACP
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.
Oddities
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.