Ask HN: Do I need a special keyboard layout to learn array programming?

4 points by distcs ↗ HN
Array programming paradigm fascinates me. As much as I want to learn it, whenever I search any info about it, I find APL tutorials. Now well APL uses so many special symbols that it needs a keyboard layout with those symbols.

Is there another way? Do I really need to setup a keyboard layout to learn array programming?

Are there other APL-like languages that are easier to program with normal keyboards?

8 comments

[ 2.5 ms ] story [ 29.0 ms ] thread
Traditional physical keyboard options:

   * Spend $$ for apl specific keyboard [0]

   * Standard keyboard modifications: use macros/insert unicode chacters via keyboard[1]; stickers[2], change keycaps.
---

" ... another way?" : Most things in life can be approached in different ways (doesn't mean it's practical / realistic for given situation).

"setting up keyobard layout": No, but do need to pick a specific method/approach to use.

Some examples:

  a)  Cursorless[3] uses spoken language to edit code.

  b) Using and IDE/editor that does apl auto complete [4]

  c)  Pick from on-screen keyboard doesn't require a physical keyboard setup.  
      
      Knowing the layout of the virutal screen keyboard may help to quickly find/narrow down the key(s) for selection (eyeball, mouse)
---------

Above results found with basic web search.

---------

[0] : https://www.dyalog.com/apl-font-keyboard.htm

[1] :a) https://dangerruss-things.blogspot.com/2021/03/getting-start...

    :b) https://aplwiki.com/wiki/Typing_glyphs
    
    :c) http://xahlee.info/kbd/creating_apl_keyboard_layout.html

    :d) https://github.com/abrudz/Kbd
[2] : https://deskthority.net/viewtopic.php?t=8944

[3] : cursorless (audio editor) : https://www.youtube.com/watch?v=NcUJnmBqHTY

[4] : https://apl.ninja/xeladotbe/blog/intelli-sense-apl-resources...

***

You can program in APL without a special keyboard. Most editors offer a prefix key (commonly `, but I switch it to . since that's easier to type) so you can type .i and get ι as a result. It's an extra character, but once you get accustomed to it the typing is pretty fast and avoids changing keyboard layouts or key chord. In fairness, I already type at about 120 wpm so adding an extra character per special character in an already terse language doesn't significantly impact my typing speed.
Take advantage of conciseness of apl programs. Modify [0][1][2][3][4] for alternate keyboard needs. aka assemble appropriate qr symbol corresponding to apl symbol from voice command(s). Chain a few together, snap shot with camera for instant program upload.

Paste apl symbol/qr code in around room. Use [5] to orient self to select symbol to enter. Substituting smart glasses for monitor highly recommended.

--------

[0] : https://hackaday.com/2023/10/26/tims-draw-bot-gets-around-wi...

[1] : https://hackaday.com/2023/10/26/a-tiny-board-for-driving-led...

[2] : https://hackaday.com/2023/10/26/a-paper-printer-for-qr-code-...

[3] : spin up appropirate apl symbol, less noise than apl hayes modem commands : https://www.instructables.com/Spinner-Jog-Wheel-Inside-of-a-...

[4] : shoe fits department : https://hackaday.com/2023/10/25/keebin-with-kristina-the-one...

[5] : https://www.youtube.com/watch?v=6C2xUxm7c_M

Emacs isn't APL, but can be setup for apl programming with normal keyboards.