The Wind from Denmark
Insight Systems ApS marked their acquisition this year of Dyalog APL by hosting the Dyalog APL User Meeting in Elsinore. The autumn wind from Scandinavia blows cold and clear; this issue of Vector is dominated by reports and papers from Hamlet’s home town.
Perhaps the biggest news for Dyalog users is the arrival of native support for classes and instances, the foundation stones of object-oriented programming. Readers new to the APLs, possibly unaware there are useful alternatives to OO programming, may find it striking to see so fundamental an OO construct added to APL at such a late date. (They should take this as an indication of just how much can be done without it.)
Object-oriented programming (OOP) and functional programming (FP) are not rivals but complements to each other. Nothing beats OOP for managing complex collections of states, most especially GUIs; nothing is as succinct as FP for describing data transforms. Most complex software can be viewed as an OOP layer encapsulating an FP layer. Morten Kromberg of Insight Systems begins in this issue a series on “OO for APLers”.
One of the drivers towards object orientation has been the access it provides to processes outside APL. In the Windows world, .NET is a key interface, and Pertti Kalliojärvi writes about using APL behind ASP.NET.
The .NET interface not only provides a way to expose processes written in APL for use elsewhere; it provides Richard Smith the components for his own APL interpreter, Rowan. In this issue, Richard discusses how the use of delegates simplifies construction of the interpreter, and Walter Fil reviews the work of Richard’s father Adrian in exploiting .NET to write an APL to C# translator.
Fresh from a napkin at the conference comes Phil Last’s advice on infix alternatives to control structures. Control structures make for greater clarity than the universally deprecated branch arrows; but can still seem laborious compared to the deftness of an infixed
(age<65) accept ELSE reject application
Deft writing is a theme of my own report on “Pair Programming With The Users”, in which I describe how traditional APL development techniques and careful writing have enabled us at Britain’s largest life and pension office to outperform even Extreme Programmers. My talk, recapitulated here, covers some themes I shall expand on in coming issues.
The APLs have always been tools of choice for analysing large sets data. Alan Sykes discusses his use of APL for assessing the quality of university examinations, and the colourful Peter-Michael Hager shares a simple and useful method for spotting exceptional results in large arrays. (We can’t afford to reproduce in print the subtle use of pastels in his displays, but you can see them online in their full glory.)