Discovering APL: Difference between revisions

Jump to navigation Jump to search
16 bytes added ,  15:23, 20 November 2019
m
10 revisions imported: Migrate from miraheze
Miraheze>Adám Brudzewsky
m (10 revisions imported: Migrate from miraheze)
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
:''A brief review of APL, its origins and what makes it distinctive.'' By Stephen Taylor.
:''A brief review of APL, its origins and what makes it distinctive.'' By Stephen Taylor (lightly edited for APL Wiki).


== Origins ==
== Origins ==
Line 19: Line 19:
== Why vector languages? ==
== Why vector languages? ==


Distinct from [[Object orientated programming|object-orientation]], currently the most popular abstraction paradigm for software developers, array-orientation is an older paradigm, closely associated with functional programming, that offers different powers. Just as Vector languages have been extended to facilitate object-oriented programming, so array-oriented extensions are available for OO languages such as Java and C++. From the Vector languages, OO programmers can learn powerful techniques.
Distinct from [[Object-oriented programming|object-orientation]], currently the most popular abstraction paradigm for software developers, array-orientation is an older paradigm, closely associated with functional programming, that offers different powers. Just as Vector languages have been extended to facilitate object-oriented programming, so array-oriented extensions are available for OO languages such as Java and C++. From the Vector languages, OO programmers can learn powerful techniques.


Interpreters for the Vector languages have always had managed code (managing machine details), to let the programmer focus on more abstract issues. Their low housekeeping and interactive development environments make them languages of choice for many programmers pressed for time. Not surprisingly, Vector languages have a long association with agile or lightweight software development.
Interpreters for the Vector languages have always had managed code (managing machine details), to let the programmer focus on more abstract issues. Their low housekeeping and interactive development environments make them languages of choice for many programmers pressed for time. Not surprisingly, Vector languages have a long association with agile or lightweight software development.
Line 51: Line 51:
rather than
rather than


<source>sum divide tally</source>
<pre>sum divide tally</pre>


The density of APL expressions helps writers identify and accumulate abstractions, a crucial part of [[Wikipedia:refactoring|refactoring]].
The density of APL expressions helps writers identify and accumulate abstractions, a crucial part of [[Wikipedia:refactoring|refactoring]].
Line 83: Line 83:
The wheel continues to turn. The Internet has spread and connected PCs across many linguistic systems and scripts. Operating systems now routinely support not just multiple fonts but multiple writing systems and keyboard mappings to use them. The PC on which I am writing this has its browsers configured to display HTML pages in Western European languages, in Turkish, Japanese and Korean.
The wheel continues to turn. The Internet has spread and connected PCs across many linguistic systems and scripts. Operating systems now routinely support not just multiple fonts but multiple writing systems and keyboard mappings to use them. The PC on which I am writing this has its browsers configured to display HTML pages in Western European languages, in Turkish, Japanese and Korean.


After its initial fascination with graphic design, web design now looks more like typography. My mouse rests upon a mousemat that shows me how to key the extended Western Latin ASCII characters less easily reached from the keyboard. (Or see Bringhurst’s ingenious mapping in ''The Elements of Typographic Style''<ref>[[http://www.amazon.co.uk/exec/obidos/ASIN/0881791326/5jt-21/026-0122895-4126017|The Elements of Typographic Style]] Robert Bringhurst, Version 2.5, 2002, Hartley & Marks, Vancouver BC, Canada. ISBN 0 88179 132 6</ref> and my review of it.<ref>''The Solid Form of Language'' Robert Bringhurst, 2004, Gaspereau Press, Kentsville NS, Canada. ISBN 1 894031 88 1 · Reviewed in ''Vector'' 21.2 [[http://archive.vector.org.uk/art10009840|“Liquid Mathematics”]]</ref>) My girlfriend manages to use Macintosh and Windows mappings for Japanese without a diagram. I can usually manage the same for APL, but have a diagram above my monitor for when I can’t.
After its initial fascination with graphic design, web design now looks more like typography. My mouse rests upon a mousemat that shows me how to key the extended Western Latin ASCII characters less easily reached from the keyboard. (Or see Bringhurst’s ingenious mapping in ''The Elements of Typographic Style''<ref>[http://www.amazon.co.uk/exec/obidos/ASIN/0881791326/5jt-21/026-0122895-4126017 The Elements of Typographic Style] Robert Bringhurst, Version 2.5, 2002, Hartley & Marks, Vancouver BC, Canada. ISBN 0 88179 132 6</ref> and my review of it.<ref>''The Solid Form of Language'' Robert Bringhurst, 2004, Gaspereau Press, Kentsville NS, Canada. ISBN 1 894031 88 1 · Reviewed in ''Vector'' 21.2 [http://archive.vector.org.uk/art10009840 “Liquid Mathematics”]</ref>) My girlfriend manages to use Macintosh and Windows mappings for Japanese without a diagram. I can usually manage the same for APL, but have a diagram above my monitor for when I can’t.


=== Signs of the times ===
=== Signs of the times ===
Line 89: Line 89:
Contemporary inscribing technology supports multiple languages and writing systems. (A Japanese web page will casually mix three to five different scripts.) The elegant and distinctive glyphs of APL are by no means the most exotic writing system my PC supports today.
Contemporary inscribing technology supports multiple languages and writing systems. (A Japanese web page will casually mix three to five different scripts.) The elegant and distinctive glyphs of APL are by no means the most exotic writing system my PC supports today.


Iverson insisted upon the importance of his notation as a tool of thought. Similarly, Paul Graham has written of [[http://www.paulgraham.com/hp.html|coding as an essential part]] of exploration and design. The terse and distinctive signs of APL increase its utility, but only if they can be typed as well as written.
Iverson insisted upon the importance of his notation as a tool of thought. Similarly, Paul Graham has written of [http://www.paulgraham.com/hp.html coding as an essential part] of exploration and design. The terse and distinctive signs of APL increase its utility, but only if they can be typed as well as written.


Recent technology made APL’s glyphs relatively inaccessible, and correspondingly less useful as a tool of thought. Current technology makes them once again accessible, and more useful than they have been for decades.
Recent technology made APL’s glyphs relatively inaccessible, and correspondingly less useful as a tool of thought. Current technology makes them once again accessible, and more useful than they have been for decades.

Navigation menu