Blitz can do almost anything a language like C or Pascal can do. Although it can be used as a
simple BASIC like language, there are many things it contains which are
features of more advanced languages, which allow it to be this powerful. Knowledge of
these advanced features is not required to be able to program in Blitz, but
it allows programmers to do things which would not normally be possible in
BASIC. The main features are:
However, Blitz has some problems which you should be aware of if you are deciding on whether you would like to use it
(and although this is a big list, you shouldn't be put off too much - chances are you won't ever encounter some of these
problems. Best to acknowledge the problems now to keep the critics happy though :) ...
- memory access through pointers
- use of newtypes allows you to create more complex variables out of simpler types (such as C structures and unions)
- extendable command set through the use of addon libraries
- macros and constants
- use pre-compiled files to store commonly used newtypes, macros and constants
- ability to use OS commands directly
- inline 68k assembler
- If you use the newly released AmiBlitz2, you can have optimised code, support for all 68k processors (including FPU)
and also use PPC assembly language in your programs.
- Each library is assigned a number and the source is saved with tokens (numerical values to represent library and command).
Since there is only a small number of possibly library numbers, it's quite common to have libraries with clashing
numbers, making it difficult to read source files.
- While the commands provide a simple way to program things for games or the OS, unless you can resort to understanding
and programming the OS directly, you will be stuck with the commands provided. There are enough commands and libraries
to cover almost all normal requirements of programs though.
- Linked to the above point, some 3rd party libraries can be poorly coded, causing crashes or bad memory
accesses, giving your program bugs which might be difficult to solve.
- Does not have any direct support for MMUs
- Some would say that Blitz teaches you bad programming habits. I'd say if you take the care to learn correct programming
standards (as you would if you were taught a language like C, either in a course or from a book) then you will not
get into these habits.