4 ms·
Context: Professional APL user for ten years back in the '80's I firmly believe languages like APL, Forth and LISP should be taught in a single quarter course
by robomartin 5y ago
Context: Professional APL user for ten years back in the '80's
I firmly believe languages like APL, Forth and LISP should be taught in a single quarter course on programming languages. The perspective you get is invaluable. These ideas help you think about computational problem solving in a different way.
That said, attempting to use any of these languages today for anything other than a fun hobby would be a mistake. While APL isn't dead --paid and free distributions are still actively maintained--, it is, in my opinion, deader than a doornail when it comes to the reality of using it for any real work, particularly at scale. In this sense it isn't any different than Forth, LISP, COBOL and FORTRAN. Can you imagine Facebook announcing a move to FORTRAN. Neither can I.
I often find the comments on HN about APL is terribly misinformed. Things like "read only language", "need a custom keyboard", "need a custom machine", etc. are, from the perspective of someone who actually knows APL, just silly. People truly should stop for a second and think about whether their opinions about anything are based on enough data to actually support even having an opinion. Simple parallel example:
Dabbling in music does not make you a musician. Declaring that you need a custom machine to type musical notation and that this notation is impossible to read would sound terribly ignorant to someone who devoted sufficient time to actually learning and internalizing this.
I can, still, to this day, decades later, touch-type APL. Do you look at your keyboard when you type anything in your spoken language/s? No? Same with APL. The learning curve isn't any worse than learning to type on an ASCII keyboard. Do you have to look at the keyboard when you type any of the shifted symbols on the top row? No? Well, imagine that's APL. Different symbols. No problem.
Yes. APL is dead as a sensible informed choice for non-trivial projects.
No. APL is not dead as it pertains to learning some amazing things about what computing could --and arguably, should-- look like at some undefined point in the future.
I have always thought that the future of AI will require us to be able to communicate with the computer in code in a form far closer to the symbolic APL approach rather than typing words in English. I can't put my finger on what form that would take. Iverson's "Tool for Though" paper goes over the reasons that support this idea. I just can't offer anything other than to say I believe this to be true based on ten years using an amazing symbolic language for real work at scale. One of my APL applications was part of the human genome decoding project. It helped analyze, classify and visualize sequencing data.
- rhn_mk1 5y ago> In this sense it isn't any different than Forth, LISP, COBOL and FORTRAN. Given that Fortran is used all the time for numerical computations, especially in science, and this very site runs on LISP, I'm not sure you're making the point you think you are making.
- robomartin 5y ago> I'm not sure you're making the point you think you are making Not counting "it would be nice if you had exposure to these languages." A job, where you are required to primarily develop software using these languages. That's the criteria. ----------------------------------------------------- Monster.com "apl software engineer" results: 0 "fortran software engineer" results: 0 "lisp software engineer" results: 0 ----------------------------------------------------- Linkedin: "apl developer" results: 1 "fortran developer" results: 0 "lisp developer" results: 0 "python developer" ~50,000 results (no, did not bother to filter through the list to get down to actual python jobs vs. mentions) "c++ developer" ~100K (same comment) ----------------------------------------------------- Oh, no, I am making precisely the right point. HN running on LISP is a rounding error. FORTRAN for scientific computing is also a rounding error. These things are dead.
- rhn_mk1 5y agoYou're not going to find scientfic positions advertised on LinkedIn, and I don't know what other blind spots that selection makes. I would concede if you compared StackOverflow questions. That would also reflect the definition of "alive" from the article better ("actual usage").
- robomartin 5y agoOh, please! https://stackoverflow.com/questions/tagged/apl https://stackoverflow.com/questions/tagged/apl 266 questions https://stackoverflow.com/questions/tagged/fortran https://stackoverflow.com/questions/tagged/fortran 11,855 questions https://stackoverflow.com/questions/tagged/forth https://stackoverflow.com/questions/tagged/forth 262 questions https://stackoverflow.com/questions/tagged/python https://stackoverflow.com/questions/tagged/python 1,817,529 questions https://stackoverflow.com/questions/tagged/c++ https://stackoverflow.com/questions/tagged/c++ 741,496 questions LISP: 6,615 javascript: 2,285,941 java: 1,805,413 c#: 1,503,129 php: 1,417,981 etc. If "underwater_basket_weaving" was a tag it would likely get more questions than APL, Forth and LISP combined. Let it go...