> No, perhaps I did not stress that enough, but I meant not uncertain and/or > changing requirements, but worse: unknown domain area and no experts near you. > ... > You got 3-month schedule and no experts are provided. Or slighly more realistic > example: your new project is: to extract the text (using speech recognition > technique) from a *.ram file and convert it to XHTML-Print (using formatting > for conveying voice variations)... no experts or training courses are provided... The risk of such kind of projects is very very high and the language you use can't do anything with it (but in a case your staff don't know it well the risk is higer - I agree that Ada will raise the project risk when you have good C++ programmers without any knowledge of Ada). I don't know any language which can fix such kind of bad project management. As a matter of fact, every day on my work I can see how many problems can present the language (C++) in the situation when management is not a strong side of a project. It cause additional problems, really very serious problems. The problems is ten times bigger when you have many "good C++ programmers" (~100). They are more ten times bigger when your system full of simultaneous processing - such kind of things can't be described on C or ++ the way anybody can manage it and catch all bugs in it during 3 years. I spent a lot of time with hacking absolutely mad "class hierarchy", "friends", bad include effects, macroses etc. On my opinion C++ don't suitable to any _predictable_ development. It suitable for work when a risk is source of pleasure, something like alpinism. How it can reduce the risk when nobody knows what he or she gets when mix all these "hierarchies" and "threads" and infuse for a couple of monthes in conditions very close to a battle? ? Using of Ada gives more control. Even if you have a lack in documentation it will not allow use objects by wrong way as easily as ++ will. It disciplines. It calls you to analyze problem instead of wasting time on generating a sort of hierarchies and entities which nobody can understand. It gives you better control and it will not give such number of surprises after successfully compiling as ++ will. When a project is on high risk you need more control of it. You need more understanding of it. You need bigger QA. You need more readable code, after all! -- Sergei Lodyagin C++/Ada developer