5 ms·
Don't flame me, but I think APL is the perfect language to introduce coding to kids. I've had great success with it personally. The symbols are suprisingly intu
by queuebert 5y ago
Don't flame me, but I think APL is the perfect language to introduce coding to kids. I've had great success with it personally. The symbols are suprisingly intuitive to them, and APL's strengths match the domain of what kids typically do with computers at first.
- rak1507 5y agoInteresting! Aaron Hsu agrees. https://www.youtube.com/watch?v=kIItfQJEVdM https://www.youtube.com/watch?v=kIItfQJEVdM
- leephillips 5y agoI don’t think you’re wrong at all. I was not a kid at the time, but APL was the first language I learned. There is one drawback: it kind of spoils you. If you continue to do any programming you’ll probably have to use other (inferior) languages, and you’ll always miss APL.
- blowski 5y agoThat’s why I recommend starting with GW-BASIC like I did.
- queuebert 5y agoGORILLAS.BAS represent!
- shaunxcode 5y agoOh man memories of figuring out how to change the wind speed and feeling like a hacker for the first time!
- vanderZwan 5y ago> it kind of spoils you I think in some way anyone's first language will spoil them for whatever that language is best suited for. My "first" language was Z80 assembly, because I wanted to make games for my calculator (I ended up writing just one[0], also "first" because technically my first was TI-BASIC of course). I've missed feeling like I directly was speaking "to the metal" ever since. Don't get me wrong, I'm super-happy with the high-level languages I've used since, but whenever I have to wrangle efficient code out of JavaScript there's some (probably misplaced) nostalgia for when I didn't have to worry about whether or not the JIT will kick in or not. [0] https://www.ticalc.org/archives/files/fileinfo/328/32817.html https://www.ticalc.org/archives/files/fileinfo/328/32817.htm...
- scns 5y agoHm, i'll have to disagree. My first language, decades before i became a programmer, was Commodore Basic. When i started learning programming in earnest, my first languages were Java, C and Python. The first language that spoiled me was ReasonML, compiling and reloading a JavaScript frontend in milliseconds. The first real job using Typescript was like watching paint dry. Around 30 seconds of waiting for compiler, linter and the rest of tooling on each push? My colleagues disabled the linter to get work done.
- jazzyjackson 5y agoIt may also appeal to children who desire to read and write in a secret code language (seems like a phase some of us have, anyway!)
- bryanrasmussen 5y agoso maybe the first language should be brainfuck.
- cyberbanjo 5y agoi think it's lack of expressive power will turn off newbies
- vanderZwan 5y agoI'm ironically going to be that pedantic guy and say "well ackchyhually, the point is that it's Turing complete so it lacks no expressive power, you're thinking of verbosity". Also, yes, it totally will
- vanderZwan 5y agoWell, the Snap! people seem to agree, since it's available as a library there, as I discovered just a few hours ago: https://twitter.com/nathrune/status/1423703525612212232 https://twitter.com/nathrune/status/1423703525612212232 That actually sounds like quite a powerful addition to Snap!
- shaunxcode 5y agothat is beautiful!
- ZachWick 5y agoAPL was originally created by Iverson as a notation used to teach mathematics and only became a programming language able to be executed by a computer around the time that (or shortly after) he published his book _A Programming Language_ [0] in 1962. Even throwing away the “executable by a computer” part of APL and only considering it as a notation, APL can be powerful. Iverson gave a lecture, which was published as _Notation as a Tool of Thought_ [1] that contains a good discussion of what exactly makes a given notation “good”. [0] https://web.archive.org/web/20141027152546/http://www.softwarepreservation.org/projects/apl/Books/APROGRAMMING%20LANGUAGE/view https://web.archive.org/web/20141027152546/http://www.softwa... [1] https://dl.acm.org/doi/pdf/10.1145/358896.358899 https://dl.acm.org/doi/pdf/10.1145/358896.358899