Talk:APL (programming language): Difference between revisions

Content deleted Content added
Danakil (talk | contribs)
m minor edition to note About J prog lang
 
(281 intermediate revisions by more than 100 users not shown)
Line 1:
{{Talk header|noarchive=yes}}
''APL is renowned for ... being able to express an air traffic control system in two lines of code.''
{{WikiProject banner shell|class=B|
{{WikiProject Computing|importance=mid}}
{{WikiProject Computer science|importance=mid}}
}}
{{User:MiszaBot/config
|archiveheader = {{talk archive navigation}}
|maxarchivesize = 31K
|counter = 5
|minthreadsleft = 4
|minthreadstoarchive = 1
|algo = old(120d)
|archive = Talk:APL (programming language)/Archive %(counter)d
}}
{{archives|search=yes|bot=Lowercase sigmabot III|age=120}}
 
== APL on large vector machines ==
:I suspect this may be an exaggeration. --[[User:Brion VIBBER|Brion]] 22:08 Sep 20, 2002 (UTC)
 
Howdy, folks!
Probably, but it's not too far from the truth, and may well be literally true for some appropriate definitions of "line" and "traffic control system". It really does capture something of the flavor of the language; I'd be inclined to call it a colorful way to express that, or a rhetorical exaggeration. I don't think figures of speech like that are entirely out of place here. --[[User:Lee Daniel Crocker|LDC]]
 
I was a bit surprised that no mention was made of the APL*STAR programming language on the Control Data STAR supercomputer (evolved into the ETA 10 super). A description of the language can be found here: [http://www.softwarepreservation.org/projects/apl/Books/197409_APL%20Star%20Reference%20Manual_19980800B.pdf APL STAR reference manual]
== APL character set ==
The current table doesn't do much for me, and I know I have Unicode installed. LaTeX has most, if not all, of the characters (I'm still figuring out how to get the sort function to work in LaTeX). Meanwhile, here's an APL keyboard layout image.... I'm working on permissions.
 
It's interesting from a historical standpoint because the original STAR-100 super was a wide-bandwidth pipelined vector processor. Scalar operations were essentially performed as vectors of length 1. What killed performance was the startup time for a vector operation. Something that Gene Amdahl said on the subject eludes my memory at the time. Later versions of the hardware included a dedicated scalar unit.
[[image:APL_keyboard.gif]]
<ref>https://en.wikipedia.org/wiki/CDC_STAR-100</ref>
 
[[Special:Contributions/63.155.119.22|63.155.119.22]] ([[User talk:63.155.119.22|talk]]) 21:18, 15 January 2021 (UTC)Chuck
-- [[User:UtherSRG|UtherSRG]] 15:55, 12 May 2004 (UTC)
 
{{reflist-talk}}
I've commented out the table again. Perhaps some explicit instructions how how to ensure readability would be good. I know I have Unicode installed, but I can not see most of the APL symbols. - [[User:UtherSRG|UtherSRG]] 14:24, 13 May 2004 (UTC)
 
== apl.kmx ==
:Instructions will depend on the system you use.&nbsp; Some browsers (e.g. [[Mozilla]] and [[Lynx (browser)|Lynx]] under [[Linux]]) show all APL characters without any additional setup whatsoever.&nbsp; There is no reason to hide the table, because it is not essential here.&nbsp; Perhaps it will prompt readers to get an APL-compatible font if they are really interested in APL. &mdash; [[User:Monedula|Monedula]] 14:48, 13 May 2004 (UTC)
 
