4 ms·
> Blaming on the language what is actually bad testing/architecture is pretty unfair. I think we can both agree that a SEGFAULT and an unhandled CONSTRAINT_ERR
by bb88 8y ago
> Blaming on the language what is actually bad testing/architecture is pretty unfair.
I think we can both agree that a SEGFAULT and an unhandled CONSTRAINT_ERROR lead to program termination.
Your right in that at least Ada raised a CONSTRAINT_ERROR. But -- the cause for a CONSTRAINT_ERROR and a SEGFAULT in this case are the same: bad handling of inputs to a function.
So in this case the results would have been the same as well. In either case it comes down to design and proper handling of inputs.
So I don't buy your argument that it is different because of undefined behavior vs. defined behavior. Ada 83 had undefined behavior, too. It's just that Ada coders (well the good ones) knew to avoid it.
> Do you have any source for that ? From my sources, Ada got less and less traction because of various reasons, one of them being the price of compilers at the time.
Having worked in a Large Defense Corp(TM) during the height of the Ada popularity, it became pretty clear that the cost of a compiler for a $100mm program wasn't really the issue.
The GNAT Ada compiler came out in 1995, and I know smaller defense contracts used that as a viable solution to write software.
The primary issues with Ada were:
1. Ada was oversold and underperformed. The Arianne-5 was the kind of tragedy that Ada was supposed to prevent. Interfacing with external systems was a pain. Tooling was a pain. The resulting executables were HUGE at the time.
And then the development itself was expensive. Towards the end of my time writing Ada, our group was coding at the rate of 2 lines of Ada code / developer hour. Compiling took hours, running and testing took hours, etc. So a 20 line code change might easily result in 10 hours of a compiling/testing cycle.
2. No code reuse across defense contractors. Ada didn't have a package manager at the time, and while there were software libraries, there weren't a lot of them. Not like the C/C++ or later the Java world would have. So if you needed something, most likely you had to write it from scratch.
3. Java got popular around 2000ish and showed what a great software ecosystem looked like. Around 2005ish most new successful defense development was on java.