[HN Gopher] Lisping at JPL (2002)
       ___________________________________________________________________
        
       Lisping at JPL (2002)
        
       Author : adityaathalye
       Score  : 90 points
       Date   : 2025-05-22 08:31 UTC (3 days ago)
        
 (HTM) web link (flownet.com)
 (TXT) w3m dump (flownet.com)
        
       | adityaathalye wrote:
       | Tells one of my all-time favourite stories.
       | 
       | > 1994-1999 - Remote Agent
       | 
       | > _Debugging a program running on a $100M piece of hardware that
       | is 100 million miles away is an interesting experience. Having a
       | read-eval-print loop running on the spacecraft proved invaluable
       | in finding and fixing the problem. The story of the Remote Agent
       | bug is an interesting one in and of itself._
        
         | tonyarkles wrote:
         | Not quite the same scale but one of my personal favourite
         | stories involved hardware buried under a highway. The Ethernet
         | stopped working, but the PoE was still ok. We had the foresight
         | to install a serial line to the console on the equipment too.
         | This meant that I could power cycle the hardware at will
         | (through the managed PoE switch) and talk to the boot loader
         | (U-boot) over serial. While not exactly a REPL in the
         | conventional sense, it had enough functionality to be able to
         | talk directly to the MAC and PHY to determine what was going
         | on.
         | 
         | Sadly we couldn't convince it to work, even at 10 Mbit. My
         | suspicion is salt water ingress into the vault. What we did
         | manage to do, though... There were just enough tools installed
         | on it that I could cross-compile zmodem at home, convert it to
         | a hex file, upload the hex file by essentially just running cat
         | > on the target, convert it back into a binary using... Perl I
         | think? Or xxd? And then doing the daily data offload over
         | zmodem every night instead of over TCP as was originally
         | planned. It was a crazy weekend...
        
           | anthk wrote:
           | Uboot compared to Forth it's very odd to use.
        
             | markus_zhang wrote:
             | Can you please elaborate? Thanks.
        
           | jazzyjackson wrote:
           | Neat. I'm curious about long run serial as someone who's only
           | done arduino stuff at 5V, what does industrial serial talking
           | over a miles long connection look like? Higher voltage?
           | Repeaters?
        
         | potholereseller wrote:
         | Unfortunately, the relevant link in the TFA is dead, but IA has
         | it: <https://web.archive.org/web/20111019054900/http://ti.arc.n
         | as...>.
         | 
         | Here's some interesting quotes:
         | 
         | > during a task's release of a lock, but before its actual
         | release, the task may get interrupted by the daemon if the
         | property gets broken. This means that the task terminates
         | without releasing the lock. The error is particularly nasty in
         | the sense that all code, except the lock releasing itself, had
         | been protected against this situation: in case of an interrupt
         | the lock releasing would be executed.
         | 
         | > The modeling effort, i.e. obtaining a PROMELA model from the
         | LISP program, took about 12 man weeks during 6 calendar weeks,
         | while the verification effort took about one week. ... The
         | translation phase was non-trivial and time consuming due to the
         | relative expressive power of LISP when compared with PROMELA.
         | 
         | > Java PathFinder (JPF) is a translator from a non-trivial
         | subset of Java to PROMELA.
         | 
         | > The translator is written in 6000 lines of LISP, and was
         | developed over a period of 8 months. JPF has been applied to a
         | number of case studies, amongst them a 1500 line game server, a
         | NASA file transfer protocol for satellites, and a NASA data
         | transmission protocol for the space shuttle ground control.
        
       | anthk wrote:
       | Forth would be a good choice too. No GC, use 'forget'.
        
         | adityaathalye wrote:
         | Forth, in fact, is. https://www.forth.com/resources/space-
         | applications/
        
           | ssrc wrote:
           | 'Was' is more likely. The list is from 2003, and if FORTH
           | Inc, the (only? biggest?) remaining forth company hasn't
           | updated it...
        
             | anthk wrote:
             | Forth is used in firmware and tons of places. There's ANS
             | Forth and no need to 'update' anything, as there are tons
             | of implementations.
             | 
             | As with Lisp, you can bootstrap themselves with very few
             | primitives.
        
         | lisper wrote:
         | We used Forth back in the day as well, running on 6811
         | microcontrollers. Forth was also used on the Galileo
         | Magnetometer, and we used Lisp to develop a patch for it in
         | flight.
         | 
         | https://github.com/rongarret/gll-mag-patch/
        
       | anthk wrote:
       | Also, as a very tiny and minimal Lisp:
       | 
       | http://t3x.org/zsp/index.html
       | 
       | Easier than SICP for Scheme and Intro to Symbolic Computation for
       | Common Lisp.
        
       | jmclnx wrote:
       | > The demise of Lisp at JPL is a tragedy. The language is
       | particularly well suited for the kind of software development
       | that is often done here
       | 
       | That is a shame, but this can be said about many languages of
       | time past. Do schools even teach lisp these days ?
       | 
       | IMO, another casualty of our WEB only environment :(
        
         | Lyngbakr wrote:
         | > Do schools even teach lisp these days ?
         | 
         | IIRC, grads that I interviewed from the University of Waterloo
         | tended to have experience in Racket.
        
       | adamgordonbell wrote:
       | Version with some pictures here:
       | 
       | https://corecursive.com/lisp-in-space-with-ron-garret/
       | 
       | It's an interview I did with Ron Garrett about the history of
       | Lisp at the JPL.
        
       | anthk wrote:
       | Very tiny Lisp, Forths and some Pascal like at http://t3x.org
       | 
       | One of them whole numbers as lists. I saw no floats, but there
       | are fractional numbers.                   (- '#2 '#3)         =>
       | '#-1
       | 
       | If you want to know what is truly Lisp about:
       | 
       | Easy mode:
       | 
       | http://t3x.org/zsp/index.html
       | 
       | You are Alonzo Church reincarnated:
       | 
       | http://t3x.org/clc/code.html
        
       | hatmatrix wrote:
       | > At the time it was more or less taken for granted that AI work
       | was done in Lisp. C++ barely existed. Perl was brand new. Java
       | was years away. Spacecraft were mostly programmed in assembler,
       | or, if you were really being radical, Ada.
       | 
       | Given the choices, Lisp made a lot of sense when they started.
       | After 2001-2004, there were other options - not to say they were
       | necessarily better, but a mainstream language that enables a
       | large number of people working together (interchangeably) has its
       | value. Lisp is indeed "one-of-a-kind, highly dynamic applications
       | that must be developed on extremely tight budgets and schedules"
       | - but has a reputation for fostering lone geniuses and bad for
       | large teams working together and maintaining legacy codebases.
       | 
       | (I write this as a big fan of Lisp.)
        
       | anthk wrote:
       | >enginner >can't do anything with 128MB. In 2002.
       | 
       | In my country an Engineer with a Bachelor would implement a Forth
       | in KB's in days by just reading the specs or books related to
       | building one.
       | 
       | A Microlisp maybe in weeks.
        
       | lisper wrote:
       | Author here. This pops up on HN regularly, which I'm happy to
       | see, but it's pretty dated at this point. Here is a more recent
       | update:
       | 
       | https://blog.rongarret.info/2023/01/lisping-at-jpl-revisited...
       | 
       | And, as always, AMA.
        
       ___________________________________________________________________
       (page generated 2025-05-25 23:00 UTC)