I created a Keyman keyboard for APL. [https://www.dropbox.com/s/pnrv9rgwoisevbw/apl.kmx?dl=0][https://keyman.com] [[Special:Contributions/92.9.35.203|92.9.35.203]] ([[User talk:92.9.35.203|talk]]) 09:38, 17 July 2022 (UTC)
::'''I'm''' really interested in APL and I can't figure out what's wrong. I have MSIE 6.0.2. I have Unicode installed. What else is required?
 
== Snap? ==
::Leaving the table there and broken for the majority of folks is not acceptable withouth giving good instructions on how to view it. When I asked Rex Swain (owner of the keyboard image) to use his image, he visited the page and said he couldn't view the table. There aren't many folks more interested in APL than he is. - [[User:UtherSRG|UtherSRG]] 15:01, 13 May 2004 (UTC)
 
Is Snap! really based on APL? Is it vandalism?
:::The broken table has made you aware of a problem? It is very good!
[[Special:Contributions/89.67.244.199|89.67.244.199]] ([[User talk:89.67.244.199|talk]]) 13:21, 31 December 2023 (UTC)
 
:::Now the instructions.&nbsp; In MSIE go to menu, press '''Tools''', then '''Internet Options'''.&nbsp; In the [[dialog box]] press the button '''Fonts...'''.&nbsp; The "Fonts" [[dialog box]] appears.&nbsp; In the '''Language script''' box select "Latin based".&nbsp; Now in the '''Web page font''' box select a font what contains the APL symbols.&nbsp; One of such fonts is '''Arial Unicode MS'''.&nbsp; This font is supplied with "Microsoft Office" &mdash; if you have istalled it, then you should have the font.&nbsp; If not, copy this font from someone else's machine.&nbsp; Or get any other font that is both APL- and Unicode-compatible and install it, and then select it in the '''Web page font''' box.
 
:::In any case, displaying characters is the browser's problem, not Wikipedia's.&nbsp; Wikipedia supplies information, browser displays it.&nbsp; Do not break up this [[division of labour]]. &mdash; [[User:Monedula|Monedula]] 15:31, 13 May 2004 (UTC)
 
Outdenting...Thanks for the instructions. As things stand, I have the following fonts that should display the APL symbols: '''Lucinda Sans Unicode''', '''SImPL''', '''VectorAPL''', and '''SILDoulosUInicodeIPA'''. Of these, only '''SImPL''' displays the APL characters in the table, and the font is ugly for regular text. I've now installed '''Arial Unicode MS''' and things are good.
 
I'm fully in agreement with the division. It's just that when the information is only viewable if the user performs a reconfiguration, then it isn't really information, only raw unintelligible data. Doubly so when there are no instructions on how to perform that reconfiguration. - [[User:UtherSRG|UtherSRG]] 15:57, 13 May 2004 (UTC)
 
 
Now, to complaints about the table's contents. It seems this table is far from complete. While the table has many overlayed characters, it doesn't have all of the individual characters used in the overlays, only the special characters. I think it wouldbe beneficial to have all of them, including the "common" characters like ?, (, and ). - [[User:UtherSRG|UtherSRG]] 16:04, 13 May 2004 (UTC)
 
:If we include ? and ( ), then probably we should include A-Za-z and 0-9 also?
 
:As to browsers: I believe that future versions will display a much wider range of characters, perhaps downloading fonts automatically when they encounter something new. &mdash; [[User:Monedula|Monedula]] 18:10, 13 May 2004 (UTC)
 
What do you think of the language [http://jsoftware.com/ J] as an APL renewal? [[User:Marc Venot|Marc Venot]] 02:24, 3 Aug 2004 (UTC)
* J is very, very impressive. If you haven't tried it, give yourself a chance and download it: it is free. IMO, it is more powerful and much more ''orthogonal'' than any other APL I've seen. The only unsatisfied wishes I can think of when I use it are:
*# I miss the user data type features provided by Backus [[FL programming language|FL]] (several of the more powerful J ideas come from [[FP programming language|FP]] via FL)
*# ditto for the exception handling mechanism in FL
*# direct, primitive support for dictionaries ([[K programming language|K]]'s handling of its namespaces through standard dictionaries would be very nice to have) and trees.
*# pattern-based case parsing at function definition time (''à la'' [[Miranda]] or [[Haskell]])
*# full, Perl-level, primitive support for regular expressions (currently it is handled through a library)
*# the fact that not all primitives work transparently on both dense and sparse arrays (although many do)
*# the fact that its Linux version runs on a Java-built interface, instead of, say, Qt
*# K's mature support for data warehouses and other OLAP-related tasks
*# last, but never least... a different way of encoding the dictionary verbs (J uses the idea of ''extended'' base characters for related functions, so that if <code>+</code> means something, then <code>+.</code> means something related and <code>+:</code> means something else related too... the problem is that all my years of reading have though my brain to see the '.' and ':' chars as ''separators'' and it is very hard to learn to see them attached to another character in an undivisible pair... furthermore, there is ''no'' lexical distinction between the monadyc and dyadic uses of a verb, making it even more difficult to parse what already are very dense (in the information-load sense) expressions)
*In the end, though, J is the most powerful language I have ever used, and I would not consider anything else (except some kind of J descendant) to use as my main programming tool, at any price. When I work with J, I ''see'' things differently, in a fun, always entertaining way. Hope this helps a bit. &mdash; [[User:Danakil|danakil]] 02:44, Sep 6, 2004 (UTC)
 
== quote by dijsktra ==
 
"''APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums". ([[Edsger Dijkstra]])''"
 
I have removed the quote by dijkstra on the following grounds:
* The criticism was made towards the early versions of APL, particularly targeting its lack of support for structured and modular programming, at a moment where these two disciplines were taking over the world by storm.
* Computer science was an explodind, intensely competitive field at that time, and thus it was then much more common for computer science luminaries to express themselves in ways that might have been customary then, but that today would be less acceptable for a serious researcher.
* Finally, I will cite ''another'' quote by Dijkstra, criticizing another (now well respected) programming language for which I will initially remove the name calling it 'X' (note, please, that I have the greatest respect of Dijkstra's capabilities, and this is just to show that it is easy to obtain a quote supporting almost any topic from any great mind's past):
**"''X had its serious shortcomings: what became known as "shallow binding" (and created a hacker's paradise) was an <b>ordinary design mistake</b>; also its promotion of the idea that a programming language should be able to formulate its own interpreter (which then could be used as the language's definition) has caused a lot of confusion because <b>the incestuous idea</b> of self-definition <b>was fundamentally flawed</b>. [...] My first introduction was via a paper that defined the semantics of X in terms of X, <b>I did not see how that could make sense</b>, I rejected the paper and X with it. My second effort was a study of the X Manual from [Academic Institution] which I could not read because it was an incomplete language definition supplemented by an equally incomplete description of a possible implementation; that manual was poorly written that <b>I coud not take its authors seriously</b>, and rejected the manual and X with it''." (Dijkstra, ''Computer Science: Achievements and Challenges'')
* Guessed which the language is? Right. Lisp. This should throw some light into the issue of how much weight can be given to his previous quote regarding APL. Dijkstra was a genius at computer science, but Iverson's and McCarthy's genius lay somewhere else, in the specific field of languages and systems that help people ''think''. &mdash; [[User:Danakil|danakil]] 02:25, Sep 6, 2004 (UTC)