Development of an onboard application in Clojure for the Boeing 737 Max [video]
youtube.com
youtube.com
I chuckled on this. Pun intended? :)
https://en.wikipedia.org/wiki/DO-178C#Software_level
The OMF system described in the video is Level E, meaning it's failure would have no safety impact on the aircraft. This gives us greater latitude in choice of software solutions. The higher levels, however, have strict requirements regarding latency and memory management that would automatically preclude the use of Clojure or any language with garbage collection.
So, as always, it's selecting the right tool for the job.
> At present, more than 98 system types have been certified using SCADE DO-178B/C certified tools, for more than 53 aircraft programs, by multiple certification authorities, worldwide, such as the FAA, EASA, Transport Canada, and ANAC, for Levels C to A.
http://www.esterel-technologies.com/industries/do-178b-and-d...
So, in short, developing for aerospace is not agile. :-) It's the Niagara Falls of waterfall methods.
Of course, there may be private repositories which are larger (thus the weasel words "one of"). Corrections welcome. :-)
http://www.ccs.neu.edu/home/samth/typed-clojure-draft.pdf
I wonder how their move away from clojure.typed has impacted code size.
But as Tim pointed out auditing of open source projects had most far smaller than 16k. Lamina a very feature rich library I think was on the order of 6k.
Perhaps I should have gone with "Clojure on planes" as my title.
I get 17k in your project with find . -name ".clj" | xargs wc -l but 8k if I run 'find . -name ".clj" | xargs egrep "[)\]]" 2> /dev/null | wc -l'.
If I just run `wc -l` on our project I get 35k lines.
8k SLOC is still a pretty impressive size project considering the audit of several open source projects that I did were mostly below 8k SLOC.
Then I summed both robinson and zaffre (0.4.0 branch) seeing as they both used to be part of the same project and have only recently been separated.
I'm pretty sure my code has more bugs than yours, though :-)
Anyway, very interesting presentation, thanks - it's great to see a project like this in a space I wouldn't have expected it. I'm very surprised (and pleased) to know that Clojure is on Boeing's approved language list - I'd love to know how that came about.
[1] https://www.openhub.net/p/apache-storm/analyses/latest/langu...
When things are passed around by reference, it becomes very difficult to guarantee the scope of any change. Even when using immutable data structure libraries in a mutable by default language doesn't really give you many guarantees. As soon as somebody puts a mutable object into your immutable data structure all bets are off. So, you really want a language that defaults to immutability and has different semantics for working with mutable data.
Interesting presentation, although I noticed Donevan used a few acronyms that some people may not be familiar with.