7 ms·
Alan Kay on “What Made APL Programming So Revolutionary?”
- xaedes 7y agoThis code example (Nile language not APL) makes me want to look into those languages: https://qph.fs.quoracdn.net/main-qimg-07327016425ac6460097699f322b1a28 https://qph.fs.quoracdn.net/main-qimg-07327016425ac646009769... I think its so beautiful, just the math written down.
- sp332 7y agoI always liked this example: Conway's Game of Life in One Line of APL https://www.youtube.com/watch?v=a9xAKttWgP4 https://www.youtube.com/watch?v=a9xAKttWgP4 It's esoteric as one-liners tend to be, but I think it's a fascinating glimpse.
- neves 7y agoI programed in APL! Sure, I just had to change an already developed code from my MSc adviser. It was weird! First of all, you needed an special keyboard just to use it: http://ageinghacker.net/hacks/apl-keyboard/apl-keyboard-1.jpg http://ageinghacker.net/hacks/apl-keyboard/apl-keyboard-1.jp... When you were not fluent, the myriad different symbols would overload your working memory, making it very hard to program. Just needing to find the symbols in the keyboard would make you program slowly. It had some nice ideas about matrix programming, probably they are similar of pandas or tidy verse. Cool, but the steeeeep learning were really terrible. Read the article! Great reminiscences from one of greatest computer science elders. Made me understand better the language.
- neves 7y agoHoly Sh*t! A lot of things to do and I just discovery Alan Kay's answers in Quora: https://www.quora.com/profile/Alan-Kay-11 https://www.quora.com/profile/Alan-Kay-11
- bakul 7y agoKay: > There are several modern APL-like languages today — such as J and K — but I would criticize them as being too much like the classic APL. It is possible to extract what is really great from APL and use it in new language designs without being so tied to the past. It would've been good to see specific criticism instead of being just like classic APL. I think many of APL/k/j verbs/adverbs can be generalized to working on streams (dataflow programming). Perhaps Dan Amelang's very interesting work on "2.5D" graphics can be cast into such an extended version....
- vchak1 7y agoI have played with both Nile and APL now for a bit, and I have been thinking about how to combine them. I believe if we took Nile's operator overloading, tick syntax (s' is the previous value of s), and recursion being expressed via streams (<< operator), and combined it with some of the higher order adverbs of apl, it might be very interesting. In APL complex structures (say a point, or a bezier curve) need to be broken up into constituent equal length arrays for processing, but I believe one could just overload basic operations like +, - , etc.
- chenglou 7y agoDo you have an easy way to set up Nile and get it running? And did you run Frank too?
- vchak1 7y agoNo I ran it mainly from from Bret Victors viz directory. Did not run Frank. Would be interesting to build a Nile runtime in go or elixir (maps well to [processes), with a simple compiler in Ocaml.
- chenglou 7y agoBy viz directory did you mean https://github.com/damelang/nile/tree/master/viz/NileViewer https://github.com/damelang/nile/tree/master/viz/NileViewer And yeah, it'd interesting to build one. Is there enough info on it to build such compiler though? That NileVM.js is helpful. I've posted a list of resources in another comment below, but maybe I've missed a few
- chenglou 7y agoSince Alan Kay mentioned Nile, I'm gonna dump here the list of relevant resources on Nile and its derivative works that I've found over time: Ohm, the successor to the parser (Ometa) used by Nile: https://github.com/harc/ohm https://github.com/harc/ohm Maru, Nile's compiler/interpreter/whatever: https://www.reddit.com/r/programming/comments/157xdz/maru_is_a_symbolic_expression_evaluator_that_can/ https://www.reddit.com/r/programming/comments/157xdz/maru_is... Nile itself: https://github.com/damelang/nile https://github.com/damelang/nile (pdf presentation in README) https://programmingmadecomplicated.wordpress.com/2017/10/11/self-commentary-notes-on-graphics/ https://programmingmadecomplicated.wordpress.com/2017/10/11/... Gezira, svg drawing lib on top of Nile: https://github.com/damelang/gezira/blob/master/nl/stroke.nl https://github.com/damelang/gezira/blob/master/nl/stroke.nl http://web.archive.org/web/20160310162228/http://www.vpri.org/vp_wiki/index.php/Gezira http://web.archive.org/web/20160310162228/http://www.vpri.or... https://www.youtube.com/watch?v=P97O8osukZ0 https://www.youtube.com/watch?v=P97O8osukZ0 https://news.ycombinator.com/item?id=8085728 https://news.ycombinator.com/item?id=8085728 (check the demo video) https://www.youtube.com/watch?v=ubaX1Smg6pY https://www.youtube.com/watch?v=ubaX1Smg6pY (live demo on stage later on) https://github.com/damelang/gezira/tree/master/js/demos https://github.com/damelang/gezira/tree/master/js/demos (downloadable and runnable in browser) KScript, UI building on top of Nile: https://www.freudenbergs.de/bert/publications/Ohshima-2013-KScript.pdf https://www.freudenbergs.de/bert/publications/Ohshima-2013-K... http://tinlizzie.org/dbjr/KSWorld.ks/ http://tinlizzie.org/dbjr/KSWorld.ks/ Final Viewpoint Research Institute report, where the entire system (antialiasing, font rendering, svg, etc) was rendered using Nile into Frank, the word/excel/powerpoint equivalent written completely in Nile + Gezira + KScript): http://www.vpri.org/pdf/tr2012001_steps.pdf http://www.vpri.org/pdf/tr2012001_steps.pdf VPRI wiki restored from archive.org: https://web.archive.org/web/20171121105004/http://www.vpri.org:80/vp_wiki/ https://web.archive.org/web/20171121105004/http://www.vpri.o... Shadama, which the Nile author (Dan Amelang) worked on too: https://2017.splashcon.org/event/live-2017-shadama-a-particle-simulation-programming-environment-for-everyone https://2017.splashcon.org/event/live-2017-shadama-a-particl... Partial DOM reimplementation on top of Gezira: https://github.com/damelang/mico/blob/master/gezira/svg.js https://github.com/damelang/mico/blob/master/gezira/svg.js Partial reimplementation of Gezira: https://github.com/Twinside/Rasterific https://github.com/Twinside/Rasterific And the famous Nile Viewer itself (everything interactive): http://tinlizzie.org/dbjr/high_contrast.html http://tinlizzie.org/dbjr/high_contrast.html https://github.com/damelang/nile/tree/master/viz/NileViewer https://github.com/damelang/nile/tree/master/viz/NileViewer Commentary: http://lambda-the-ultimate.org/node/4325#comment-66502 http://lambda-the-ultimate.org/node/4325#comment-66502 https://fonc.vpri.narkive.com/rtIMYQdk/nile-gezira-was-re-1-ftw https://fonc.vpri.narkive.com/rtIMYQdk/nile-gezira-was-re-1-... http://forum.world.st/Vector-Graphics-was-Pi-performance-fun-td4690038.html http://forum.world.st/Vector-Graphics-was-Pi-performance-fun... Since Alan Kay himself is on Hacker News, maybe he can comment with more links I couldn't find. It's hard to fire up the live Frank environment, though understandably reproducing the working env might not have been a top goal. Maybe someone more cunning can merge these into a single executable repo or whatever so that I can stop playing archaeologist =)