Discovering APL: Difference between revisions

Jump to navigation Jump to search
18 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)
(4 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 ===

Navigation menu