Current issue

Vol.26 No.4

Vol.26 No.4


© 1984-2017
British APL Association
All rights reserved.

Archive articles posted online on request: ask the archivist.


Volume 9, No.4

Editorial: What You Know Is What You Love

by Jonathan Barman

The programming language that one learns really well seems to become etched in the mind, and it changes the way of thinking about programming for ever after. APL has unquestionably changed my way of thinking. Having changed one’s way of thinking, however, one can get locked into that mode and become unable to appreciate other ways of thinking. This could one of the main reasons for the difficulty in getting more people to program in APL.

APL programmers seem to be able to move to other languages much more easily than experts in other languages can move to APL. Changing from a scalar language to an array language is undoubtedly difficult. Unless there are clear advantages in programming in APL people are not going to be bothered to make the effort to change.

Over the past year I have had to learn three new languages and have developed substantial systems in each. The learning process is quite frustrating. Problems which are incredibly simple in APL seem to be extraordinarily difficult in the other languages. I am sure that the same remarks would be made by someone who is expert in another language, for example C, on attempting to program in APL. It is usually easier and faster to solve a problem in the language you know well and therefore love.

Converting programmers to APL is getting progressively more difficult. In the 70s and 80s the APL environment was so outstanding that it made an immediate impact on anyone used to the traditional compiled languages. This is no longer true. Most languages nowadays have excellent debugging facilities which match or better those available in APL.

The effort to disseminate APL to students seems very important. Having got someone to use and know APL it should enable them to program better in any programming language. The British APL Association is making the effort with Education Vector, which has a wider circulation than Vector. I-APL and J are freely available. If we don’t manage to promote APL in this way, I fear that APL will gradually die and become one of the many lost and forgotten languages.

I think that the APL community needs to be aware of what is going on in the outside world, and what the competition looks like. In this issue there is an article by Martyn Adams about Visual Basic. Martyn is an expert APL programmer and has moved to Visual Basic because of market pressure, so his views are of interest. What comes across most clearly is the way in which Visual Basic concentrates on allowing people to implement simple Windows systems without having to do any serious programming.

Most APLers love programming, but the majority of people hate it. Visual Basic, in company with 4GL languages, is aimed at the mass market with the superficially attractive premise that programming is not really necessary, but when it is necessary the programs are easy to write and understand. This is, of course, hogwash. Any medium-sized system solving a real problem has to have tens of thousands of lines of the ‘easy’ code, and the sheer volume then makes it difficult to understand.

Visual Basic is becoming quite popular. The environment appears to be better than many APL interpreters. Even if you convince someone that APL is a much better language than Basic, the ability to create quick simple Windows programs is liable to be a significant factor in their decision to favour Visual Basic.

Fortunately, all is not gloom. David Piper reports that Manugistics have produced a usable Windows interface with Version 5 of APL*PLUS II. Dyalog APL has an excellent Windows interface. MicroAPL have had extensive experience for many years with their APL on the Macintosh. With these new tools APL should become one of the top contenders again.

(webpage generated: 21 April 2006, 00:45)

script began 17:29:35
caching off
debug mode off
cache time 3600 sec
indmtime not found in cache
cached index is fresh
recompiling index.xml
index compiled in 0.2621 secs
read index
read issues/index.xml
identified 26 volumes, 101 issues
array (
  'id' => '10000650',
regenerated static HTML
article source is 'HTML'
source file encoding is 'ASCII'
read as 'Windows-1252'
completed in 0.2886 secs