As this is my third attempt to explain what I have done with my professional life, the following quotation, which I have used before, from one of my favoufite fictional characters, takes on an added sigafificance: APL In the New Millennium --b3 Kenneth E. Iverson Toronto, Ontario ZNCZIBM's APL~36o nEe,AntE AVXUAnLEIN 1966, many dialects have been developed, and competition has led to emphasis on their differences, an emphasis reflected in their distinctive names: APL\1130, APL\360, APLSV, APL2, SHARP APL, Nial, Dyalog APL, A, APL2000,J, K, and others. Although natural to healthy competition, the emphasis on differences has discouraged the sharing of ideas, and still tends to blind programmers to the ease of moving between dialects, an ease not shared by programmers unschooled in the core ideas of APL. As emphasized in [1], these core ideas were: ¢ The adoption from Tensor Analysis of a systematic treatment of arrays, in which every entity is an array, and different ranks lead to scalars, vectors (or lists), matrices (or tables), and higher-dimensional arrays (or reports). ¢ Operators (in the sense introduced by Heaviside [2]), which apply to functions to produce related functions. In this paper I will review developments in the
/lp/association-for-computing-machinery/apl-in-the-new-millennium-Us45p0Hj6T