General Correspondence
Vector 3:2, page 7
Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 7
The VECTOR working group welcomes correspondence on any topic affecting the APL community. All such letters should be addressed to the Editor and should indicate whether they are intended for the general or technical section. Letters containing APL code will normally appear in the Technical section of VECTOR, and authors are asked to observe the requirements on the inclusion of APL code stated on the inside cover. The Editor reserves the right to edit any letter unless the writer states that the letter is to be published in full or not at all.
APL popularity¶
Sir,
VECTOR frequently carries comments bewailing the lack of popularity of APL, and blaming the character set. Has anyone considered the equally plausible reason, the high cost of entry to APL for the home computer user?
MicroAPL alone appear to be taking effective action over this problem, but the QL/APL (at very reasonable cost) has too many hardware drawbacks – the atrocious keyboard, absence of roll-over, non-standard mass storage, and now the sell-out to Amstrad. The next entry point, the Atari, jumps to some £700 and hardware reliability appears to be suspect.
What is required, I believe, is inexpensive software on disc (perhaps bundled with BASIC on Amstrad and BBC machines in place of LOGO ?) for the 8-bit machines which far outnumber the 16-bit machines at the present time, giving the opportunity of much easier access to APL, and hopefully increasing its popularity.
There was such a subset of APL for the TRS80 Model 1, Level 11, called APL80, written by Phelps Gates and published in the USA by RAM software. It was advertised in the UK for £30 about 1980/81. If anyone knows whether this is still available, or where a copy may be obtained, it will be very much appreciated.
Yours faithfully,
C E Williams,
[address omitted]
(Editor: As a parent, I have long felt that the combination of APL and LOGO would be a very good base to encourage children to appreciate the concepts behind computers, and would second your call for an inexpensive interpreter. I am sure we all applaud the plans for a public domain interpreter announced at APL86 – see elsewhere in the issue of VECTOR for details – and wish the brave volunteers every success in their venture.)
Porta-APL benchmark¶
Sir,
In reviewing the APL68000 for the Macintosh, I think I may have found an error in the Porta-APL review (VECTOR, Vol 3, No 1). One of the benchmarks in the first set calculated should involve finding the tenth root of an integer vector. In fact your write calculated the square root, which is considerably easier by a factor of about three!
Yours sincerely,
M S Bassett,
Metapraxis Ltd.,
Hanover House,
Coombe Road,
Kingston.
APL Blossom Time, and how to send money to Zeke Hoskin¶
Sir,
The original “APL Blossom Time” was written by Mike Montalbano, under the pseudonym of J C L Guest. He brought it to the APL81 conference in San Francisco, and the APL Blossom Choir formed quite spontaneously to sing it at the banquet. (I was not in the damned choir, having come to the damned conference without my damned mandolin!) The lyrics were subsequently published in APL Quote Quad, probably early in 1982. The tune is lifted from a country song named “The Battle of New Orleans”, lyrics by Jimmy Driftwood, popular in around 1961. Driftwood in turn stole it from a fiddle tune named the Nth of January, N being somewhere between 11 and 14. The fiddle tune is probably originally Irish, as is fitting for a song about shooting the bloody British. (In the early-60s, reaction to the song forced somebody to write a pro-British war song called “Sink the Bismarck”, but this is a bit far afield.) I can send you the tune if you really want it.
At APL85 in Seattle, I asked the organisers who was running the APL Blossom Choir and they said, “You are.” Overwhelmed by the honour, I sat down at somebody’s Macintosh to make a set of overhead slides and added a verse and chorus of my own (to go before the original last verse and chorus).
Bob Smith and Bob Bernecky agreed to disagree.
They knew they had to build a nest but couldn’t choose a tree. They took a thousand strands of code and wove them round and round,
But one was at a NARS-ty height and one was on the ground.
They both got arrays and hung them on the networks,
And neither had a notion what the other one would do,
And one was composed and one was pervasive,
And meanwhile Jim Brown was writing APL2.
That is the only verse and chorus sung at APL85 that was not part of the Montalbano epic. I got Jim Brown’s and Bob Bernecky’s permission to publish it in Quote Quad, but was unable to get hold of Bob Smith or Mike Montalbano.
There are two riders: The APL85 version was a thousand “lines” of code, not “strands”. Also Bob Bernecky points out that “neither had a notion what the other one would do” is (of course) inaccurate. The dictates of meter preclude the more correct version:
“The APL Standards committee wished that they (Bob and Bob) wouldn’t do anything until they (the committee) decided what they (Bob and Bob) should do.”
Thank you for the 10 pounds. It was more than twenty Canadian dollars before the bank charged a dollar and a half for converting it. The same thing happens when I try to write a pounds money order to renew my membership in the BAA. Therefore should I happen to win and/or earn anything from VECTOR, please apply the pounds directly to my membership. I’d suggest including that as an option in future contests.
Have a nice APL86 . . . iota rho to Manchester but the C is too wide.
Yours more or less sincerely,
Zeke Hoskin,
Control Z Software,
[address omitted]
Vancouver, B.C.,
Canada.
(Editor: Your letter probably passed VECTOR Vol 2, No 4, mid-Atlantic, so I expect that know by now that we can accept subscriptions in US dollars, and this may reduce your currency commission charges. As regards prize-money being off-set against next year’s subscription, I’m sure our treasurer will be delighted to receive advance payment whenever you win, but please make sure you repeat your request for this treatment on each competition entry, because the logistics of tracking a different procedure for each individual can become tortuous!)
A plea for help¶
Sir,
We are about to start a major development project based wholly on an IBM PC/AT. It will be developed using STSC’s APL*PLUS Application Development and will use as its kernel their STATGRAPHICS package. This letter is a plea for help.
What we need is a standalone device driver for the Hewlett-Packard HP7475A plotter which will allow us more freedom to expand our scope beyond STATGRAPHICS. We have a tentative promise of a new TOOLS workspace that may be available later this year, but our project can’t wait that long.
Being stranded out here in the APL desert, our only contact with the outside world is through VECTOR, but due to the vagaries of the Saudi postal service it can take up to 3 months before an issue of VECTOR is received. Perhaps you could throw my dilemma open to the wider APL community.
It is an excellent magazine, long may it continue, but perhaps a bit earlier to us out here in Saudi Arabia.
Yours sincerely,
Joe McGrellis,
c/o Arabian-American Oil Company,
P.O. Box 9712,
Dhahran 31311,
Saudi Arabia.
Tel Saudi Arabia (3) 875-6940 (office)
[home telephone number omitted]
(Editor: Thanks for your comments, and for your tact in blaming the irregular supply of VECTOR entirely on the Saudi postal service! I hope someone answers your plea.)
Polygon shading¶
Sir,
For several months I have been searching for a suitable algorithm for shading polygons. I would be most grateful if any of your readers could provide an algorithm expressed as one or more APL functions to shade a simple polygon. I have a Sinclair QL computer with the MicroAPL APL.68000, and I have been playing around with a Tektronix 4661 flat-bed plotter. Using APL it is very easy to draw all sorts of mathematically definable shapes. I have never been able to figure out a workable method of shading the polygons which are being plotted.
On another note, I attended the recent Commodore show in London and I was very pleased to see that MicroAPL are planning an APL implementation for the new Amiga computer. I will be returning to the USA this summer and I am planning to purchase one for myself as soon as I am settled. I understand that in the States you can pick up an Amiga with a quality colour monitor, the plug-in 256k memory expansion and an external disk drive for $1300. An impartial source told me that at that price the Amiga was outselling the Atari by three to one. I also saw a two megabyte memory expansion for around $1000 (£599). The APL.68000 package will be pegged at under $300. To me this could mean real APL on a real personal computer for under $2600, a price about which APL devotees might do some serious thinking.
Yours faithfully,
Clement Taylor,
Esher,
Surrey.
(Editor: I know that Clement will have returned to the States before this letter is printed. Any readers who can provide a suitable algorithm should send it to myself. To add spice to the challenge, the last such algorithm I saw shaded any polygon, including re-entrant polygons, and drew alternate lines in the opposite directions in order to optimise plotting time. It was written by a sandwich student who knew no APL when he started his year’s industrial placement!
Our technical team have tracked down the following reference on this and closely related topics in the APL literature:
Polygon clipping, Quote Quad 15,3 March 1985
(correction in Quote Quad 16,2 December 1985)
Parallel shading of polygons, Quote Quad 13,4 & 16,1 September 1985)
Hidden Plane Elimination and Surface Shading of Polygons Representing Buildings, Cornell & Julian, APL 81 Proceedings.)
A reader’s response¶
Sir,
I couldn’t disagree more strongly with Mr Devaney’s letter in VECTOR Vol 3, No 1. I will answer his points in order:
(a) Management control: where do you draw the line between the costs of program development and the costs involved in insisting on proper management control? The facts that APL is hard to control and that most managers cannot understand it, are no reason for abandoning it when you calculate the costs of the alternatives. As an example I have just rewritten a badly-working and prone-to-failure PL/1 program in APL. The PL/1 program still didn’t work properly after six months’ solid work and was about 1000 lines long including all subroutines. The APL version works properly after half a day’s solid work (including designing it from scratch) and uses only 80-100 lines of code. This is not an isolated example.
According to Mr Devaney I should not be using APL because my management can’t control it; according to my management I should be using APL because it is very much cheaper and I can clear my applications backlog much more quickly. As for APL being ‘unable to support properly established libraries ...’, has he not heard of IP Sharp’s LOGOS? And if he can’t use LOGOS, can’t he design something similar but simpler, as we have in our environment?
(b) Unintelligibility. To whom? Has Mr Devaney never tried to decipher ‘typical’ FORTRAN code? I know that FORTRAN-77 is better for writing clearer structured code than FORTRAN-66, but not much, and that doesn’t help me try to understand some of the programs we have bought in from ‘reputable suppliers’ that are indecipherable. Rather than carry out maintenance on these programs, I convert them to APL, which makes further maintenance much easier. The point is that you can write unintelligible code in any programming language, so why single out APL?
(c) Lack of portability. ‘The only portability for APL that I know of is typing it all in again!’ (Mr Devaney’s exclamation mark.) I suggest that Mr Devaney does not know much about APL. An APL workspace is interpreter- and/or machine-dependent in much the same way that an executable program (load module) is machine-dependent. You would never dream of transferring a load module from one machine to another; you just transfer the source program and compile and link-edit it again on the new machine. So it is with APL; you put your functions in some kind of transfer file – via IBM’s )OUT command or something similar; (if your APL hasn’t got this command, write a function to simulate it – it’s easy. Then you transfer this file by magnetic tape and do the reverse process. If ⎕AV is incompatible, there is no problem; write a translate function.
(d) Closed, secure systems. Mr Devaney’s last paragraph is incomplete; the user can meddle with ANY program if he/she knows how to. What sort of security against intrusion is he after? Most mainframe manufacturers provide security which will protect anything – data, APL workspaces, etc. – against most prying eyes and fingers, but the most determined intruder will get you in the end. If you want to stop your users meddling with your APL functions, you should:
- lock all the functions in the production workspaces (keeping the development versions unlocked);
- error-trap your workspaces so that your users can’t get into ‘raw’ APL.
If you don’t know how to do these you’re not much of an APL programmer and I suggest that you contact one of our Sustaining Members for training!
Yours sincerely,
J Sullivan,
Senior Research Officer,
Statistics & Market Research,
Business Development Division,
National Westminster Bank plc.,
41 Lothbury,
London EC2P 2BP.
(Editor: John’s response is obviously deeply felt; indeed he was so quick off the mark that I think he is the first correspondent whose letter has reached us in time for inclusion in the next copy of VECTOR! I expect replies from other readers to Mr Devaney’s original letter in time for the January issue.)