4 ms·
I appreciate that
by gte525u 10y ago
I appreciate that
- lisper 10y agoOK, I got a reply, but it was off the record so I can only pass along my own interpretation of it here. It turns out I was wrong when I said that the reason Ada didn't get used more was that it didn't scale. It did. It worked just fine on Cassini, and there was no reason based on that experience to believe that it wouldn't work on other spacecraft. The reason it wasn't used more turns out to be the same reason Lisp wasn't used more: politics. Cassini was being developed at the same time as the Pathfinder mission Because Pathfinder was done on a (relatively) low budget, they used C because it was easier and cheaper to get C coders and compilers than Ada coders and compilers. Pathfinder was seen as the way of the future while Cassini was perceived as part of the stodgy (and expensive) past, so subsequent missions were built on top of the Pathfinder C code base and not the Cassini code base. Ironically, it was the same event that killed Lisp which also killed Ada, though the effect was less direct. The Remote Agent was originally going to be the mainline software that controlled the entire DS1 mission. But when it became clear that the RA would not be ready in time, management decided to demote the RA to a flight experiment and adapt the Pathfinder software to run the DS1 mission. Because the Pathfinder mission itself was over, the team was available, while the Cassini team (the Ada folks) were still busy working on Cassini. By the time the Cassini mission ended [1] and the people with Ada experience became available again, C was already entrenched as the new de facto standard for slight software. The success of the subsequent Mars missions, and particularly the spectacular success of the Mars Science Laboratory EDL (which, I have to say, was freakin' amazing) further cemented the status of the Pathfinder approach to software development. I have to give the C folks a lot of credit here: they have produced an awful lot of very reliable code for a very long time now. But I still think they're playing with fire. [1] The Cassini software development team actually became available before the end of the mission, but they were still needed through the Saturn oribit insertion in 2004.
- gte525u 10y agoThanks for the response!
- lisper 10y agoYou bet.
- gte525u 10y agoActually have one more question if you don't mind - I've done a fair amount of both lisp and embedded (vxworks or baremetal). I've been tempted to push lisp or scheme as a prototyping environment for higher level (i.e., UI or some other non-RT) code. I've always had some amount trepidation due to GC pauses, and memory exhaustion. Are there any papers on the actual lisp ports? Are there any gotchas?
- lisper 10y ago> Are there any papers on the actual lisp ports? No. The flight Lisp was just a commercial product: LispWorks. You can probably get detailed info from them. We also used CLisp and (what is now) Clozure Common Lisp for development. > Are there any gotchas? From Lisp? No, not really. In fact, I was pleasantly surprised at how easy it was to port the code from one Lisp to another. That part mostly Just Worked.