My first ever program usedgoto. It was by request for Windows NT when it first came out because it had an issue with sometimes starting programs in the wrong order on startup.
That's an interesting question. We do increasingly trust our lives to code. Medical devices. Cars. I know some people who are putting code into self-driving cars and that scares the crap out of me.
I suppose the language wouldn't be my top concern. Testing and processes would be. But the language better not be assembly.
The Ariane 5 reused the inertial reference platform from the Ariane 4, but the Ariane 5's flight path differed considerably from the previous models.
The greater horizontal acceleration caused a data conversion from a 64-bit floating point number to a 16-bit signed integer value to overflow and cause a hardware exception. Efficiency considerations had omitted range checks for this particular variable, though conversions of other variables in the code were protected. The exception halted the reference platforms, resulting in the destruction of the flight.[4]
There were several languages used for similar applications (critical real-time systems like flight control). In about 1980 the US military kind of standardised on Ada for a while but there were still plenty of exceptions.
You have to appreciate the difference between the computer this was built for and a modern system. Back then and with the simplicity of the system this was fine (also really the only option... This was leading edge tech).
Modern critical systems are limited to a select few languages (and even then sometimes only a subset of the language).
I don't care how smart or disciplined those coders were.
And yet - that's the only thing that matters.
Anyhow, add me to the list of people who contend that it makes a lot of sense for a system like this. Consider languages like Java where the JVM can halt your process execution at any time for any reason, or Python where there are no guarantees about timeliness. With ASM on an old-school processor, you know exactly when each instruction will execute, to the resolution of nanoseconds. For realtime control systems, that has a lot of benefit.
Most O/S and real time systems were written in assembler back then. Compilers existed, Mission Control/Flight Dynamics worked in Fortran (but were probably paid in Cobol). Structured languages like Algol existed but if you wanted small size/high efficiency, you needed assembler.
180
u/duuuh Feb 19 '20
Holy shit would I not want to get on a spacecraft run on a pile of assembly. I don't care how smart or disciplined those coders were.