Тим Брей называет последние версии Ада самыми дорогостоящими, постыдными неудачами в истории языков программирования. Источник: Tim Bray/Wikipedia |
«Уже в этом году должна быть представлена очередная модернизация языка — Ада 2012, в ней ожидается поддержка механизма контрактов, многоядерной архитектуры, итераторов и возможности квалифицированных выражений», — сообщил Эд Шонберг, вице-президент компании AdaCore, разрабатывающей коммерческие программные решения на базе Ада. Предлагается, в частности, платформа разработки приложений Gnat Pro Ada. Эта платформа будет модернизирована с целью поддержки Ada 2012 в течение нескольких недель. Ada 2012 сейчас ожидает одобрения ISO, международной организации по стандартизации.
У Ада, разумееется, есть и критики, в частности Тим Брей, автор языка XML, работающий в настоящее время в Google. По его словам, версия Ада, представленная в 2008 году, — это «самая дорогостоящая, постыдная неудача в истории языков программирования». По поводу новой модернизации языка Брей заявил твердо, что его мнение остается неизменным. Со своей стороны, Шонберг заявил, что Брей просто не располагает информацией. Шонберг признал, что в прошлом создатели Ада несвоевременно подготавливали компиляторы, к тому же инструменты для работы с этим языком, как правило, довольно дороги.
Язык оптимально подходит для встроенных приложений, заявляют в AdaCore. Поддержка механизм контрактов позволяет аннотировать программы, так что они несут в себе дополнительную инфорацию о том, как должна работать та или иная система. Пользователи определяют, при каких условиях программа может быть вызвана и какие ее свойства относятся к числу гарантированных. Контракты служат своего рода формальным соглашением между пользователем API и автором API. «Они более четко определяют, что должен делать тот или иной фрагмент программной системы, — пояснил Шонберг. — Ада — первый широко распространенный язык программирования со встроенной поддержкой контрактов».
Исторически Ада превосходит Си, C++ и Java в части поддержки параллельной обработки, напомнил Шонберг: «Поддержка параллелизма была встроена в язык, а не достигалась за счет внешних по отношению к языку библиотек потоков, недосточно полно определенных семантически».