Thursday, December 15, 2005

The Objective: A Complete Implementation of APL2 in Python

I first heard about APL in the late 90's. I was told by some coworkers about this great programming package written in APL that would only run in a mainframe terminal. I ignored it at first, but then one thing led to another and I got an account on the company mainframe. Then I read "APL is Easy!". Then I read "APL2: At a Glance". Then I was hooked.

I was sad to see how the use of APL is shunned without serious consideration, but I kept using it because, well, it's still useful! There are some operations that are simply easier, quicker, and require less thought in APL than in any other language! I often fire up APL2 when I need to rearrange data from blocks to columns, or extract a column from a text data file. It's also great for multidimensional data. There are other languages (like Python and Matlab) that make it easy to store multidimensional data, but no other language comes close in processing multidimensional data (Matlab is a distant second for anything beyond 2 dimensions).

At work, I use IBM APL2 on Sun Solaris and Linux. At home, I use IBM APL2 Entry Edition for OS/2 and TryAPL2. To buy a modern version of IBM APL2 for personal use will cost me over $1,500.

In my pragmatism, I did start exploring other languages, and I came to appreciate Python. I still prefer programming APL2 or ReXX/NetReXX, but an idea started to gel in my head that a Python implementation of APL2 would give me the best of all worlds.

So, my objective is to create a complete implementation of APL2 in Python.

0 Comments:

Post a Comment

<< Home