News for hackers. Stuff that matters.
Re:Lisping at JPL (2002) by proximitysauce on Saturday January 18, 2020 @05:00PM (#22087583)
I really feel like they should teach LISP in elementary school. It has extremely simple rules to get started and helps people intuitively understand programming concepts. Maybe an updated The Little Schemer style curriculum:

https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0...

Re:Lisping at JPL (2002) by cocktailpeanuts on Saturday January 18, 2020 @05:23PM (#22087742)
You don't understand why kids would want to learn programming. At least those who do, want to learn because they can build cool things they can show off to friends.

It's not about whether a programming language is simple or not. (I actually think LISP is not as simple to understand as imperative languages, unlike most nerds think) It's about what you can build with it.

For example, my first experience with programming was to build a game. If someone had tried to force-teach me LISP, it would have actually had opposite effect on me because then it would be no different from someone trying to force teach me some boring subject I have no interest in. The best way to teach something is to provide gratification. LISP is only gratifying to nerds who marvel at its "elegance", but it has no ecosystem which has tons of cool projects like fancy graphic engine or fancy game engine. It's just a "cool" language to nerds.

DON'T teach your kids LISP if you want them to love programming. Teach them JavaScript or Python, or anything they can build something tangible with which they can show off to their friends.

Re:Lisping at JPL (2002) by mdtusz on Saturday January 18, 2020 @05:30PM (#22087796)
I'd argue that racket's ecosystem is ideal for getting young people interested. You can build gui tools and do graphics programming out of the box, very easily.

My go to language to refer people who want to learn is Processing though. Easy to use, and the documentation is fantastic (and Dan Shiffman is IMO the best programming educator out there for kids and adults alike, whether or not you like his high-energy style).

Re:Lisping at JPL (2002) by chairmanwow1 on Sunday January 19, 2020 @04:33AM (#22090405)
I absolutely agree. I watched many of his videos as a professional programmer just because it’s fun to watch him build cool visualizations. He’s super charismatic and looks like he’s having genuine fun in figuring things out.
Re:Lisping at JPL (2002) by invalidOrTaken on Saturday January 18, 2020 @05:27PM (#22087776)
This really is true. I learned Logo in middle school, didn't want to be a programmer, took a Java class in college because it was required for actuarial science, then read some PG essays.

Lisp should be forbidden to young programmers, precisely so they'll go seek it out.

Re:Lisping at JPL (2002) by ksaj on Saturday January 18, 2020 @06:56PM (#22088284)
Here's something that might surprise you: https://ccl.northwestern.edu/netlogo/index.shtml

This provides a 2D and 3D NetLogo installation. The 3D version blows my mind. You can spend days going through the samples. When you look at the code after you watch a simulation, it's a bit of a shock how compact and readable it is. It's definitely a whole lot more than what they taught you and I alike in middle school.

> Lisp should be forbidden to young programmers, precisely so they'll go seek it out.

Unless it comes with a turtle, of course. Then they might end up writing the next greatest flocking algorithm.

Re:Lisping at JPL (2002) by YawningAngel on Saturday January 18, 2020 @06:47PM (#22088243)
Yeah but they won't. JavaScript is the most popular programming language precisely because people in general use whatever is put in front of them.
Re:Lisping at JPL (2002) by strken on Saturday January 18, 2020 @06:57PM (#22088290)
JS is popular because it runs in browsers and therefore has a thriving ecosystem with lots of educational resources, lots of opportunity to show your work to other people, and lots of jobs, not because it's taught in schools.

Examples of educational languages would be Alice and Logo, and they're both pretty bad at actually doing anything.

Re:Lisping at JPL (2002) by kccqzy on Saturday January 18, 2020 @09:18PM (#22088919)
I learned Logo in elementary school. I thought it was required for everyone just because learning about line segments and angles are a part of the maths curriculum and Logo just fits so well.
Re:Lisping at JPL (2002) by Koshkin on Sunday January 19, 2020 @11:05PM (#22096207)
A piece of paper, a pencil, a ruler, and a compass - these are the best tools to learn about geometry. (It’s like having a cat is the best way to learn about cats - vs., say, watching YouTube videos.)
Re:Lisping at JPL (2002) by mst on Sunday January 19, 2020 @12:26AM (#22089643)
I do wonder now how much the fact that I had to circumvent the system security to get to the startling line made me enjoy spending my lunch break writing QBASIC at high school.
Re:Lisping at JPL (2002) by WalterBright on Saturday January 18, 2020 @05:34PM (#22087819)
> You don't understand why kids would want to learn programming.

I started by typing in listings from a book (101 Basic Games). Then I'd start modifying the games. Then I'd write my own. It's how people learn.

For a famous example, look at the Beatles. They started by copying other tunes. Then they modified the copies. Then they wrote their own.

Re:Lisping at JPL (2002) by chrisseaton on Saturday January 18, 2020 @05:59PM (#22087985)
> I actually think LISP is not as simple to understand as imperative languages

Lisp is an imperative language. The order of execution is defined and you use side effects.

Re:Lisping at JPL (2002) by kick on Saturday January 18, 2020 @05:36PM (#22087836)
Re:Lisping at JPL (2002) by cocktailpeanuts on Saturday January 18, 2020 @05:45PM (#22087900)
This is because people who are really great at something have already forgotten what they used to be like when they first started out. They just tend to think everybody would be excited about the cool thing they themselves are excited about.

In most cases, people who are masters at something tend to be the worst teachers because by becoming the master they have forgotten how to sympathize with complete newbies.

Re:Lisping at JPL (2002) by blihp on Saturday January 18, 2020 @07:02PM (#22088322)
Or they remember all too well. Another way of looking at it is that people who have gotten good at something can look back and see the things that hindered their progress. Like many here, my first exposure to programming languages was BASIC and 6502 assembly language. In retrospect, I can see that they were horrible languages to start with because they taught me some very bad habits that I had to unlearn.

It is possible to teach someone Lisp, or something like it, without teaching them all of it at once... if ever. There are lots of people who use CAD systems like AutoCAD, or Emacs, or the various Lisp based/inspired Expert Systems shells, etc. who wouldn't consider themselves 'Lisp programmers' who learned just what they needed to be productive. If people were exposed to it a bit at a time, rather than the fire hose with minimal direction, I suspect a lot of complaints could be addressed. For example, the reason people think all the parens are bad is because it's become a meme and it's different than what they're used to. If they had started with Lisp and never learned ALGOL-inspired syntax, semicolons would likely look very strange to them.

Re:Lisping at JPL (2002) by dTal on Sunday January 19, 2020 @09:18AM (#22091531)
I credit my earlier exposure to BASIC as a very good introduction to programming, because of its bare-bones nature. Too much abstraction would have been overwhelming, to start with - I didn't even understand the purpose of GOSUB for a long while (I knew, mechanically, what it did, but I did not grasp why one would use such a construct instead of just putting all code inline). The simplicity made it an easy outlet for creativity, and pushing the language to its limits and finding the complexity more and more difficult to manage was key to my eventual enlightenment - advanced language constructs felt like gifts, rather than burdens.

Of course this process could be done in an advanced language that grows with the user, but most modern languages are not that - even Python expects the user to understand at least the rudiments of structured flow and objects almost immediately. Lisp (Common or Scheme) isn't it, either - lambda calculus is already far too abstracted from the "series of instructions" model which is a critical foundation for computing in the real world. C, my next step after BASIC, has quite a good balance of available abstraction and a tractable mental model; but the amount of boilerplate (the requirement for main() always seemed baroque to me) and hand holding of the computer (total lack of even trivial type inference) is not ideal for a beginner language.

Re:Lisping at JPL (2002) by kick on Saturday January 18, 2020 @05:58PM (#22087973)
He successfully taught his child Lisp, in a way that caused that child to release a video game. He didn't forget anything.
Re:Lisping at JPL (2002) by abraxas on Saturday January 18, 2020 @11:23PM (#22089459)
A kid of John Carmack is likely to have a cognitive capacity that is a standard deviation or two to the right of even the "smart" kids in class. Genetics isn't everything but it's not nothing.
Re:Lisping at JPL (2002) by Annatar on Sunday January 19, 2020 @08:56AM (#22091433)
Intelligence is inherited from the mother, not the father. That's standard content on the United States Medical Licensing Exam ("USMLE").
Re:Lisping at JPL (2002) by casualrandomcom on Sunday January 19, 2020 @04:01PM (#22094033)
I don't know how this ended up in the USMLE but AFAIK, it has long been debunked... unless for "inherited" you mean something other than "genetically transmitted".

See "Not in our Genes" by Lewontin, Rose, Kamin, for a thorough discussion.

In practice, it is a result based on twin studies, but with very low standards: for one thing not double-blind, definitions were let swing arbitrarily by the interviewers, and so on.

Definitions of intelligence are themselves questionable, techniques to measure it, even more so. The history of IQ has been tainted by plain fraud... And the whole field is too a succulent target for ideological warfare... truth is too easily a collateral casualty. This should not be considered science.

Re:Lisping at JPL (2002) by blueblimp on Sunday January 19, 2020 @10:00AM (#22091741)
This sounds like a myth, as I have never seen such a thing suggested by any expert on the subject.
Re:Lisping at JPL (2002) by Annatar on Monday January 20, 2020 @04:09AM (#22097518)
Well I sat through quite a bit of USMLE prep and it's there.
Re:Lisping at JPL (2002) by lonelappde on Monday January 20, 2020 @03:40PM (#22101916)
That's a poor paraphrase of "recent studies suggesting [testable IQ]'s mostly from the mother".

https://books.google.com/books?id=8zVXDwAAQBAJ&pg=PT138&lpg=...

Re:Lisping at JPL (2002) by Gatsky on Saturday January 18, 2020 @06:08PM (#22088027)
I think this only proves that you should teach your kid Lisp if you are John Carmack.
Re:Lisping at JPL (2002) by erik_seaberg on Saturday January 18, 2020 @06:40PM (#22088203)
Or that you should teach a kid Lisp if he is a descendent of John Carmack (or probably Paul Graham).
Re:Lisping at JPL (2002) by westoncb on Saturday January 18, 2020 @08:03PM (#22088608)
Maybe descendants of Paul Graham should be taught C if Carmack's kids are learning Lisp.
Re:Lisping at JPL (2002) by cocktailpeanuts on Saturday January 18, 2020 @09:11PM (#22088888)
If he was given a chance to go back in time and teach his younger self to learn whatever language he wanted to make himself learn, I'm pretty sure he would have NOT Picked LISP and picked exactly the same language he used to build his first game.
Re:Lisping at JPL (2002) by threatofrain on Sunday January 19, 2020 @06:51AM (#22090898)
People who are very good at things are the ones you want mentoring you, regardless of the subset who are bad teachers.
Re:Lisping at JPL (2002) by solipsism on Saturday January 18, 2020 @07:49PM (#22088561)
I would love it if he found it endlessly fascinating and spent all day programming on his own, but he does need a bit of a push from mom and dad. He enjoys it, but given the choice, he would still rather play games than make them :-)

You didn't pick very good evidence to support the idea that picking a LISP is a great way to get kids to love programming. This only supports the idea that Carmack thinks that learning a LISP is good for his son's development.

Re:Lisping at JPL (2002) by jacobwilliamroy on Saturday January 18, 2020 @06:50PM (#22088253)
There is a LISP textbook now that teaches LISP by writing videogames. It's called Land Of Lisp. And there are LISP game dev communities operating on twitter or IRC, organizing game jams:

https://itch.io/jam/autumn-lisp-game-jam-2019/results

Re:Lisping at JPL (2002) by Oreb on Saturday January 18, 2020 @05:45PM (#22087905)
Lisp (especially Common Lisp) works just fine as an imperative language, even if it’s not the most common style. And there are entire books written about using Lisp for game development.

If the goal is for a beginner (whether child or adult) to be able to make cool things fast, Lisp is a great choice. The interactivity and the simple syntax makes it very easy to get up and running compared to more mainstream languages.

Re:Lisping at JPL (2002) by cocktailpeanuts on Saturday January 18, 2020 @05:50PM (#22087937)
When was the last time you saw a kid who made a cool game or software and made money using LISP?

The best motivator is recognition. Kids don't care if a language has books and whether there "exists" a game development kit. They only care about how much satisfaction they will get by learning something and building something with it.

If you want your kid to learn programming, the best approach is to teach them Swift or Java, or Javascript, so they can build a mobile app or web app and show off to their friends. And they will get the joy of building something that is actually used by others. That's how you get people to be interested.

LISP won't get you anywhere in that sense. Sure you may learn some programming concepts, but the ROI is not worth it. Kids might as well spend a bit more effort to learn languages with more exposure and actually feel the satisfaction of having real users.

Re:Lisping at JPL (2002) by kazinator on Saturday January 18, 2020 @06:36PM (#22088170)
> teach them Swift or Java

That's basically child abuse.

Re:Lisping at JPL (2002) by abraxas on Saturday January 18, 2020 @11:26PM (#22089469)
This is such hipster arrogance it makes me angry.
Re:Lisping at JPL (2002) by Annatar on Sunday January 19, 2020 @09:02AM (#22091460)
No it isn't, he right. It's child abuse. Not Swift, but Java is definitely child abuse.
Re:Lisping at JPL (2002) by cocktailpeanuts on Sunday January 19, 2020 @11:25AM (#22092209)
Java the language is shitty, but that's the language you use to build Android apps. And most kids own Android phones. Kids want to show off to their friends and the best way to do that is to build mobile apps nowadays.
Re:Lisping at JPL (2002) by Annatar on Monday January 20, 2020 @03:58AM (#22097465)
Well then it's simple: can't have a good platform built with a shitty language.
Re:Lisping at JPL (2002) by Annatar on Sunday January 19, 2020 @09:03AM (#22091466)
...And then some. That would be enough for me to report the abuser to child services.
Re:Lisping at JPL (2002) by cocktailpeanuts on Saturday January 18, 2020 @07:21PM (#22088435)
I would say teaching LISP is more of a child abuse than teaching Swift or Java (FYI I am not a fan of Swift or Java either)
Re:Lisping at JPL (2002) by flavio81 on Saturday January 18, 2020 @10:14PM (#22089152)
>LISP won't get you anywhere in that sense. Sure you may learn some programming concepts, but the ROI is not worth it.

Do you want your kid to learn actual computer science, or do you want him/her to basically be able to create a cookie cutter mobile app?

Re:Lisping at JPL (2002) by cocktailpeanuts on Sunday January 19, 2020 @11:29AM (#22092232)
> Do you want your kid to learn actual computer science, or do you want him/her to basically be able to create a cookie cutter mobile app?

This is exactly the point I was making in the ancestor thread. If you want your kid to learn computer science, you don't force feed him/her things they will have no interest in immediately. Instead you teach how to build a "cookie cutter mobile app", and they will get interested and go from there and teach themselves racket or lisp or whatever you originally wanted to force feed them.

Re:Lisping at JPL (2002) by jimmyvalmer on Saturday January 18, 2020 @10:46PM (#22089307)
Just getting him to read a book or go outside would be progress.
Re:Lisping at JPL (2002) by Annatar on Sunday January 19, 2020 @09:01AM (#22091454)
That's not true at all: as a kid, I had to do inordinate amounts of reverse engineering precisely because I didn't have sufficient documentation, and what little I did have was in a foreign, non-English language I did not understand! I would have loved to have had books on how to program!
Re:Lisping at JPL (2002) by scythe on Saturday January 18, 2020 @07:36PM (#22088517)
So on the one hand, I wrote a Tactix GUI in Java/AWT in my first high school programming class which covered mostly Java with turtle graphics. I can agree that kids who want to learn programming want to make games.

But that Tactix GUI took me two months of sustained effort, lasting longer than any of the actual class projects. Most of the students struggled to draw a circle. It took weeks for us to get to "implement a method that takes an argument".

If you're looking at teaching programming concepts to elementary school children, i.e. to most kids, building applications doesn't seem very likely to me. It takes a long time and small children have poor memories for long-running projects.

If the programming is supposed to support elementary math and logic for kids who are getting used to the notion of "variable" in both programming and math contexts, teaching the kids to write the sieve of Eratosthenes or Babylonian algorithm really does seem like the way to go. Not because it teaches them to be good programmers or to like programming, but because it teaches them to think, and they're mostly not going to grow up to be programmers.

If, however, you want to entertain the minority of schoolchildren who do like computers and want to learn to program, then using an easy graphics library with good deployment tooling makes sense. Those kids do want to spend two months or so making a game. But that doesn't, to me, seem to be in the spirit of 'proximitysauce's comment.

Re:Lisping at JPL (2002) by blondin on Saturday January 18, 2020 @06:50PM (#22088259)
> ...my first experience with programming was to build a game

most of us!

we have made it difficult to show our games and stuff to friends. except for minecraft and game mods. that's why kids gravitate towards those.

as a side note, i was thinking last time that programming is difficult to teach nowadays because when you boot your computer or phone, it doesn't drop you into a shell or command prompt.

so few people nowadays know that you can actually give commands to your computer or phone. so the concepts is not familiar to most!

Re:Lisping at JPL (2002) by gtycomb on Saturday January 18, 2020 @07:05PM (#22088348)
> At least those who do, want to learn because they can build cool things they can show off to friends.

I have no doubt about what you say. I had a really broken laptop that my 3rd grader happily tookover as his laptop, a linux machine mind you, about which he knew nothing about. I showed him how to open a terminal and use some bash commands, and how to invoke the Python interpreter and import a turtle graphics module. He was hooked and had lots of fun moving the turtle around (along with the incentive to learn some math at his level). I remember the day he walked to school with this duck taped laptop on a show and tell day, which ended up with the school's IT departement making Python available on all computers in that elementary school lab. I don't think he could have pulled this off in lisp. Beautiful language Lisp,but I don't see how I could have helped with graphics programming within an hour or so -- which was all what he was interested in.

Re:Lisping at JPL (2002) by taeric on Saturday January 18, 2020 @07:23PM (#22088445)
Pretty sure Logo was originally implemented with a lisp, no?

Don't fall into the trap thinking lisp is just functional.

Re:Lisping at JPL (2002) by gumby on Saturday January 18, 2020 @07:25PM (#22088457)
Logo basically was Lisp -- a small parser on top of MACLISP.

There were some later small implementations (e.g. for the Apple II) that were written from scratch and didn't need to implement all of Lisp (e.g. lambda, plists, etc).

Re:Lisping at JPL (2002) by mst on Sunday January 19, 2020 @12:28AM (#22089650)
Does that make logo the sole truly successful form of m-expressions?
Re:Lisping at JPL (2002) by lonelappde on Monday January 20, 2020 @03:43PM (#22101941)
No, because m+expressions are syntax and logo has a different syntax, and because Mathematica is a successful use of something much closer to m-expressions.
Re:Lisping at JPL (2002) by flavio81 on Saturday January 18, 2020 @10:01PM (#22089100)
>Pretty sure Logo was originally implemented with a lisp, no?

Logo is a bare-bones Lisp disguised as an educational language.

Re:Lisping at JPL (2002) by kamaal on Saturday January 18, 2020 @10:10PM (#22089136)
I recently picked up 'Turtle Geometry' from Abelson and diSessa. And it was a mind blowing experience.

Really makes you think what kind of fun programming was about back then and its potential. Frankly speaking you begin to feel programming has kind of lost its way.

Re:Lisping at JPL (2002) by lonelappde on Monday January 20, 2020 @03:47PM (#22101970)
All the easy problems are solved. Logo and processing and scratch exist Programming didn't lose its way, it move forward on its way.
Re:Lisping at JPL (2002) by taeric on Sunday January 19, 2020 @12:50PM (#22092729)
It is still somewhat there. Just competing with a lot more advanced things now.

I also picked up that book. What are you using to work through the exercises?

Re:Lisping at JPL (2002) by kamaal on Tuesday January 21, 2020 @02:37AM (#22105015)
I'm using TerrapinLogo. Its free but not quite, but works for the most part. Also supports multiple turtles.
Re:Lisping at JPL (2002) by pgtan on Sunday January 19, 2020 @05:11AM (#22090548)
But it is also a excellent concatenative (left-to-right) language with brilliant procedure definition mechanism. Here as example, an oneliner to draw ascii christmas tree, we made with the kid last year:

? tanne.print tanne.output tanne.shift tanne.split 19 3 3

Re:Lisping at JPL (2002) by lonelappde on Monday January 20, 2020 @03:46PM (#22101958)
It's a bit silly to hide the work in a method call and call it a "one-liner".
Re:Lisping at JPL (2002) by taeric on Sunday January 19, 2020 @05:12PM (#22094480)
What are you using to execute this? The Python module?
Re:Lisping at JPL (2002) by pgtan on Sunday January 19, 2020 @07:01PM (#22095084)
Berkeley Logo (brand new in version 6.1). I have compiled two versions, with and without wx.

The file with the procedures is on github:

https://github.com/pgtan/puzzles/blob/master/baum1.lg

https://github.com/jrincayc/ucblogo-code

Re:Lisping at JPL (2002) by dTal on Sunday January 19, 2020 @09:04AM (#22091470)
So, someone had lisp, thought "I want to teach people programming", and instead of just teaching lisp directly, chose to implement something quite different in syntax and spirit?
Re:Lisping at JPL (2002) by taeric on Sunday January 19, 2020 @12:49PM (#22092717)
To be fair, that is the lisp spirit. They wanted to do something, imagined what that language would look like. And then implemented it in lisp. :)
Re:Lisping at JPL (2002) by Raphael_Amiard on Sunday January 19, 2020 @05:00AM (#22090505)
I sympathize with the general message of what you say but:

- it is completely possible to build cool things with lisp, as highlighted by some other people who answered your message.

- your pejorative use of the word "nerd" above is really annoying and doesn't bring anything to your argument.

Re:Lisping at JPL (2002) by __s on Saturday January 18, 2020 @05:49PM (#22087924)
Yep. From age 12 to 15 I messed around in Game Maker, didn't need anything else
Re:Lisping at JPL (2002) by crazypython on Saturday January 18, 2020 @09:29PM (#22088956)
Arras.io is an MMO with 50,000 monthly players. You can remix a version here. https://glitch.com/edit/#!/arras-template?path=README.md https://discord.gg/JrwVT3F Multiple people have learned to code using only Arras.io and its community.

I am doing a rearchitecture of the game's code.

Re:Lisping at JPL (2002) by earthboundkid on Saturday January 18, 2020 @10:23PM (#22089211)
FWIW, I was taught Scheme as a kid in nerd camp (maybe seventh grade?). I had previously learned BASIC. I didn’t notice anything very different. I didn’t understand it really. I didn’t use it once the summer was over, probably just because of lack of learning material.
Re:Lisping at JPL (2002) by pmelendez on Saturday January 18, 2020 @11:04PM (#22089387)
Re:Lisping at JPL (2002) by GFischer on Monday January 20, 2020 @10:22AM (#22099392)
I went to a talk by cognitive psychologist Dan Ariely, and he very much agreed: said that he tried to get girls into computer science, in Israel they had a 6-week introductory course, and that class SUCKED at getting kids interested (actually negative effect).

Ariely said there are actually better ways to get people interested, which is to show them something meaningful.

https://www.pscp.tv/w/1yNGapZbZElKj (see minute 15 and ahead)

Re:Lisping at JPL (2002) by gdubs on Monday January 20, 2020 @12:58PM (#22100680)
I can totally imagine a LISP inspired course of learning in a Montessori classroom. Elements, lists, functions — all somehow through physical, tactile objects.
Re:Lisping at JPL (2002) by didibus on Saturday January 18, 2020 @07:25PM (#22088456)
Quil is pretty cool for that: http://quil.info/

Also Clojure can use all of Java and JavaScript, so there's lots of tangible thing you can build. That said, here I'd mostly agree with you, the barrier to entry should be as small as possible, you just won't find the amount of tutorials and guides, and tooling that JS or Java would have on its own.

Re:Lisping at JPL (2002) by thom on Saturday January 18, 2020 @07:31PM (#22088489)
In case someone hasn't come across it, there are actually Clojure bindings for Unity:

https://github.com/arcadia-unity/Arcadia

Build on top of Clojure's CLR support, obv.

Re:Lisping at JPL (2002) by serf on Saturday January 18, 2020 @05:56PM (#22087970)
>You don't understand why kids would want to learn programming. At least those who do, want to learn because they can build cool things they can show off to friends.

I mean, this isn't true for everyone of course, but I began learning to code at around 8 or 9 years old because I was heavily interested in math and numbers, and precisely because I didn't have many friends (or brothers or sisters) to occupy my time with when I was very young.

I agree with the premise that the majority of folks learn better with a practical goal in mind, but I disagree with you that there exists only one kind of curious child.

I had a second-hand IBM XT from my fathers' shop at first, and I wanted to learn how to do things with it.

That equipment being available, in my opinion, was the biggest motivator in learning how to use it.

It was there for me to use, the limit was simply my knowledge of how to use it, and that was a very enticing proposition.

My first project as an 8 or 9 year old was a prime number generator (a naive sieve). I had read a book about patterns, and primes had been mentioned. I took a trip to the city library (another rarity statistically?) and picked up a guide to Pascal that was written towards small business owners and non-CS college students to help them with simple automation, and got to work looking up terms.

A week or two later I had a CLI program that spat out primes as fast as my computer (or my poor implementation..) could make them.

I then tried to use those primes to draw trippy pictures, which began another foray into programming topic that were new to me, necessitating more work looking up terms and generally haunting the library.

Years later, when I was a teenager, when I ran into like-minded computer folks and we'd get to talking, that same prime generator got spun into a small benchmarking suite that my friends and I toyed with before the multi-core trends.

so.. I guess that the "show it off to friends" thing still happened, but knowing myself and how I learn, I doubt that i'd have ever been interested in a hobby that was pushed towards me by authority figures as being useful.

I have a hard time conceiving how I would become a 'computer person' now-a-days, in fact. I was so anti-social and actively hostile towards teachers that the idea that one of them could have tutored me in the hobby , quite counter-intuitively, may have been the exact reason I would have avoided it as a child.

really, my grand tl;dr : "There is no one teaching method."

Re:Lisping at JPL (2002) by Waterluvian on Saturday January 18, 2020 @07:36PM (#22088516)
100% agree. As a kid all I cared about was making cool stuff. My code was a disaster. And I did just fine with Java anyways.

Python is great because of the massive ecosystem and the language is really simple. JavaScript is great because websites.

Re:Lisping at JPL (2002) by bgorman on Saturday January 18, 2020 @05:26PM (#22087760)
Why not Clojurescript? It has access to the whole JS ecosystem.
Re:Lisping at JPL (2002) by abraxas on Saturday January 18, 2020 @11:28PM (#22089474)
It feels like the Clojure community is kind of withering. Or maybe it's just perpetually stuck in the Lisp niche.
Re:Lisping at JPL (2002) by fulafel on Sunday January 19, 2020 @04:34AM (#22090409)
Interesting observation... not sure I get that from the Clojure community or from looking around.

Last year Clojure made it to #1 (2019), improving from #3 (2018) in the SO salary cahrts.

(https://insights.stackoverflow.com/survey/2019#top-paying-te... vs https://insights.stackoverflow.com/survey/2018#top-paying-te...)

Re:Lisping at JPL (2002) by scythe on Saturday January 18, 2020 @07:38PM (#22088524)
I've been teaching myself Clojurescript for the past three months, and while this might, in theory, be a good idea someday, the state of the Clojurescript tooling and learning materials I've used means that it is certainly not a good idea today.
Re:Lisping at JPL (2002) by Scarbutt on Saturday January 18, 2020 @05:36PM (#22087833)
Too much friction and incidental complexity for a kid, they will have to be familiar with JS anyway.
Re:Lisping at JPL (2002) by Oreb on Saturday January 18, 2020 @05:50PM (#22087941)
Why? Even as a professional developer, it’s extremely unusual that my cljs work requires any JS familiarity. I don’t see why a complete beginner would even need to know that JS exists.
Re:Lisping at JPL (2002) by Annatar on Sunday January 19, 2020 @08:46AM (#22091390)
Re:Lisping at JPL (2002) by SomeHacker44 on Saturday January 18, 2020 @05:17PM (#22087697)
I did teach my son Racket at age 8, as his first programming language. He was able to make a number guessing game in it. I think we used "Realm of Racket," but I don't recall, as it was some years ago. He's now midway through high school and not a single course at his STEM middle school or high school has come close to teaching him as much as he learned at age 8.
Re:Lisping at JPL (2002) by gowld on Saturday January 18, 2020 @05:49PM (#22087935)
That difference is more because classes are designed to be extremely slow and low paced so the worst student can pass. Learning anything with a personal tutor is much more efficient.
Re:Lisping at JPL (2002) by jhbadger on Saturday January 18, 2020 @05:11PM (#22087650)
In a way they did. in the 1980s, Logo was popularly taught in elementary schools, and while lacking sexps, it was clearly inspired by Lisp in the way it was a functional language in the way the other popular teaching language BASIC clearly wasn't.
Re:Lisping at JPL (2002) by perl4ever on Saturday January 18, 2020 @10:42PM (#22089295)
Logo may have more potential than it seemed at the time, but as it was presented in my school, there was not much to it, and I never investigated further after turning to BASIC and then compiled languages like Pascal and C.

I certainly agree with the comment that what matters at an early age is what you can do with a language. I wanted to make GUI applications or games, and Java and Javascript hadn't been invented yet.

Re:Lisping at JPL (2002) by qznc on Saturday January 18, 2020 @06:25PM (#22088111)
The point of Logo is not to teach programming but to teach geometry. At least that is what I took from the Paperts Mindstorms book. I never had Logo in school myself.
Re:Lisping at JPL (2002) by kamaal on Saturday January 18, 2020 @10:12PM (#22089146)
Yup. Turtle Geometry is a great book on this.

However if you dig deeper geometry is just the beginning eventual goal is to teach you to simulate movement of insects around light, predator-hunted scenarios etc.

Re:Lisping at JPL (2002) by bitwalker on Saturday January 18, 2020 @05:30PM (#22087793)
Yeah, I learned Logo in elementary school and it was something that stuck with me until I actually started programming later on in school. I particularly remember having to write a program to navigate a maze, it was a blast!
Re:Lisping at JPL (2002) by todd8 on Sunday January 19, 2020 @07:17AM (#22090997)
I've programmed for a very long time, and I've rather incidentally taught and tutored programmers at many levels of ability over the years including some friends that were trying to learn LISP. I see very little benefit in teaching elementary school kids to program in LISP.

My daughter took her first programming course in college and used the excellent book (HTDP), see [1], intended for beginners that used Racket as the programming language. By the end of the semester she was able to make a simple graphical game. I thought the course was very good and she liked it and still has a fondness for Racket although I believe that she has only used Java, C++, and Python since that class (she is now a CS major).

Learning Racket (which is Scheme and very closely related to LISP) worked out well for my daughter, so why would I say that LISP in elementary school isn't a good choice? Several reasons:

• Lisp isn't a popular language, ranking 28th on the TIOBE list of programming languages so there is far less opportunities to make use of programming ability in LISP than in other languages.

• Lisp isn't easy. The Common Lisp Standard is well over 1000 pages long. It lists over 1000 functions. Take a look at the basic iteration constructs, the most general is LOOP and has a whole chapter, see [2], in Peter Seibel's excellent Practical Common Lisp, but even the simpler DO construct is no cake walk[3].

• Recursion for elementary students... LOL

• Smart people have tried introducing LISP based programming to youngsters already and it didn't seem to take off. See Papert's LOGO language from the 80's. I've actually written some programs in it, but I don't remember where I got to use the language. (Perhaps it ran on the PLATO system?). I agree with a number of his insights[4].

Elementary school children don't understand functions and they really don't even understand basic math. The problem with LISP is that while it has an abstract simplicity that I find appealing and really quite beautiful, it's abstract nature is going to make it difficult for children. Less abstract systems like ALICE or SCRATCH seem a better fit if we insist on teaching kids to code.

I personally don't see the need to teach kids to code. Why not teach them math first. Why would programming come before understanding how to divide fractions or how polynomials work or what simple logical operations mean?

[1] https://en.wikipedia.org/wiki/How_to_Design_Programs

[2] http://www.gigamonkeys.com/book/loop-for-black-belts.html

[3] http://www.lispworks.com/documentation/HyperSpec/Body/m_do_d...

[4] https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsd...

Re:Lisping at JPL (2002) by haolez on Saturday January 18, 2020 @05:04PM (#22087606)
I would prefer Forth. It's simple and yet manages to be close to the hardware.
Re:Lisping at JPL (2002) by proximitysauce on Saturday January 18, 2020 @05:04PM (#22087610)
Forth would be great too. I think there's value in learning a stack based language. That being said I suspect LISP is more practical.
Re:Lisping at JPL (2002) by jes5199 on Saturday January 18, 2020 @05:06PM (#22087624)
they’re practically two sides of the same coin. I keep thinking it should be possible to build a toy language that has both a forth-like mode and a lisp-like mode, that use the same standard library
Re:Lisping at JPL (2002) by RodgerTheGreat on Saturday January 18, 2020 @09:55PM (#22089066)
I think you'd have to hobble Forth pretty badly to make it stand on the same level as Lisp. Lisp has too much hidden machinery- a garbage collector, environment structures, etc. You couldn't even represent forth's "/mod" without resorting to packing results into tuples. Forth is good because every piece of the compiler/interpreter is exposed, usable, and extensible. Lisp wants to keep its innards sealed off and abstracted from the hardware.
Re:Lisping at JPL (2002) by LargoLasskhyfv on Sunday January 19, 2020 @04:56AM (#22090485)
Have you ever heard of [1] https://en.wikipedia.org/wiki/POP-11 ?
Re:Lisping at JPL (2002) by abecedarius on Saturday January 18, 2020 @08:41PM (#22088759)
There was a language for calculators called Reverse Polish Lisp. (That's all I know about it.)

If I were to design a language matching that name, I guess it'd be basically Logo written backwards. This might be interesting for a live programming environment, because in Lisp you type a whole expression and and nothing happens till you hit enter; but on e.g. an old HP RPN calculator you see the state of the data change after every keypress. You could design an "RPL" to work that way too, though after every word instead of every key.

Re:Lisping at JPL (2002) by dfox on Saturday January 18, 2020 @07:24PM (#22088453)
Forth is more low level, ie. there is no object memory/GC at what one would describe as implementation level. On the other hand all the Lisp Machines essentially are hardware implementations of something vaguely Forth-like with some level of hardware support for lisp-style tagged pointers.
Re:Lisping at JPL (2002) by zentiggr on Saturday January 18, 2020 @09:54PM (#22089063)
A good way to jump over the low level implementation details is to look at Factor. Forth style but much better library and most of the low level constructs are baked in.

I can't say the documentation / tutorials that I've found are the best but it's definitely something.

Re:Lisping at JPL (2002) by flavio81 on Saturday January 18, 2020 @10:16PM (#22089170)
HP's "RPL" language, Reverse Polish Lisp, was basically that.
Re:Lisping at JPL (2002) by agumonkey on Saturday January 18, 2020 @05:28PM (#22087782)
the first who makes his 7yo write a scheme in Forth gets my grid laptop
Re:Lisping at JPL (2002) by kick on Saturday January 18, 2020 @05:53PM (#22087960)
This isn't at all implausible: one of you should take 'agumonkey up on this! I wrote my first Scheme interpreter at 11, and an older friend of mine taught me Forth a bit before that. I wrote my interpreter with a bootleg (and ancient) APL2 copy, though.

With parental guidance, a 7 year old could totally do this. Figuring out how to handle the stack will be the trickiest part, and there are a few examples online of this, so if you nudge them in the direction of others' work, they should be able to get it pretty quickly. They'd finish it by the time they're 8, at least.

Re:Lisping at JPL (2002) by dnautics on Saturday January 18, 2020 @05:27PM (#22087771)
I learned lisp (edscheme) in elementary school. Wrote a language interpreter in 4 weeks. Interestingly, 2 of my 3 my favorite languages are very lisp-inspired (but of course, without the parentheses)
Re:Lisping at JPL (2002) by Impossible on Saturday January 18, 2020 @05:49PM (#22087933)
Which languages? JavaScript and Lua?
Re:Lisping at JPL (2002) by dnautics on Saturday January 18, 2020 @07:48PM (#22088560)
Elixir and Julia. The third is Zig.
Re:Lisping at JPL (2002) by shagie on Saturday January 18, 2020 @09:20PM (#22088928)
They did teach it in elementary school once upon a time. From https://en.wikipedia.org/wiki/Logo_(programming_language)

> Logo is a multi-paradigm adaptation and dialect of Lisp, a functional programming language.

A summary of the language: http://wla.berkeley.edu/~cs61a/fa11/61a-python/content/secti...

Or the guide for grade schoolers http://www.educa.fmf.uni-lj.si/logo/doc/Apr.96/chpt8.pdf

And yes, I remember making the snowflake back in the early 80's on an Apple ][+ in the grade school computer lab.

Re:Lisping at JPL (2002) by SkyMarshal on Saturday January 18, 2020 @05:14PM (#22087680)
On the subject of education, pg links to a great story on Scheme (a Lisp 1) in education [1] from his essay "Beating the Averages" [2]. The story references a book, "A Schemer's Guide" that is a good Scheme/Lisp or programming learning reference [3].

If you know folks learning programming for the first time and maybe struggling with Java or whatever they're using, these references may help. Sometimes you just need to see things like recursion or currying in a different way for it to click.

[1]:http://www.trollope.org/scheme.html

[2]:http://www.paulgraham.com/avg.html

[3]:https://www.worldcat.org/title/schemers-guide/oclc/24430531

[4]:https://schemers.org/Documents/ (more Scheme resources)

[5]:https://en.wikipedia.org/wiki/Lisp-1

Re:Lisping at JPL (2002) by astrobe_ on Saturday January 18, 2020 @09:11PM (#22088884)
I think being interested in programming or not is pretty much like sexual preferences: there's nothing you can do about it, and it is not their fault ;-).
Re:Lisping at JPL (2002) by goatinaboat on Sunday January 19, 2020 @08:38AM (#22091358)
I really feel like they should teach LISP in elementary school

They used to... LOGO is a LISP.

Re:Lisping at JPL (2002) by pyuser583 on Saturday January 18, 2020 @10:19PM (#22089187)
With great simplicity comes great complexity.
Re:Lisping at JPL (2002) by kyle_grove on Saturday January 18, 2020 @07:26PM (#22088458)
One might not to want to teach LISP first, for the same reason I wouldn't teach explicit shot mechanics to a six year old playing basketball.
Re:Lisping at JPL (2002) by VLM on Sunday January 19, 2020 @11:03AM (#22092080)
The entire discussion has so far had no educational perspective.

There are only five memes to make educational curriculum decisions.

1) Most arguments for programming are from programmers who had fun learning to program and if the purpose of K12 is fun, then all kids should have mandatory enforced fun time which means learning to program. Which will not work for maybe 99% of society, although they will be subject to the curriculum. I had fun playing kickball; the purpose of school is to create an entertaining daycare like environment; therefore all kids should be forced to spend lots of time playing kickball. What about learning, or kids that don't enjoy kickball (or lisp?)

2) We have to prep our 5 year olds by teaching solely vocational skills because nothing will change in programming for the next 12-16 years. I'm old enough to remember "vocational training" that amounted to memorizing ancient versions of already obsolete Excel menus and keystrokes. Utterly useless. We like to think "Clojure K12" would be teaching Clojure, we all know its going to degenerate to drill and kill multiple choice tests about emacs keystrokes. A giant scantron test of multiple guess questions asking what C-X C-C does in emacs or what does M-f do, isn't going to help kids in the real world 30 years later. Better off teaching them welding, industry trends seem to imply TIG is a forever skill?

3) We teach critical thinking skills and frankly kids that can't conceptually understand and solve X+1=2 for X are not going to get anything out of programming that they wouldn't get better out of algebra or geometry. And what do we drop from the curriculum to add Clojure? Sorry kids you're not going to learn Trig?

4) We'll do what the cool kids do. If the cool kids district buys ipads, we need ipads. We had millions invested involving no further reasoning. Is the cool kids district using LISP? No? Well at least a third of districts won't even consider it, then.

5) The school board makes all curriculum decisions and they got and keep their job based on religion and/or politics and LISP isn't hitting the election issue hot buttons quite like a nice argument about creation science in biology class or sex ed or the new stadium for the football team.

Industry does not like LISP because is its very expressive and the programmer has the freedom to express any crazy problem solving idea they have in their head. The problem is the human condition of education for the last couple millennia shows its really kinda hard to take a hyper-customized brain dump of ... anything ... from one head into the other. So, it can do anything, any way you'd like, is too much anarchy for any shared work. How this applies to K-12 is if you think grading essays is a PITA imagine trying to grade large LISP projects.

Re:Lisping at JPL (2002) by liveoneggs on Monday January 20, 2020 @09:39AM (#22099074)
hey my 1st grader is getting an ipad at school next month to "engage in 21st century learning"
Re:Lisping at JPL (2002) by gowld on Saturday January 18, 2020 @05:48PM (#22087920)
Scratch is a better introduction and wildly popular. Scheme is good middle school math classes -- it's smart but doesn't get things done easily. Python is great for getting cool stuff built once kids can handle syntax.