Skip to content

Editorial: J is for January

Vector 8:3, page 3

APL in perspective language design

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

J is Ken Iverson's new dialect of APL, and is the theme for the January issue of Vector. The issue contains a wide range of material: a tutorial by Donald McIntyre, a real problem solved in J by Paul Chapman, the future of J and hints on programming style by Roger Hui and Ken Iverson, comments from people who have already got J, and comparative timings using the Smith bench marks. All this should help you decide if you want to invest your time in exploring the world of J.

The very first steps learning J are easy, but the going rapidly gets more and more difficult. Really learning the language is extremely hard work, but I think worth the effort. I found it quite nostalgic studying J as I kept being reminded of when I learnt APL from a quick reference card. It was fun discovering the powerful features available and then speculating on how they might be used in some arcane and quite unexpected way.

The definition of the language is the Dictionary of J. It is very precise and terse, taking a mere 18 pages to describe every aspect of a large language containing some 180 features. In places it is quite difficult to understand. One feels that each word has to be studied with the greatest care to extract every possible nuance and shade of meaning. However, after a while one begins to appreciate the way in which it is laid out and to enjoy the concise descriptions.

The learning technique suggested in Programming in J is to discover for oneself how things work by experimentation at a machine. In general this is good advice, and given plenty of time it would be possible to discover exactly how every aspect of the language works by this means. Unfortunately, time is limited and experimentation can be very time consuming. It would be marvellous to have an extended description, with examples, of each feature of J.

I recognised many features of J from papers which have been published in the APL conference proceedings. In some cases ideas have changed since the original papers, but they were most illuminating as they go into detail on how and why the feature is designed, and give extended examples of their utility. It would seem to be reasonably straightforward for someone to collect all the relevant papers, bring them into line with the current version of J, and to publish them as an amplification of the Dictionary.

The ISI catalogue states that J is particularly intended for use in education and research. It is possible that J could become used general programming when it has settled down and can be linked with other facilities. LinkJ enables C programs to call J and vice versa, so J could be a component of major systems. I could well see myself starting to use J seriously when I can see how to link it to a user interface such as Windows 3 and to a reporting system. Until this has been demonstrated, though, J is for me strictly for play.

J is still in the process of rapid development. New versions seem to come out every few months, though Ken Iverson says that the future pace of development will be slower. The articles in Vector cover versions 2.9 to 3.5x4, and by the time you receive Vector version 4 should be available. It is good to know that users are being listened to, and that when difficulties are experienced the language can be changed quickly, but one wonders why such frequent changes are necessary. Thank goodness that there is no need to worry about upward compatibility. I have seen so many cases in the 4GL world where features have been bolted on, resulting in a mass of strange and inconsistent syntax.

Because J is shareware the cost of a trial copy is easily affordable, and I am sure that many people will want a copy to see what it is like. Vector will continue to cover J and its developments. At some time in the future this could become an important language.

Forthcoming Change of Administrator

Alison has very nearly had enough! Look out for changes in advertisement booking, Product Guide Updates, and the address for membership renewals. Full details will be in Vector 8.4, but current intentions are:

  • all membership administration will be transferred to Rowena Small, at [address omitted] ([telephone number omitted])
  • all Vector related activity will come to Gill Smith, at APL-385, Brook House, Gilling East, York (Tel: 04393-385)

Watch this space (carefully!)