Skip to content

Next Quarter

Vector 23:4.1, page 57

implementations APL in perspective

Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 57

What will the next 25 years bring us? Will Dyalog finally emerge as a beautiful Swan, to be adored and admired by the rest of the world?

We believe that the most important lesson to be learned from the amazing story of the first 25 years is; if you have a good idea and you stick to it (even when your friends tell you that you are crazy), you may be on the path to creating something wonderful.

At the core of Dyalog is Ken Iverson’s brilliant idea of a consistent notation for teaching mathematics and describing complex systems. (He used it to specify how early IBM computers worked). Unlike most programming languages, Iverson’s notation was designed for human beings to communicate complex ideas to each other. With the arrival of APL interpreters implemented on computers, APL became an ideal language for human beings to communicate complex ideas to a computer, telling the computer what to do and leaving it to the computer to figure out how to do it.

APL is such a powerful concept that it is one of the longest-lived ideas in the computer industry; it has been around for more than 40 years now.

Pretty much everything else has changed. The computers are smaller and much more powerful. Most software is no longer custom-built, as it was to begin with. Applications are built on top of databases using toolkits with different capabilities, and vast repositories of code snippets and components are available to the programmer. The programmer – because most other languages and development tools still require programmers to translate ideas other people have had.

Herein lies one of the biggest challenges in most software-development projects – the communication of an idea born within a specific context, business or other, to a programmer who generally inhabits a completely different context.

Many methodologies have been developed to deal with communication issues in large software projects, but many projects still fail because in the end – at the moment of truth – the application does not do what it was intended to do. The programmer may be able to prove that it does adhere to some interpretation of a specification document that was signed (in blood) by the users, but due to a lack of contextual knowledge from the domain where the ideas were born, the interpretation is incomplete – or simply wrong.

This is where APL has its greatest strength! It is a language suitable for communication between human beings and for direct communication of ideas from a human to the computer. With APL, the person with the original idea can be the programmer – or at least closely involved in the development of his or her ideas. The expressed specification is executable and the result immediately verifiable. This way of working is not necessarily suitable for all types of projects, but despite half a century of software engineering, the communication of really complex ideas to computers is still in its infancy. If anything, APL is still ahead of its time.

The challenge for an APL implementer is to provide an environment for the language which allows both problem-oriented specialists and more technically-oriented assistants to access the environment and to deploy applications built with APL in the same manner as ‘real programmers’ do with more conventional tools. It is a constant struggle to integrate APL on new computing platforms in a way which does not require a degree in computer science to wield – but at the same time does not feel unnecessarily alien to someone who is a specialist in programming. We must fight a never-ending battle to judge the relevance of emerging technologies and evaluate where the users are heading years from now, realising that our ability to predict the future is not likely to be any better than it was in the first 25 years.

This is the battle we intend to keep fighting – and to answer the question posed at the beginning: will Dyalog finally emerge as a Swan? We think this is unlikely – it will probably continue to be a Duck.