6 ms·
It is great to see Haskell being 'used' in the 'space-science industry' (please tell me a good word for this) I would love to read more about mainstream functi
by z3phyr 12y ago
It is great to see Haskell being 'used' in the 'space-science industry' (please tell me a good word for this)
I would love to read more about mainstream functional language being used in scientific domains like CERN, ESA, NASA or SpaceX.
- outworlder 12y agoThe industry appears to be very risk-averse (even though they have their reasons), so I'd be surprised to see a modern, functional language being used for critical tasks. However, C++ sometimes is used for those tasks, which boggles the mind. Then again, that might just be a wrong impression I got from reading, among other things, "Lisping at JPL" (http://www.flownet.com/gat/jpl-lisp.html http://www.flownet.com/gat/jpl-lisp.html)
- thu 12y agoA good use case for Haskell is to generate C code in a way that make it easier to assess its safety. See e.g. http://smaccmpilot.org/languages/ivory-concepts.html http://smaccmpilot.org/languages/ivory-concepts.html or Galois' work.
- davidkellis 12y agoI think you hit the nail on the head about the space industry being risk averse. I think that guides a lot of their decision making. I took a compiler class that was taught by the inventor (Dr. Daniel Cooke) of another functional language, SequenceL (see http://en.wikipedia.org/wiki/SequenceL http://en.wikipedia.org/wiki/SequenceL). Cooke had funding from NASA to develop SequenceL because evidently NASA was/is very interested in program correctness (it's hard to guarantee correctness of a C++ program) and a simplified programming model. The way Cooke explained it in class, SequenceL was born out of a desire for a simpler programming language (he believed that modern programming languages are too complex - so many require extra tooling to be productive) and a desire to make the implementation of a program as close as possible to the definition of the problem. He reasoned that if you could make an executable specification (i.e. the definition of the problem was executable), then all the mistakes that implementers make while implementing a program based on the problem specification/requirements would go away. In other words, since the definition of the problem would be the implementation, zero implementation mistakes would be made. Interestingly enough, the first SequenceL interpreter and compiler was written in Haskell.
- maaku 12y ago> However, C++ sometimes is used for those tasks, which boggles the mind. That's because the people making such decisions are not the ones qualified to do so (see the Lisping at JPL article you linked to). Their logic is probably along the lines of "if it's good enough for industry, ..." -- that's not an ellipsis, it is literally as far as the thought probably went. Source: I worked at NASA for 4 years.
- platz 12y agoextremely complex software such as what the F-35 runs on, is all C++ https://news.ycombinator.com/item?id=7628746 https://news.ycombinator.com/item?id=7628746
- maaku 12y agoAnd?
- AnimalMuppet 12y agoI presume, "... and that's mission-critical in the same way that NASA's stuff is. Therefore, the idea that you can't/shouldn't do mission-critical software in C++ is mistaken." Note well, though, that the coding standards strictly limit the C++ features you can use. It's not done the way your average bunch of C++ code cowboys sling out an application.
- maaku 12y agoThat doesn't negate what I was saying in the slightest: project managers are picking unsafe languages like C++ for safety critical applications for non-technical/ignorant reasons. F-35 is a similar example (worse because the contractor was probably at fault here: using C++ made the software system go way over budget on a cost-plus contract, and will likely result in larger maintenance contracts down the road. That's a win-win as far as the contractor is concerned...)
- kisielk 12y ago
- elwell 12y ago> Then again, that might just be a wrong impression I got from reading I have a friend who worked on autopilot obstacle avoidance for airplanes and I believe they did indeed use C++. It does seem a little primitive / bug-prone compared to some more high-level langs.
- Raphael 12y agoAstronautics.