Caleb Kraft: Thanks for talking with me, David. I recently talked with Amalaye Oyake about the Spacecraft Flight Software Workshop, and one of the things that really stood out to me was that he mentioned open-source software being used in space programs. I was previously unaware of this and found it quite interesting. Can you expand on that a little bit?
David Smyth: Sure. It isn't just the European space agencies, either. Some smaller commercial agencies here in the States go that route, too, like Millenium Space Systems. The big aerospace places have literally tens of thousands of employees. We don't, so we can't really just decide to create our own language and use it. Plus, the rate of change of technology is so fast that no single company can hold it all.
On one of the systems I'm using right now for one of our projects, I was just going through the git log, and there were over 30 people who had submitted commits to this log -- this month. That's a lot of people contributing who don't even work here. That synergism allows software to evolve really fast and yet to be really worked out.
We were using a fairly expensive commercial package. Then we downloaded an open-source piece of software that had a zillion test cases. We ended up finding that this expensive commercial package was failing in many ways. With the open-source world, in order to get your patch accepted into the package, it has to survive peer review. It results in software that you can confirm works. That is a big, big difference, and it allows us to be a lot more technologically aggressive.
You know, I actually have a story about open-source and the JPL -- 1995, we were developing the Mars Pathfinder. I was on that team. One of the guys on the team was very fresh out of school. The web had just started happening, and we had just got Mosaic. We thought it was pretty cool. We thought, "This web thing might amount to something."
We had a fixed budget, so we decided, "Let's try not to print anything." We wanted to make our source code browseable for review.
This guy made a perl script that would generate html and links to allow you to browse through the code. Then you could just send an email to the subsystem engineer to have them review it. They all loved it. It was easy to read, the logic was simple, and people were commenting well. We weren't getting the complaints we had been getting before during the review process.
We put this on one of those machines at JPL that just happened to be connected to the outside world. I could actually log in and browse from home. Then we put a link on the public outreach page that you could click on and download the code. We did that so university students could see what real flight software actually looked like. This project was completely open, so there was no reason to hide it. Since this project was being paid for by the public, we shared everything with the public.
Then one day, the system administrator was looking at logs and saw that someone from Japan and a couple other people across the globe had methodically downloaded every single file. He waved a flag, and eventually the inspector general of NASA saw it and responded that we were violating ITAR. Then they descended upon the project and threatened to throw the project manager and me and some of the other people in jail. It was a mess. The end result was that we couldn't share things. Which is odd, because perl was developed at JPL. But now it is still unusual to see projects shared openly.
If you'd like more, you're just going to have to go register for the workshop.
— Caleb Kraft, Chief Community Editor, EE Times