The software in space podcast (by se-radio) put me into thoughts about finding ways to improve code quality. First of all, I think that using void methods in languages that support exceptions is not very useful. Instead, I prefer using idioms like the boolean return value and single exit point. Together with design by contract and sufficient testing coverage, mistakes like the Ariane 5 crash can be discovered and eliminated at an early phase -- before it's too late...
The fact that there are usually two discrete programming teams developing the same space software part using different programming languages (and members with different mindsets) is extremely important. It focuses on the importance of the human factor and emphasizes on using different tools to solve the same problem as a way of writing "better" (for example faster, with less bugs, cleaner, more fault tolerant, etc.) code.
This is aligned with one of my basic principles: Programming languages are just tools, and the right tool should be used for the right job. Dogmatic decisions increase the potential of failure.
The fact that there are usually two discrete programming teams developing the same space software part using different programming languages (and members with different mindsets) is extremely important. It focuses on the importance of the human factor and emphasizes on using different tools to solve the same problem as a way of writing "better" (for example faster, with less bugs, cleaner, more fault tolerant, etc.) code.
This is aligned with one of my basic principles: Programming languages are just tools, and the right tool should be used for the right job. Dogmatic decisions increase the potential of failure.