Comment Re:specification & testing (Score 1) 52
You can do software engineering in any language, even C or Visual Basic. But it's easier with languages that provide more precision in specification and in behavior. Once you get used to it, strong typing, particularly for scalars (integer types) is your friend. It can catch at compile-time subtle bugs that can be hard to find. Similarly, languages that make it easy to define chunks of code with well defined interfaces/APIs (and that do information hiding on details) is a huge advantage in large (as in 'many developers') and long-lived (as in 'many maintainers') systems. In large systems, code is read -much more frequently- than it is written. And that a good API specification should help the user/reader understand what happens when things go right, and what happens when things go wrong. Even in Ada, there are a few things in the language specification that are 'undefined', which means "we have no clue what a program that makes this mistake will do."