[HN Gopher] Forth in Space Applications
       ___________________________________________________________________
        
       Forth in Space Applications
        
       Author : Bluestein
       Score  : 65 points
       Date   : 2021-02-17 10:40 UTC (10 hours ago)
        
 (HTM) web link (www.forth.com)
 (TXT) w3m dump (www.forth.com)
        
       | pinewurst wrote:
       | (2003)
        
       | MaxBarraclough wrote:
       | Somewhat related: NASA are listed as a customer of VFX Forth.
       | 
       | https://vfxforth.com/#customers
       | 
       | See also _Who uses Forth_ on Forth.com
       | 
       | https://www.forth.com/resources/who-uses-forth/
        
       | the_only_law wrote:
       | Would be cool if the source for any of these was available.
        
       | sitkack wrote:
       | I really enjoy forth for interactive embedded development, it has
       | one downside in the inability afaik to do static analysis of
       | forth programs. Seeing a skilled engineer bring up a new
       | multiboard system over a serial link in an afternoon and write
       | system tests insitu had me sold. I did something similar years
       | later with a hardware control application in Java by using Jython
       | to get a remote low level repl.
       | 
       | Forth tends to be one step in bootstrapping a system, or it is so
       | small that it is correct by observation. Forth is powerful, but
       | the systems that use it should be held to a small size.
       | 
       | I think for the most part, Python/MicroPython now occupies the
       | same place Forth once did in the embedded world. As MCUs get more
       | capable and default to more memory, not only will higher level
       | interpreted languages become the norm, low level languages can be
       | integrated via Wasm, either compiled or interpreted on device.
        
         | 0xdeadbeefbabe wrote:
         | > As MCUs get more capable
         | 
         | Doesn't power consumption go up as MCUs get more capable?
        
         | astrobe_ wrote:
         | > it has one downside in the inability afaik to do static
         | analysis of forth programs
         | 
         | I believe it is possible with annotations, at least for basic
         | checks, and assuming you don't go too crazy (e.g. returning a
         | variable number of results depending on the inputs).
         | 
         | > I think for the most part, Python/MicroPython now occupies
         | the same place Forth once did in the embedded world
         | 
         | Lua is a bit closer: REPL, quite efficient, and is not a
         | kitchen sink. Python is more like BASIC (Beginner's All-purpose
         | Symbolic Instruction Code).
        
         | jvanderbot wrote:
         | > As MCUs get more capable and default to more memory, not only
         | will higher level interpreted languages become the norm, low
         | level languages can be integrated via Wasm, either compiled or
         | interpreted on device.
         | 
         | Not long ago, during the emergence of SoCs, this statement was
         | uttered regarding Java, for both real time (JRT) and "regular"
         | low-level applications. The story went, you could simply write
         | Java and push it to your bytecode interpreter implemented in
         | hardware. How convenient! It turned out differently. And now
         | here we see Python, mPython, WASM, etc.
         | 
         | I think that nobody used it because nobody used it: The
         | ecosystem didn't evolve along with the capabilities.
        
           | sitkack wrote:
           | I really enjoyed the fits and starts of high level embedded
           | programming, we see an analogous evolution in terms of high
           | level hardware description languages. Bluespec, Chisel,
           | nMigen, etc.
           | 
           | There was such a large barrier between the practitioners that
           | were shipping (C/asm) vs high level folks (formal methods,
           | functional programming, etc). We routinely brought up
           | embedded DSP systems with a Forth based monitor. An idea can
           | be excellent, but if it doesn't have an adequate host to
           | spread or a vector it goes no where. Forth was awesome in
           | Astronomy because it could spread there. Just like KX/KDB can
           | spread in the financial ecosystem.
           | 
           | Folks are doing real work using micropython repls directly on
           | hardware. You can go from idea to shipping something in an
           | afternoon.
           | 
           | Folks might talk about power or resources, but both are a
           | factor in Moore's law which still very much a thing. And the
           | hot inner loop can be written with power and space in mind.
           | 
           | The pricepoint for an MCU that could run a high level stack
           | was about 8-10$ 10 years ago, now it is less $1. In hindsight
           | the ESP32-C3 will be an inflection point.
           | 
           | I am curious, is NASA looking at Wasm for space and
           | aeronautics applications? What are your thoughts on high
           | reliability languages? What are the current hot topics in
           | autonomous probes? Are the same things that are going on with
           | self driving vehicles also transferring to self navigating
           | probes? How far away are we from <launch probes> and it just
           | sends back interesting results? ;)
        
       | Bluestein wrote:
       | "The following table presents space-related applications of Forth
       | microprocessors and the Forth programming language, including:
       | 
       | spacecraft flight system controllers
       | 
       | on-board payload experiment controllers
       | 
       | ground support systems (e.g., communications controllers and data
       | processing systems)
       | 
       | hardware or software used to build or test either flight or
       | ground systems."
        
       ___________________________________________________________________
       (page generated 2021-02-17 21:02 UTC)