3 ms·
That's an interesting and well-researched article. I'd like to put if-then-else in the bigger historical context of "structured programming". In the late 1960s
by kens 6y ago
That's an interesting and well-researched article. I'd like to put if-then-else in the bigger historical context of "structured programming".
In the late 1960s and early 1970s, it was a big debate if programmers should use structured programming, building programs out of blocks with control structures such as iteration and conditionals. (Earlier programs were built from ad hoc control using goto.) This is the context of Dijkstra's famous "Go To Statement Considered Harmful.
Although structured programming seems obvious now, there was a lot of resistance. At first, people weren't even sure if structured programming could implement all the required control flows, so someone (Böhm–Jacopini) had to prove the "structured program theorem". Languages needed to be modified to support structured programming, e.g. adding block if-else to Fortran 77.
I have to wonder what modern programming debates will seem as obvious in retrospect as the victory of structured programming.
- ilaksh 6y agoMaybe almost every major advance. Personally I think it's just that most people are not good at adapting to new contexts that evolve. And people are not really evaluating things rationally. For example, in the beginning those types of programming languages were completely infeasible to implement due to hardware constraints. So people were not used to them. That created a type of prejudice. Another example. Look at CISC versus RISC. When the context is raw machine code or assembly language, you absolutely want more complex instructions because otherwise programmers are going to a competitor that provides them. But then when you have high-level languages that part of the equation changes and reducing instructions gives other advantages. Neural networks might be another example of an advance that was shunned initially.