[HN Gopher] The Rise and Fall of Lisp at JPL
       ___________________________________________________________________
        
       The Rise and Fall of Lisp at JPL
        
       Author : sandinmyjoints
       Score  : 84 points
       Date   : 2020-01-18 21:34 UTC (1 hours ago)
        
 (HTM) web link (flownet.com)
 (TXT) w3m dump (flownet.com)
        
       | FpUser wrote:
       | I think it is not so much a testament to Lisp as to a talents of
       | a people who wrote the software. I've met some of those. Give
       | them anything and they'll still produce stunning results. Those
       | were real doers. Can't even call them programmers, they had
       | something better: brains size of f..ng Manhattan.
        
       | AceJohnny2 wrote:
       | (2002)
       | 
       | Author is @lisper around here. They've mentioned this story a few
       | times.
        
       | Rochus wrote:
       | Here is another interesting article by Garret (i.e. Erann Gat):
       | http://www.flownet.com/gat/papers/lisp-java.pdf
        
       | [deleted]
        
       | proximitysauce wrote:
       | 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...
        
         | SkyMarshal wrote:
         | 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
        
         | SomeHacker44 wrote:
         | 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.
        
           | gowld wrote:
           | 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.
        
         | cocktailpeanuts wrote:
         | 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.
        
           | serf wrote:
           | >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 had a second-hand IBM XT from my fathers' shop at first,
           | and I wanted to learn how to do things with it.
           | 
           | 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.
           | 
           | 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."
        
           | bgorman wrote:
           | Why not Clojurescript? It has access to the whole JS
           | ecosystem.
        
             | Scarbutt wrote:
             | Too much friction an incidental complexity for a kid, they
             | will have to be familiar with JS anyway.
        
               | Oreb wrote:
               | 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.
        
           | [deleted]
        
           | invalidOrTaken wrote:
           | 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.
        
           | mdtusz wrote:
           | 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).
        
           | WalterBright wrote:
           | > 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.
        
           | kick wrote:
           | John Carmack seems to disagree.
           | 
           | https://twitter.com/id_aa_carmack/status/569688211158511616?.
           | ..
           | 
           | https://groups.google.com/forum/#!topic/racket-
           | users/yjRuIxy... (Make sure to look around in this thread; he
           | has a few comments.)
           | 
           | https://twitter.com/id_aa_carmack/status/635839636754038784?.
           | ..
        
             | cocktailpeanuts wrote:
             | 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.
        
               | kick wrote:
               | He successfully taught his child Lisp, in a way that
               | caused that child to release a video game. He didn't
               | forget anything.
        
           | Oreb wrote:
           | 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.
        
             | cocktailpeanuts wrote:
             | 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.
        
           | __s wrote:
           | Yep. From age 12 to 15 I messed around in Game Maker, didn't
           | need anything else
        
         | dnautics wrote:
         | 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)
        
           | Impossible wrote:
           | Which languages? JavaScript and Lua?
        
         | haolez wrote:
         | I would prefer Forth. It's simple and yet manages to be close
         | to the hardware.
        
           | agumonkey wrote:
           | the first who makes his 7yo write a scheme in Forth gets my
           | grid laptop
        
             | kick wrote:
             | 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.
        
           | proximitysauce wrote:
           | 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.
        
             | jes5199 wrote:
             | 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
        
         | jhbadger wrote:
         | 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.
        
           | bitwalker wrote:
           | 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!
        
         | gowld wrote:
         | 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.
        
       | zerr wrote:
       | I'm glad that Lisp is not used in spacecraft control system.
        
         | exdsq wrote:
         | Why?
        
           | dboreham wrote:
           | Leave out one parenthesis and...you miss Venus?
        
             | exdsq wrote:
             | I've read that they use Matlab which suffers from the same
             | issues
        
             | ken wrote:
             | Leave out one parenthesis and your program doesn't compile,
             | i.e., exactly the same failure mode as almost any other
             | language.
        
             | coldtea wrote:
             | This isn't even worthy of Reddit
        
           | [deleted]
        
         | GhettoMaestro wrote:
         | Why? (Legitimately asking)
        
         | coldtea wrote:
         | Yes, they only mentioned several wild successes, why would they
         | want to continue having them?
        
       | cbanek wrote:
       | This just reminds me of how many times I've been told things like
       | "you can't use that java code that is open source and working and
       | does exactly what we want - we're a python shop!" and other such
       | nonsenses.
       | 
       | I'm always amazed at how people have strong feelings for the
       | tools/languages, rather than what they do and how they can help
       | you. Even in this example, the Google person didn't even ask what
       | they wanted to use Lisp for.
       | 
       | People I guess just really like rewriting software in different
       | languages?
        
         | zxcmx wrote:
         | It's situation dependent right?
         | 
         | As an engineering manager, you _could_ support every team or
         | even every individual using whatever they like - but you then
         | have other tradeoffs to make.
         | 
         | It's now not possible to run security tooling over everything
         | or use a common artifact repository or follow common coding
         | guidelines or linter settings and you'll get islands of
         | language culture and endless internal reinvention and
         | rewriting.
        
         | pritovido wrote:
         | For me it makes lots of sense, it is not "nonsense".
         | 
         | Java is a gigantic dependency. Any project that depends on it
         | adds all this dependency with it. In many cases this dependency
         | could be bad or toxic for the project.
         | 
         | It depends of what you do for a living. Personally I will never
         | let anyone include java as a dependency in my company's
         | projects, because for what we do, java is slow and linked to
         | Oracle.
         | 
         | Lisp is a different story. You can create c ,Python, Lua,c++ or
         | whatever code from Lisp easily.
        
         | rb808 wrote:
         | Ugh, you haven't experience pain until you've worked on a
         | project which has a bunch of different languages because Johnny
         | wanted to use Scala, Freddy loved PERL and Sally was learning
         | Elixir on the side. They all left and the new team has to
         | figure out how all these stupid languages even build.
        
       ___________________________________________________________________
       (page generated 2020-01-18 23:00 UTC)