Mudlark on the River Thames foreshore by day, then hunt vampires at Carfax Abbey by night. A new game written in APL on the Commodore SuperPET for the River Thames Game Jam of September 2023.
Why use an interpreted array language from the 1960s on a vintage Commodore computer? Because APL is fun and easy to learn, and the language’s unique character set can be used to represent mudlarking treasures. Two APL workspaces are used, one for the mudlarking section and another for the vampire hunting section.
You can find more short little APL games at
https://github.com/jamescprice/131-APL-Games-for-your-Commod...
It's meant to be a little games book in the spirit of the 1980s books of short little games for the 8bits of the era, and a love letter to APL and the Commodore line. Usually each game brings in a new glyph and you can get a feel for how the language works by looking them over. A work in progress.
Ken Iverson's "Notation as a Tool of Thought" paper/manifesto is a great read and speaks to the philosophy behind APL quite well. He makes a pretty good case for how a programming language without ANY keywords, just symbolic glyphs, is expressive, suggestive, and economic. Classic APL existed as a mathematical notation before it was implemented as a living symbolic maths language, and you can sense that heavy mathematical background in all the crazy glyphs being used.
The wikipedia page on floor and ceiling functions (https://en.wikipedia.org/wiki/Floor_and_ceiling_functions) says "Carl Friedrich Gauss introduced the square bracket notation [x] in his third proof of quadratic reciprocity (1808).[3] This remained the standard[4] in mathematics until Kenneth E. Iverson introduced, in his 1962 book A Programming Language, the names "floor" and "ceiling" and the corresponding notations ⌊x⌋ and ⌈x⌉.[5][6]
The wonderful Words and Buttons site has a nice writeup at https://wordsandbuttons.online/apl_deserves_its_renaissance_...
where towards the end they say "Roughly 86% of all the fun you get from APL programming comes from the mysterious symbols and the magic behind them." There's really something to that.
Sometimes it's like you can almost visualize the code flow as a complex optics system, with the iota generator ⍳ emitting a beam of light in the form of integers, then other glyphs acting like beam splitters, prisms, mirrors, diffraction gratings. I've come to see numbers differently.
I have immense respect for the work Dyalog is doing, carrying the commercial APL torch. They make it very easy to take it for a spin, you can give Dyalog APL a try at tryapl.org. Stefan Kruger has an excellent learning page at https://xpqz.github.io/learnapl/intro.html that I highly recommend if you choose to give some time to the Dyalog APL product. Some more excellent food for thought also to be found at https://www.sacrideo.us/is-apl-dead/
solarbreeze|2 years ago
Why use an interpreted array language from the 1960s on a vintage Commodore computer? Because APL is fun and easy to learn, and the language’s unique character set can be used to represent mudlarking treasures. Two APL workspaces are used, one for the mudlarking section and another for the vampire hunting section.
yoava|2 years ago
I do have a question for you - do you see any real use case for APL today? Do you see ideas we can learn from APL?
solarbreeze|2 years ago
You can find more short little APL games at https://github.com/jamescprice/131-APL-Games-for-your-Commod... It's meant to be a little games book in the spirit of the 1980s books of short little games for the 8bits of the era, and a love letter to APL and the Commodore line. Usually each game brings in a new glyph and you can get a feel for how the language works by looking them over. A work in progress.
Ken Iverson's "Notation as a Tool of Thought" paper/manifesto is a great read and speaks to the philosophy behind APL quite well. He makes a pretty good case for how a programming language without ANY keywords, just symbolic glyphs, is expressive, suggestive, and economic. Classic APL existed as a mathematical notation before it was implemented as a living symbolic maths language, and you can sense that heavy mathematical background in all the crazy glyphs being used.
The wikipedia page on floor and ceiling functions (https://en.wikipedia.org/wiki/Floor_and_ceiling_functions) says "Carl Friedrich Gauss introduced the square bracket notation [x] in his third proof of quadratic reciprocity (1808).[3] This remained the standard[4] in mathematics until Kenneth E. Iverson introduced, in his 1962 book A Programming Language, the names "floor" and "ceiling" and the corresponding notations ⌊x⌋ and ⌈x⌉.[5][6]
The wonderful Words and Buttons site has a nice writeup at https://wordsandbuttons.online/apl_deserves_its_renaissance_... where towards the end they say "Roughly 86% of all the fun you get from APL programming comes from the mysterious symbols and the magic behind them." There's really something to that.
Sometimes it's like you can almost visualize the code flow as a complex optics system, with the iota generator ⍳ emitting a beam of light in the form of integers, then other glyphs acting like beam splitters, prisms, mirrors, diffraction gratings. I've come to see numbers differently.
I have immense respect for the work Dyalog is doing, carrying the commercial APL torch. They make it very easy to take it for a spin, you can give Dyalog APL a try at tryapl.org. Stefan Kruger has an excellent learning page at https://xpqz.github.io/learnapl/intro.html that I highly recommend if you choose to give some time to the Dyalog APL product. Some more excellent food for thought also to be found at https://www.sacrideo.us/is-apl-dead/