# Amiga programming languages

This article deals with programming languages used in the Amiga line of computers, running the AmigaOS operating system and its derivatives AROS and MorphOS. It is a split of the main article Amiga software. See also related articles Amiga productivity software, Amiga music software, Amiga Internet and communications software and Amiga support and maintenance software for other information regarding software that runs on Amiga.

## History

Many games and software, especially in the early years of the Amiga were written to directly access the hardware instead of using the operating system for graphics and input. Consequently, games could achieve much faster and smoother game-play, but at the cost of compatibility with newer Amiga models.

## Cross-platform libraries and programming facilities

Several cross-platform libraries and facilities are available for Amiga:
* MUI and ReAction are Amiga standard Object Oriented systems for building graphical interfaces.
* SDL libraries are widely used in all modern Amiga systems
* Cairo support is built into AmigaOS 4.1 and MorphOS 3.0
* Anti-Grain Geometry
* CLib2 is a portable ISO C (1994) runtime library for the Amiga.
* Allegro Library has been ported to AmigaOS 4 and MorphOS .
* an Amiga port of wxWidgets is being worked on wxWidgets-AOS.
* Gallium3D is now part of AROS Icaros Desktop Live Distro.
* OpenAL free software cross-platform audio API, designed for efficient rendering of multichannel three-dimensional positional audio, is available for MorphOS and any AmigaOS version 3 and later revisions.
* AROS and MorphOS support FreeType library in various projects, included its version release of Origyn Web Browser.
* FLTK "Fast, Light Toolkit" version for AmigaOS 4.0 is still under development as of 2024 and offers all the functionality of the official 1.1.6 version, including the standard and plastic scheme.
For many years Amiga lacked a complete integrated development environment (IDE). This changed in 2005–2006 when Cubic IDE was created, based on the modular text editor GoldED.

## Brief list of languages available on Amiga

Assemblers: ASM-One Macro Assembler, Devpac Assembler, Metacomco Macro Assembler, SEKA Assembler
Basic dialects: AmigaBASIC from Microsoft, ABasic from Commodore (developed by Metacomco), AC Basic Compiler, GFA BASIC, HiSoft Basic, AMOS BASIC, Blitz BASIC, PureBasic
C-compilers: Aztec C, DICE C, GNU gcc, VBCC, Lattice C, SAS/C, Storm C, HiSoft C++
PASCAL: Amiga Pascal, Kick-Pascal, High Speed Pascal, Free Pascal
Other languages: Forth (JForth and Multi-Forth), FORTRAN, Amiga Logo, Oberon, Perl 5, Ruby, Amiga E, FALSE, PortablE, Python (AmigaPython), REBOL, ARexx, Scheme (SCM, Gambit, UMB Scheme, SIOD), GNU C++, Modula-2, Benchmark Modula 2, Eiffel, Java (JAmiga), Draco, and ML (Caml Light).

### Descriptions of some languages

ABasiC was developed by MetaComCo and was bundled with AmigaOS 1.0 and 1.1.
AmigaOS 1.2 and 1.3 came bundled with AmigaBASIC (and a complete manual), which other than also being a BASIC dialect, was not related to ABasic. AmigaBASIC was the only programming language (and the only tool) made by Microsoft for the Amiga computer. Its best feature was the lack of numbering lines of code, which was the first attempt in 1985/1986 to create a new approach in BASIC programming. Microsoft then added this feature to all its development language tools. As AmigaBASIC was bundled with so many Amigas it was one of the most common used language in the early years.
Because Commodore wanted to save money, an update was never made for AmigaBasic. Due to its vast number of known bugs and limitations it was immediately discarded by professional developers in favour of other programming languages such as GFA BASIC, Aztec C, Lattice C, and then AMOS. These bugs and limitations included:
* crashes on newer processors and AmigaOS versions newer than 1.3 when using subroutines (gosub) and sound
* the editor being written for NTSC and so not using the full screen on PAL screens (the TV standard in Europe)
* commercially released BASIC's provided better IDE's and better (faster) performance
SEKA assembler was a popular tool among game and demo programmers in the early years of the Amiga. Later Devpac and AsmOne became popular assemblers. SEKA, DevPac and AsmOne all were IDE's and included editor, assembler, linker and debugger.
Devpac Assembler by HiSoft was a professional assembler program that became the de facto standard for assembly programming. It could also be used for Cross-platform development for any other Motorola 68k-based device, such as the Atari ST. It was common for programs to be written jointly for the Amiga and Atari using Devpac on the Amiga. However, since the Atari ST was the less capable of the two machines, programs would be tested on and built primarily for the ST.

## IDE (Integrated Development Environment)

Until 2005-6 Amiga lacked real IDE software (apart from the legacy IDE Storm C). Development was done with advanced text editors such as Emacs, MicroEmacs, Cygnus Editor and Gold Ed (Gold Editor), which could highlight syntax of various kind in programming languages. Gold Ed then evolved into a complete IDE environment commercial program called Cubic IDE.
The most widely used IDE programs are the commercial program Cubic IDE and the commercial program CodeBench that is sometimes released with limited functions as free-licence version.

### Application Building Tools

Some Amiga programs were complete application tools. Examples were: CanDO, Amiga Vision, Shoot'Em-Up Construction Kit also known as SEUCK, 3D Construction Kit, 3D Construction Kit II and to some degree The Director (BASIC-like language aimed at multimedia, presentations and animations). AMOS itself could be considered an application building tool and was more than a simple programming language (even if SEUCK was aimed at games. 3D Construction series could also handle some sorts of 3D VRML). Other tools to build independent applications or "self loading projects" were Scala Multimedia and Hollywood Designer.
CanDO was one of the first application building tools capable of creating programs for the Amiga that was totally independent (compiled or full binary). It is based on a visual interface, after the modern "visual programming" approach to programming which became famous with Visual C++ and Visual Basic from Microsoft. Although CanDO has nothing in common with Visual C and Visual Basic, it is a mouse-driven program with an icon approach, and its internal programming is like an interactive flow chart of functions, just like the VISUAL programming tools. Eddie Churchill, one of the primary developers of CanDO, went on to help develop Borland's object-oriented Pascal IDE, Delphi.
Amiga Vision is like CanDO for the Amiga. It is a VISUAL "application building" tool made by Commodore for the launch of Amiga 3000, and it was released for free to all those who bought an Amiga 3000.
The Vision is more than a language aimed at multimedia, all icon driven, and the flow chart of the functions was realized graphically, on a page in which the user could arrange visually icons with each representing a program function. Vision saved files (projects) could not be used as pure binaries. From this point of view, the Amiga Vision "application building" tool was an interpreted language.
The AmigaBasic created by Microsoft, CanDO, and then Amiga Vision inspired Microsoft itself to an approach to Visual programming with their line of Visual programming languages, such as Visual Basic and others.