I wrote a 3000 line APL program when I was a kid, for a school assignment. I didn't have the math, or the skill, to write a shorter program.<div><span style="font-size:15px"><br></span></div><div><span style="font-size:15px">What I didn't like with the language, then, was dynamic scoping, and the old style of function definition using conditional and unconditional GOTO as control structures. This was the 1970's.</span></div><div><span style="font-size:15px"><br></span></div><div><span style="font-size:15px">The language has improved a lot. "Direct functions" now let you program in a functional style.</span></div><div><span style="font-size:15px"><br></span></div><div><span style="font-size:15px">I got interested again when I saw this:</span></div><div><span style="font-size:15px"><br></span></div><div><span style="font-size:19.5px"><a href="https://news.ycombinator.com/item?id=13797797">https://news.ycombinator.com/item?id=13797797</a></span><br><br>It's a 750 line APL program; an optimising compiler for modern APL that emits GPU code. The technology staggers me. To reproduce this in C++ would, for me, probably require 40,000 lines of code. Except that this compiler runs on a GPU, a feat no one else has accomplished. It's something you can only do in APL.</div><div><span style="font-size:15px"><br></span>On Saturday, 20 January 2018, Khalid Baheyeldin <<a href="mailto:kb@2bits.com">kb@2bits.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Wow!<br><br></div>That brings memories.<br><br></div>In the mid 1980s, I was part of a team to implement an information system on a mainframe. The mainframe did not have any data entry method, so the branches would use a PC with a COBOL application on it to enter the data and store it on 5.25" diskettes. A driver would collect them and take them to the data centre where they were uploaded to the mainframe.<br><br></div>The guy who wrote the COBOL application for the PC was a seasoned mainframe veteran from Alabama and was frustrated by the lack of tools on the PC. So he used a PC version of APL, and its internal full screen editor to edit the COBOL source code, and then wrote some custom APL to reformat it correctly. That was amazing.<br><br></div>It was fascinated by how APL did not use ASCII letters for directives, but rather mneumonics that looked like playing card symbols. Also the sheer power of that language/platform. <br><div><div><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 20, 2018 at 11:10 AM,  <span dir="ltr"><<a href="mailto:jvj@golden.net" target="_blank">jvj@golden.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Going OT with the ancient IBM stuff.<br>I skimmed past the S/38 and As/400 and know very little about those machines.<br>AFAIK The VM capability would let system developers define target systems somewhat different than the system used for development.<br><br>As a student (circa 1972) I ran Fortran card deck assignments and personal APL stuff on the 360 aka 360 sickly.<br>A grad student created an APL system function that would read a text matrix as a text file containing a card deck.<br>When I used this APL function to run Fortran assignments I noted that my jobs would bump above other jobs submitted by people who had been standing in line for the card deck reader.<br>APL - as an interactive subsystem on the 360 - had a higher system priority than other jobs, e.g. compiler, assembler, etc.<br>My lowly Fortran jobs, submitted through APL, inherited the APL priority.<br><br>JohnJ<br></blockquote></div><br></div></div></div></div></div></div></div>
</blockquote></div>