Programming


Updated: 04/05/08

To create games, utilities, drivers or applications you need to learn to program and the Amiga (or PC) has loads of programming languages to choice from, the question is which one to use? It really depends on a number of factors: skill of the programmer, the software to be developed, time to be spent on it, speed, stability, and type of software. For example, a device driver would not be written in Basic or Logo but more like C or even assembler for extra speed and stability required.

If you are a beginner, then you need to learn the basics of programming and there are many books, guides, tutorials and courses available. You need to learn commands, syntax, variables, arrays, memory, input and output, files, structured or object orientated programming as so on. At lot of these concepts are shared between many languages, so learning them will allow you to almost develop in any language!

For a list of programming terminology, try these Terms.
For a link for tutorials try here: Programming Tutorials
For a reference on C commands see C Reference.

Programming the Amiga

To program the Amiga, you need to know some knowledge about AmigaOS and its internal workings. You need to know the concept of libraries, devices, resources, intuition, gadtools or reaction user interface, graphics, screens, sprites and the filing system. The Rom Kernel Reference Manuals and the Amiga Developer CD will supply a lot of information on how to access these features in AmigaOS. Some languages such as Amos and Blitz Basic will supply a lot of commands to access them and leave a lot of the complicated stuff out. On the Amiga, to write games, you need to know about the graphics library for Native graphics modes on OCS/ECS/AGA or using P96,CGFX,WarpUp and Warp3D for the graphics cards and 3D hardware.

Tutorials
Amiga C Tutorial
Arexx Tutorial New
GCC and MUI Tutorial

Languages
Beginners: Logo, BASIC (Blitz,Amos,ACE,Amiga), Pascal
Advanced: C/C++, E, COBOL, Forth, Java, Rebol, Arexx
Expert: 680x0/PowerPC Assembler, PHP, Perl, Python

Web Site Links

AmiBlitz2 (Blitz Basic)
Amiga University
Aminet Dev Tools
E Language
JAmiga (Java)
Murks IDE New
REBOL Web Site
Storm C, WarpUp, Warp3D
Unofficial SAS/Compiler Support Page
UtilityBase AmigaOS 4 Dev
VBCC Home Page

Programming for Linux

To program the Linux there are a number of programming languages available which are also available for other platforms. The main language is GNU C/C++, there are well known languages for Apache such as Perl and PHP and other less well known ones as well if you want to try them.

Web Site Links

Free Pascal
GNU Development Environment
Netbeans IDE for Java
Perl Home Page
PHP Home Page
Pure Basic
REBOL Web Site
Sun's Java Language

Programming the PC

To program the PC running DOS/Windows 9x/NT/2000 and so on need to know a about the inner workings of the operating system. So you need to know about shared Dynamic Link Libraries, device drivers (DRV, VXD), BIOS (DOS), Windows API, DirectX API, OpenGL API and so on. The Microsoft Developers Network (MSDN) provides a lot of information on developing programs on Microsoft operating systems and some is usually provided with most Microsoft Programming Languages such as Visual Basic,C and J and so on.

Languages
Beginners: Logo, BASIC (Blitz,Visual), Pascal
Advanced: Visual or Borland C/C++, COBOL, Forth, Java, Visual J,JBuilder
Expert: 80x86 Assembler, PHP, Perl, Python

Links

Blitz Basic
Dark Basic
Borland Web Site
Free Pascal
Sun's Java Language
Javascript Resource
Logo for Learners
Microsoft Visual Basic
Microsoft MSDN
Perl Home Page
PHP Home Page
Programmer's Heaven
Pure Basic
Python Home Page
REBOL Web Site
Turbo Pascal

Programming the Macintosh

There are a number of languages to program the Mac on a similar level to the PC as well as the Web based languages (see above):

Apple Developer WebSite
CodeWarrier
Common Lisp
Future Basic
GCC
MacPerl
MacPHP
Project/Interface Builder
Real Basic
XCode

If you want help with programming such as learning to program or other info, why not
Back Main page.