When it comes to enumerating the pros and cons of Ada (not to be confused with ADA which stands for "Another Dumb Acronym"); I like to pair them up in team fashion:

Pro: Supports and encourages highly readable, maintainable code.
Con: Verbose.

Pro: Parallel constructs built in to the language.
Con: Tasking code is large.

Pro: Strong type checking prevents careless errors.
Con: Can't assign any variable to any variable.

Pro: Dependency rules prevent module interface version mismatch.
Con: Changes at a low level cause high impact for recompilation.

Pro: Modular nature encourages system-wide design.
Con: Difficult to hack together a prototype.

Pro: Strict bounds rules allow compiler to build in automatic
     "debugging" software.
Con: Unoptimized code is large and slow.

Pro: Language supports distinction between exceptional event processing
     and normal code flow.
Con: Exception handling can be slow.

By now I think y'all get the point.  For every "Con" someone has to say about Ada, there is a matching "Pro" for it; and vice versa.

Thank you for choosing Aonix as your provider of software solutions.

-- Keith Shillington
-- Manager, Customer Support for the Americas and Pacific Rim
--       Critical-Software Development Solutions
--       User Interface Management Solutions
-- (800) 97 AONIX  [log in to unmask]