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. Especially 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 almost complete and it offers all the functionality of the official 1.1.6 version, including the standard and plastic scheme.
Since it was born, Amiga lacked for years of a complete integrated development environment (IDE). This fact changed in 2005–2006 when it was created Cubic IDE, 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: JForth, FORTRAN, Amiga Logo, Oberon, Perl, Ruby, Amiga E, FALSE, Python, REBOL, ARexx, GNU C++, Modula-2, Benchmark Modula 2, Eiffel, Java (JAmiga).
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 kind of 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 in regard to using subroutines (gosub) and sound
- the editor being written for NTSC and so not using the full screen on PAL screens (a TV standard very common 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 was also able to 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 jointly written 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 recent times Amiga lacked of real IDE programs (apart from the legacy IDE Storm C). All the development were made with advanced text editors such as Emacs, MicroEmacs, Cygnus Editor and Gold Ed (Gold Editor), which were capable to highlight syntax of various kind of code programming languages. Gold Ed then evolved in a complete IDE environment commercial program called Cubic IDE.
Actually most used IDE programs are the commercial program Cubic IDE and the commercial program CodeBench that sometimes is released with limited functions as free-licence version.
Application Building Tools
Some Amiga programs were not languages, but complete application tools. Among these we remember: CanDO, Amiga Vision, Shoot'Em-Up Construction Kit also known as SEUCK, 3D Construction Kit, 3D Construction Kit II and in some degree The Director (BASIC-like language aimed at multimedia, presentations and animations) and AMOS itself could be considered application building tools, more than simple programming languages (even if SEUCK was aimed at games, 3D Construction series, could handle also some sort of 3D VRML). Other tools that can build independent applications or "self loading projects" were Scala Multimedia and actually Hollywood Designer.
CanDO was one of the first application building tools, capable of creating programs for the Amiga that were totally independent (compiled or full binary). It is based on a visual interface, after the style of 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 program mouse driven with an icon approach, and its internal programming is really like an interactive flow chart of functions, just like VISUAL programming tools from Microsoft. Eddie Churchill, one of the primary developers of CanDO, went on to help develop Borland's object-oriented Pascal IDE, Delphi.
Like CanDO on Amiga, there is Amiga Vision. It is a VISUAL "application building" tool made by Commodore itself in the times of 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 all graphically, on a page in which the user could arrange visually all the icons each one 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.
References
- Amiga Assember Insider Guide, Author: Paul Overaa, ISBN 1-873308-27-2
- Mastering Amiga Assembler, Author: Paul Overaa, ISBN 1-873308-11-6
- Amiga Machine Language (1987), subtitle: A practical guide to learning 68000 assembler language on the Amiga, Author: Stefan Dittrich, Publisher: Abacus Software Inc., ISBN 1-55755-025-5
- The Amiga Hardware Reference Manual (3rd Ed.), published by Addison Wesley, (1991), ISBN 0-201-56776-8
- The Amiga ROM Kernel Reference Manual: Includes and Autodocs, published by Addison Wesley (1991), ISBN 0-201-56773-3
- The Amiga ROM Kernel Reference Manual: Libraries, published by Addison Wesley, (1991), ISBN 0-201-56774-1
- The Amiga ROM Kernel Reference Manual: Devices (3rd ed.), published by Addison Wesley (1991), ISBN 0-201-56775-X
External links
- AmiWorld list of Amiga software Italian site reporting a list of all known productivity programs for Amiga.
- The classicamiga Software Directory An Amiga directory project aiming to catalogue all known Amiga software.
- Benchmark Modula-2 manual