Clay language

bearophile bearophileHUGS at lycos.com
Wed Dec 29 13:42:09 PST 2010


Walter:

> Ada is a failed language.

I agree that as general purpose language Ada is probably a failed language. But currently Ada is often the best language still if you have to write the autopilot software for an aeroplane or something that requires software with minimal bug counts.

Even if Ada is globally a failed language, it's a large language composed of many features, so some of its feature may be good still.

D and Ada share some purposes and semantics, they are similar languages. They are both large system languages fit for very high performance systems, they are both improvements over older simpler languages (C-family and Pascal-family), both have generics, and so on (there are some differences too, where D tries to add very flexible and general features, Ada often adds many different specialized features that are safer. Ada doesn't value code compactness much). The most important shared design goal of Ada and D is that both regard program correctness as very important. In this regard surely Ada tries harder than D. I like Python for certain kinds of programs, but if I go on a ship that uses an autopilot I'd like it to be written in a language safer than C. D advertises itself as a language that cares a lot about code correctness, but I am sure more is doable in this regard.

Even if today Ada is sometimes the best language to write an autopilot, tomorrow the situation may change. Microsoft keeps developing its Sing# language, and two Microsoft researchers have released "Verve", a little experimental operating system kernel that has a nucleus written in typed assembly statically verified, and Spec# or Sing# code... So maybe in future high integrity software systems will be written like this instead of Ada (typed assembly is nicer than the normal inline D asm even when it's not formally verified, just verified by the type system, more or less like C code).

Bye,
bearophile


More information about the Digitalmars-d mailing list