Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I disagree with many things he writes. For example, safety in a language has never and will never come from particular language constructs. In the best case, we can isolate particular pieces of the program and look for counterexamples that will demonstrate that it does not work. That is why we use unit tests where applicable (where functions are at least idempotent). His concept of language safety is therefore spurious. There is simply no reason whatsoever to believe that a program in Ada would be safer than a program written in any other language. Safety is about validation and a program or a language cannot validate itself.

Furthermore, a programming language is something with a strong personality attached to it. Someone created it, because he felt like doing so and then you have other people who like it and feel like using it. Ada's language design committee did not qualify for that scenario.

By the way, could you imagine someone passionate about revolutionizing the world with his new idea that will defeat Facebook or so, writing his passionate ideas in Ada?

Seriously, nobody got the slightest enthusiastic about Ada and that is why Ada barely has any users at all. The language simply does not reflect what any user group would want to do. In other words, Ada has always been a solution desperately looking for a problem.



Ada has plenty of constructs to enhance safety. Explicit type conversion. Limited use of pointers. Arrays with bounds checking. No willy nilly 'enums are ints' type stuff. Contracts. Many more are covered here:

http://www.adacore.com/knowledge/technical-papers/safe-secur...

Plenty of people got interested in Ada. They are people that do things like write software for trains, nuclear reactors, medical devices, and aircraft. There's not much point in trying to use Ada for a website.

With that said, I always felt that the pitch for safety was always overstated. Of course tests are needed (not aware of any mission critical system where they aren't heavily used). There were lots of papers slamming things like C++ vs Ada back in the day. Yet we were able to do safe things in both languages. Guaranteeing things in C++ was harder, but then other stuff was easier. I left Ada when I was trying to do some research in generic programming and Ada refused to let me do things that C++ would because it was 'unsafe'. Sure, unfettered use of generics would be unsafe, but so is rewriting the same code 10 times for different types. This was back when Stepanov published his STL paper. His ideas were great, they helped me, and I didn't look back. Still, if I was to work on another flight computer or weapons system I would not look askance on Ada. The tasking model in particular is very nice.

I never understood the 'committee' argument. If you don't like something about a language, say what you don't like, don't talk about how it was created. Ada is very well designed, it is consistent, and it hangs together far more than most languages out there.

No, no one is going to use Ada to 'move fast and break things' (defeat Facebook). It's a language for measured development of things that you can't afford to have break. Not spending weeks chasing pointer bugs, and going home to your family at the end of an 8 hour day is pretty darn exciting to some of us.


I linked to a book in my comment that refutes what you say by showing how the constructs themselves avoid many problems. Further, there were empirical studies done by the military and defense contractors in the past that compared defect rates of Ada vs many other languages. Ada always came out on top, sometimes with half the defect rate. So, your claim is wrong in theory and practice.


>Furthermore, a programming language is something with a strong personality attached to it.

Yes, and Ada's is somewhat like a drill sergeant yelling at you. Ada is Haskell for engineers who need to get things done.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: