третья Первая любовь: Ала

Введение

Говорят, первая любовь не забывается. И пусть много лет с тех прекрасных пор прошло, и забылось уже многое, и умом понимаешь, что чувства давно ушли, ито, что виделось тогда «гением чистой красоты», было всего лишь свежестью юности, и сейчас предмет чувств выглядит совсем не так (время никого не жалеет, увы)... И другие появляются, и не всегда первая выдерживает сравнение с этими новыми... Но всё равно: достаточно опять увидеть (или даже услышать, вот что интересно!) - и всё оживает в душе, будто вчера случилось...

...Не подумайте, что я переключился на лирику: я говорю о языках программирования ©. Это я к тому, что, впервые познакомившись с Адой в начале восьмидесятых, ещё, кажется, в проекте, до её официального появления, я остался её поклонником (если слово «поклонник» применимо к языкам ©) вплоть до настоящего времени. При этом - всё-таки с тех пор очень много времени прошло! - бывали периоды, когда Ада вытеснялась на второй или на третий план другими замечательными, удобными или интересными языками, либо просто работать надо было, и не до воспоминаний... И всё равно, в очередной раз вспомнив об Аде, хотелось опять и опять пробовать на ней программировать - или хотя бы изучать хорошие программные тексты, написанные другими.

Ну а поскольку основная моя специализация - всё-таки разработка компиляторов, то поучаствовать в каком-нибудь проекте реализации Ады мне захотелось немедленно после прочтения первого же описания языка.

Так и не пришлось... Хотя несколько раз было близко к тому.

Первое, поверхностное впечатление от Ады, когда она впервые появилась: красивый, мощный, сложный язык. Ну, сейчас-то он уже не кажется таким уж сложным, особенно в сравнении с кое-какими современными языками (не буду показывать пальцем, чтобы не спровоцировать еще одну религиозную войну ©). Да, после Ады появились языки более компактные и практически такие же мощные и элегантные (на вкус и цвет товарища нет, но всё-таки), но по тем временам он казался (и был, конечно) вершиной дизайнерской мысли и прекрасным образцом языкотворчества, вне всякого сомнения.

Даже не зная всей предыстории создания Ады, а просто читая какую-нибудь книжку по этому языку, было отчетливо видно, что всё в ней - от фундаментальных принципов до лексики и синтаксиса - не плод причудливой фантазии некоего «программного гения», который однажды решил придумать удобный инструмент для себя, любимого, - а результат кропотливой работы многих умных и опытных людей, которые попытались свести воедино множество наработанных практик программирования и систему жёстких требований, предъявляемых к современному ПО.

Помню, меня очень впечатлила фраза из какой-то переводной книги по Аде: «Программы - это не столько средство взаимодействия человека и компьютера, но прежде всего средство взаимодействия людей друг с другом». Вроде бы вполне очевидная мысль, но точное следование этой нехитрой идее, если относиться к ней серьёзно, неизбежно должно бы повлечь «волевое» отбрасывание огромного большинства нынешних средств разработки. Такие языки, возможно, очень хорошо помогают во взаимодействии с компьютером, но общаться с их помощью друг с другом могут, наверное, только специалисты по криптографии ©. И еще одна замечательная мысль, встык к предыдущей: «Язык Ада проектировался так, чтобы программы на этом языке было труднее писать, чем читать». По-моему, это тоже очень важная характеристика; однако эта фраза почему-то вызвала крайнее неприятие автора предисловия...

Но помимо, так сказать, эстетических впечатлений, было совершенно ясно, что важнейшие идеи, заложенные в этот язык, - адекватная поддержка создания очень больших программ с особыми требованиями к надёжности и сопровождаемости, - были весьма и весьма актуальными применительно к проектам оборонного института, в ВЦ которого я тогда работал. Попросту говоря, Ада казалась нам просто- таки «обязательной к реализации» для успешного решения задач института.

А чего стоит история её создания! Заказ Минобороны США,открытый международный конкурс со строгими требованиями и итоговым отбором четырёх языков-кандидатов, их публичное обсуждение и доработка, окончательный выбор победителя и принятие первого стандарта - эта история, подробно описанная во многих статьях и книгах, была настолько необычной, если сравнивать с тогдашней глухой закрытостью любых «наших» проектов, связанных с ВПК, что одно это производило неизгладимое впечатление. Ну подумать только: язык предназначается для нужд Минобороны США - а требования к нему открыто публикуются и свободно обсуждаются, языки-конкурсанты разрабатываются коллективами по всему миру, и в итоге побеждает французский проект!

В связи с появлением Ады у нас на работе царило некоторое оживление: вот, они придумали такой здоровский язык теперь мы должны дать им достойный ответ: если не придумать свой такой же, то хотя бы сделать для их Ады наш компилятор. Конечно, это были просто красивые мечты: ресурсы или хотя бы неформальное «добро» на такой проект нашему ВЦ никто бы никогда не дал.

Однако магия нового языка, выдающиеся качества и несомненная практическая полезность которого (по крайней мере, в оборонной сфере) были ясны практически всем профессионалам, сделали своё дело: в скором времени возникли команды, работавшие над реализацией Ады почти для всех тогдашних советских машин. Создавались Ада-компиляторы для БЭСМ-6, для Единой Серии, для «Эльбрусов». Был запущен и развивался проект под названием Рада («Русская Ата») для спецмашин военного назначения...

Через некоторое время и у нас в ВЦ возник некий амбициозный проект масштабного программного комплекса «Эверест» (названный в пику «Эльбрусу», для которого он задумывался ©) с мощным входным языком. И хотя этот язык в «общеалгоритмической» части был спроектирован под сильным влиянием Ады, рассказ о нём никак не помещается в эту книгу. Да он, по существу, и не вышел из стадии проектирования, так что... Да и вообще, вряд ли кому-нибудь это сейчас интересно: и «Эльбрусов» нет, и все действующие лица давно занимаются совсем другими делами...

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >