APL is one of the three longest-living programming languages. Developed in the 1960s by Kenneth E. Iverson, its concise, array-oriented notation means that it is ideal for exploratory programming. At the same time, its highly-tuned interpreter allows it to run at a speed that matches compiled C code.
APL has continuously evolved since its inception. Today, commercial and open-source versions of APL interpreters run across multiple operating systems, and the arrays at the core of APL mean that it is well suited to parallel computing.
APL programs can combine functional, procedural and object-oriented programming and can integrate with a large (and growing) number of third-party products.
The traditional interpreted approach can be supplemented with compilers for increased optimisation, and source code management systems/file systems enable code sharing across multiple users and locations.
APL development has always been iterative and incremental, decades before the birth of the Agile movement.
The core APL language was standardised in 1989; however, like many other programming languages, different vendors of APL interpreters have added their own extensions. Some of the main vendors supplying APL interpreters today include:
Open source offerings include:
You’ll find various resources to help you get started with learning APL:
- The APL tutorial is an online system that will take a complete novice through the terminology, conventions and functionality of APL.
- APL+: APL+Win Tutor is an online system that takes a complete novice through the terminology, conventions and functionality of APL+Win.
- APLX: Learning APL with APLX is an online system that takes a complete novice through the terminology, conventions and functionality of APLX. Also available as a PDF download.
- Dyalog: The on-line tool TryAPL offers an interactive environment that allows users to play with simple APL expressions. It includes a tutorial mode in which various scenarios are explored.
- Dyalog: Mastering Dyalog APL by Bernard Legrand is a complete guide to the use of Dyalog, beginning with a thorough introduction to the APL programming language and progressing to worked examples. It can be downloaded for free or purchased in print.
APL is concise due to its notation, and its syntax is simple and consistent. Comparing traditional mathematical notation with the equivalent APL notation:
The only difference between APL’s glyphs and the basic mathematical operation glyphs that every young child knows (for example, + – × ÷) is familiarity!
Today APL is often employed when time-to-market is important or when systems change frequently and rapidly. Applications include trading systems, genotyping and expression profiling, modelling for insurance purposes, analysis of big data and the co-ordination of multiple individual healthcare systems across an entire country. APL is proving its value in these areas every day.
For some specific examples, see here.