On Dec 22, 2007 5:53 PM, Rico Secada <[EMAIL PROTECTED]> wrote: > You are right, Ada is widely used in avionics, aerospace and defence > systems, systems that demand a VERY high level of security and safety > regarding lives and expensive equipment. And Ada is specifically > designed for embedded systems too.
Ada's original foothold was gained because it was mandated by the US government for many projects and was standardized before C. If Ada's benefits were not realizable with other tools, the mandate would still be in place. > It is my understanding that C is the hackers tool while Ada is the tool > of the engineer. I think it is mostly because of tradition. Your understanding is wrong. I suspect that many professional engineers using C (and/or other languages) would strongly disagree with your offhand characterization. > You find Ada in almost all of Boings airplanes, and in most industry > critical systems. Ada was written with compile time protection against > bugs such as buffer-overflows and so on. Didn't I read a Slashdot article about the NYSE going to Linux? What language is medical software written in? What about the competing companies that aren't using Ada? How does their track record of software faults compare? Compile time protection isn't worth the time it takes to run them if your specification has flaws, your code doesn't match the spec, or the compiler has errors. There are MANY other types of errors that can never be caught at compile-time. Just because these errors SHOULD be accounted for in the program's spec doesn't mean that they WILL be. > But like many has stated, what makes programs good and secure is the > programmer, but IMHO the tools and languages are important too. > > You cannot use something like C in a really security demanding > situation, and here I think about humans lives, like in spacecrafts. Completely false. You can use any tool you want with an appropriate model of the system; this includes your tools and code. The software for the original US moon missions was written in assembly code; portions may still be in use today because of its extreme reliability. > A simple buffer overflow might crash the plane, and you have to have > some ways of eliminating that completely. That is why Ada was designed > the way it was. You can read about the history of Ada on Wikipedia. > > Why so much is written in C on Unix-like systems, I think its mainly > tradition. IMO Ada would be much better from a security point of view. Your opinion means nothing without code. Even with code, the OpenBSD project likely won't care anyways. You are barking up the wrong tree. > I agree that it would be better if OpenBSD or any other system for that > matter was written in Ada rather than C, and they could just as well, > but re-writing something as huge as OpenBSD is a MAJOR task, and what > would the real benefits be in this situation? > > The OpenBSD team knows exactly what they are doing hence the extra > security of Ada becomes almost un-necessary, but again I agree, had > OpenBSD been in Ada from day one, that would save them a LOT of time! > Bugs would be caught on compile time and bad-coding would almost be > eliminated. Go back to Wikipedia. OpenBSD was a fork and essentially worked from day one. However, as you say, rewriting something as big as OpenBSD is a MAJOR task in the timeframe of years or decades. Instead of improving security in a known system, all those years would be "wasted" reinventing the wheel and playing catch-up with the pre-existing feature set of modern operating systems. Your insistence on equating compile-time checks with secure programming is incorrect, and indicates your inexperience in secure programming. Academic questions like this should be googled or asked on comp.lang.ada. Good luck. --david