In 1983 we went on vacation to the Yucatán Peninsula. We initially
reserved rooms (and paid for them) at a hotel in Cancún. Mexico
devalued the peso and suddenly Cancún became everyone’s
destination. The hotel defaulted on our reservation.
Apple Tours found us rooms in Akumál, a village on the gulf
coast. Most of our party spent the time in the bar complaining about
the lack of night life; we were 30 miles from a phone and 65 miles
from an English-language newspaper. (Newspapers were very important in
those days.) I spent it on the beach writing a program editor in
APL. [Kate spent it in the shade of a palm tree with her feet in the
Gulf of Mexico, reading trashy novels and sipping beer at 75 cents a
bottle, fetched by cute teenage waiters.]
APL (“A Programming Language”) was proposed during the 1950s and
implemented for the IBM 360 in the 1960s. IBM and many other vendors
will sell you a copy today for a mainframe, a PC, and all sizes in
between. The Free Software Foundation has released its own version,
and I have compiled it on my laptop.
This year I spent my vacation on the porch in Seaside Park, New
Jersey, again writing in APL. Many things have changed in the
intervening thirty years, but not much in APL. It is still extremely
finicky, damnably difficult to write. However, it’s easy to predict
how a piece of code will behave. Most accountants, including this one,
Why do I use this kludgy program to add and subtract? Because APL
excels at one-to-many sorting, which is part of database modeling.
One item (say, a checkbook) relates to many items (the checks). How to
keep track? Accountants have been dealing with this for centuries.
It’s the real reason for double-entry bookkeeping—which, by the way,
is not the same as keeping two sets of books.
Today we rely on something like Sage or QuickBooks, both of which use
an SQL database to turn out reports that look like the old registers
Over the years I’ve produced any number of financial projections,
usually in Excel. Most times I couldn’t get the damn thing to
balance. That is, assets = liabilities + equity—or they should. It’s a
one-to-many problem, and Excel does not excel at linking the many to
I started doing this work in APL back when neither desktop computers
nor electronic spreadsheets were available. APL is a giant
calculator. It will add 4 to 5 or two arrays with four rows and five
columns. It will store your calculations in as many variables as you
can name. Thus it can project a cash disbursement array, add it to
your projected cash receipts, and report the change in cash. Each
item is a different-named variable in the APL workspace.
I type )SAVE and all of these variables are written to disk, ready to
So August 30 I started on what APL does not do. It does not produce
pretty reports; it will not send reports to the printer. [Now, that
sucks. Not being able to print, I mean.—Kate.] It must be taught to
take data from Sage or QuickBooks. While I made progress, if you call
tomorrow to ask me to prepare a budget, I’ll still deliver it in