Ask HN: Risk of unsafe software in automobiles?
No amount of MISRA or ISO26262 or tests or any kind will help if the people doing the software are direct out-of-the-university mechanical engineers or physicist, who had <i>at most</i> one or two semesters of some kind of programming course.<p>The reality is that this is the current state of affairs. Most of people doing software for cars have not the foggiest idea what software is really about.<p>All the software I read is just impossible to understand. And no standard help in many cases.<p>Some examples I&#x27;ve seen in code:
- Use of kind of hungarian notation to the point that a loop variable was named something like &quot;uibe32bb_i_lns&quot; 
- Comments in other human languages that were not english
- Use of recursion
- Have seen a call like name1::name2::name3::name4::name5::name6::name7::name8::name9::name10::name11::name12::name13::name14.
The names where some kind of hungarian notation, those calls where everywhere in the code.
- Lines more than 1000 characters wide, as a rule
- Files north of 100kB of code
I can go on and on and on....<p>Some examples of exchanges with people:<p>1) Software architect, of a ECU: one programer asks for the memory and CPU budget for a function. The reply was &quot;I&#x27;m the architect, I&#x27;ve no idea what you are talking about&quot;<p>2) System chief architect, for a <i>very important</i> project of a <i>big</i> auto-maker: one engineer says something about software errors. The architect interrupts, and explains that the software <i>never</i> makes an error. Because a computer only does what it is told to make. -- that is terrible enough, for example ignoring the possibility or a SEU, but he goes further, to say that any kind of test is not necessary, because, SW, as stated, makes no errors.<p>Some general points:
- 99% of people in &quot;SW&quot; do not know what gdb is. They debug by &quot;cout &lt;&lt;&quot;
- I found nobody who knows what tail recursion is
- 90% are only able to program, to some extent, in one of C++ or Python, but no other language.
- Mentioning Ada, Lisp, Forth will trigger a waterfall of insults saying those are old and should never be used.<p>I keep buying the most basic cars. I&#x27;m genuinely terrified to think in anything automatic in my car.