News for hackers. Stuff that matters.
Re:Why 40-Year Old Tech Is Still Running America's Air Traff... by forgottenpass on Tuesday March 03, 2015 @11:33AM (#9138562)
I'm a programmer, I am not ashamed of that. But realistically the way I work is in no way transferable to a safety critical system.

I'm a programmer on a safety critical system. It doesn't require getting a PE, it requires a good quality system and a sizable amount of scorn towards the forces that want to reduce our profession to nothing more than a trendhopping slapdash self-congratulatory shitshow.

Re:Why 40-Year Old Tech Is Still Running America's Air Traff... by 0xdeadbeefbabe on Tuesday March 03, 2015 @11:46AM (#9138679)
I'll guess that you don't use "provably correct" functional programming out of scorn for trendhopping etc. Am I right?
Re:Why 40-Year Old Tech Is Still Running America's Air Traff... by foldr on Tuesday March 03, 2015 @07:43PM (#9141968)
It's possible to prove the correctness of non-functional code too. It also tends to be much easier to reason about the time and space behavior of code written in, say, C. In a system with hard real time requirements that's very important.

You also have to consider the compiler. Proving that your Haskell code is correct is largely pointless if you then compile it with a compiler that hasn't been proven correct. At a minimum that's going to mean compiling the code with a lot of the fancier optimizations turned off, which can lead to a rather severe degradation in performance in the case of a pure functional language.

My guess is that there are not currently any functional languages that (i) are significantly easier to formally verify than C or Ada, (ii) have predictable time and space behavior, and (iii) have implementations that are both extremely well-verified and reasonably performant.

Re:Why 40-Year Old Tech Is Still Running America's Air Traff... by frik on Tuesday March 03, 2015 @01:49PM (#9139715)
Most such critical software is written in Ada or C and run on an real time operating system.

A functional programming style or (almost) pure functional language would help to with (semi) automatic static code proofing.