- The document discusses the Ada and Ada 2012 programming languages and their rationale for use in high-reliability software. It covers various criteria for choosing between languages like C, C++, Java, and Ada such as human resources, reliability, maintainability and more. It argues that Ada helps enable more explicit, robust code and higher assurance through features like strong typing, contracts, and static analysis tools.