FW Editor: There are so many programming languages available at this moment. What determinate you to develop Agena?
Alexander Walz: I was 14 years old when I first dreamed of my own programming language. When I noticed that current interpreters are quite slow at processing large volumes of data phonetically, I made this dream come true, in my late 30s.
The primary goal has been to provide high-speed mathematical and text processing functions, along with memory-efficient data structures such as these to store word lists.
FW Editor: Agena offers various flow control facilities. Can you give us some examples? How can these facilities improve the overall working experience with Agena?
Alexander Walz: I noticed round-off errors in many interpreters with numerical for loops: try to iterate from -4.0 to -3.0 with step size 0.1. Mostly, the iteration will quit at -3.1 instead of -3.0. So I combined for loops with Kahan's summation algorithm: Agena correctly stops at -3.0.
The case/of statement to check conditions makes the code more readable, and combined for/while loops save some typing effort: Agena can iterate and at the same time check a given condition.
FW Editor: Agena was released for Linux, Mac OS X, Windows and Solaris platforms. Is there any difference between Agena for Windows and Agena for Linux (for instance)?
Alexander Walz: Access to the hardware, e.g. the keyboard or loudspeaker, in some few cases is not standardised. Also, the OS/2, DOS, and Haiku releases do not support graphics.
Porting the code to Solaris proved to be a good idea: I found most of all bugs on my Sun Microsystems SPARC workstations, which mercilessly produce segmentation faults when encountering programming mistakes.
FW Editor: Can you tell us a few things about the most important Agena functions?
Alexander Walz: Writing packages and integrating them into the interpreter is very easy.
Agena mathematically calculates both in the real and complex domain by using the same operators and functions without the user to worry on domain issues.
Text search and replace operators are very fast and also support simplified regular expressions.
Also, recursive calls can vastly be accelerated by using remember tables I once jokingly referred to as `WonderTables(tm)` in the development phase.
You can also generate graphs of mathematical functions with only a few keystrokes. The CSV and dBASE import/export facilities allow to exchange data with standard spreadsheet applications.
I personally favour the fractals package. It allows to dynamically invent and plot fractals in seconds, instead of minutes, using Agena's power.
FW Editor: Agena offers support for fast text processing. What does that means? How does it works?
Alexander Walz: As you may know, Agena is based on the ingenious Lua 5.1 sources. In Lua, text processing and many other functions have been implemented by finally switching to its `C level`. Instead, I directly implemented them into the Virtual Machine, resulting in a speed bonus of 40 to 50 percent.
FW Editor: Do you have any future plans for Agena? Do you plan to further improve Agena?
Alexander Walz: I will gradually extend Agena, but also think of slim sizing it moderately. An XML import function is currently in development.
About this interview