Компилятор "не летает". То есть не распространяется, не используется, неприменяется в конкретных разработках. Почему — отдельная история.

Что нам стоит дом построить?

Однажды (около четырех лет назад) в НИИ при Московском университете, где мытогда работали, появился высокий представительный мужчина с вальяжнымиманерами, окладистой бородой, большой лысиной и выразительными глазаминавыкате.

Ничего удивительного в этом не было. Иностранцы посещали нашу "контору" черездень, а то и чаще; каждая лаборатория либо выполняла какие-нибудь работы позападным заказам, либо изо всех сил старалась их получить. Это было тяжелоевремя: реальная зарплата истончалась с каждым месяцем, работы и каких-либоперспектив совершенно не было, немногочисленные предложения от государственныхорганизаций носили отчетливый оттенок идиотизма и сиюминутности и подкреплялисьбезумно мизерным финансированием. Большие ЭВМ, когда-то работавшиекруглосуточно и обслуживавшие весь университет, стояли; некоторым уже былподписан смертный приговор — золотосодержащие детали оказались болеепривлекательными, чем машинное время… НИИ медленно умирал и потихонькупустел.

Каждому приходилось самому искать дополнительный приработок. Правда,возможности были. Преподавали в многочисленных тогда учебных центрахсовместных предприятий, писали для них учебные пособия, а то и книги,подрабатывали в коммерческих фирмах. Иностранные представители, которым нашдиректор с гордостью показывал "компьютерный класс" с десятком тайваньских XT,вежливо выслушивали его объяснения, сдержанно кивали и фотографировали совспышкой, словно доисторическое чудовище, карточный перфоратор Juki, стыдливозадвинутый в дальний угол. Их предложения о совместных проектах (по крайнеймере, доходившие до нашего отдела) либо носили несколько авантюрный инесолидный характер, либо были откровенно неинтересны. Несмотря на трудности ибезвременье, мы все-таки ощущали себя системными программистами, и как-то неочень хотелось заниматься рисованием окон и конструированием экранных форм илипереводом математических библиотек с одного языка программирования на другой. Ктому же деньги предлагались оскорбительно скромные.

Однако то, что говорил высокий солидный бородач (назовем его Вальтер Деккер),звучало как откровение. Предлагалось разработать (не адаптировать, не доделать,не участвовать в разработке, а самим сделать from scratch — с нуля!) компилятор(компилятор!) с языка Си++ (!) для одной европейской (для определенности пустьдля бельгийской) софтверной компании! Причем не какой-нибудь препроцессор в Си,как известный cfront, а честный прямой компилятор переднего плана, генерирующийнизкоуровневый промежуточный код, используемый фирмой в системепрограммирования, в составе которой компиляторы Си, Модула-2 и Фортран.

Следует объяснить, что автор со студенческих лет питает к проблематикекомпиляции языков программирования особую страсть и имел к тому временинекоторый опыт как в проектировании языков (в частности, языков дискретногомоделирования), так и в реализации различных языковых систем, включая (страшносказать) системы построения компиляторов. Этот опыт целиком относился к прежнимвременам, а проекты, за немногими исключениями, носили полуинициативныйхарактер, будучи поддержанными только непосредственным начальством. Проекты немешали текущей работе в "ящике" (правильнее сказать, текущая работа не слишкомпрепятствовала этим проектам). Поэтому предложения бельгийца казалисьневероятной удачей и в то же время справедливой наградой за долгие годыверности избранному направлению.

Фирма хотя и не обладала именем, звучащим в мировом масштабе, но казаласьвполне респектабельной: она существовала уже более 25 лет, что для софтвернойфирмы, согласитесь, немало, участвовала в нескольких общеевропейских проектах;ее продукты (в том числе, собственная коммерческая реализация UNIX) имели неодну тысячу пользователей. Так что желание дополнить свою системупрограммирования новым мощным языком выглядело вполне логичным.

Любителям разгадывать псевдонимы и умолчания сказанного вполне достаточно,чтобы узнать страну, компанию, да и ее представителя.

Первый настораживающий момент (хотя то, что нам следовало тогда насторожиться,мы поняли гораздо позже) прозвучал вскоре после начала переговоров. Когда речьзашла о составе команды и предполагаемых сроках, то шеф, профессор ВладимирАлександрович Сухомлин, сам имеющий высокую квалификацию и немалый опытподобных работ, не менее нашего опьяненный перспективой настоящего дела,немедленно ответил: три разработчика за один год. Сейчас мы понимаем, что здесьнасторожиться следовало бельгийцам, уж конечно, прекрасно знающим, каковыреальные трудозатраты подобных разработок: не имеют ли они дело с неопытнымиавантюристами? Однако они просто спросили: не очень мало? Тогда шеф, сделав длясолидности паузу, сказал: ну ладно, год и четыре месяца.

Однажды в эхо-конференции по языку Ада — comp.lang.ada — прозвучал вопрос отнекоего молодого человека по имени Mайк Уайт. Этот замечательный парень изМассачусетса написал примерно следующее: вот на Макинтошах нет приличногокомпилятора для новой редакции Ады, так, может, я бы его сделал? Сколькопримерно это заняло бы времени? Вопрос звучал слишком наивно, да и имя сильносмахивало на псевдоним, так что это вполне можно было бы принять за провокацию.Правда, говорят, американцы вообще довольно простодушный народ…

Что тут поднялось! Крупнейшие специалисты по языку Ада, мировые знаменитостивроде Роберта Девара всем своим весом (кто его видел, тот поймет мою иронию)обрушились на бедного Майка. "Вы сумасшедший! Вы не представляете, что такоесделать компилятор! Вы плохо изучали в университете курс по компиляции языков!Вы никогда не доведете этот проект до конца! На это требуется минимум 25-30человеко-лет!" Тот, кажется, несколько ошарашенный этим тайфуном, растерянноотписывался: "Да… теперь я понимаю… это невозможно… лучше портироватьGNAT на Макинтош… А может, мы с кем-нибудь скооперируемся и вместе все-такипопробуем?.."

Как знать, если бы этот американский Миша Белов не наткнулся тогда на стольсуровую и дружную отповедь, быть может, он сейчас с парой приятелей ужезаканчивал бы свой компилятор? Хорошо известно, что очень многие достойныепроекты (примеры известны всем) выполнялись предельно малыми силами. И если бымы, подобно Майку, перед тем как начать работу, спросили бы в comp.lang.cpp:друзья, а получится у нас компилятор — втроем за год?-- почти наверняка получилибы аналогичный шквал критики.

Тогда мы об этом не думали. Конечно, мы знали Си++ только как пользователи, самязык еще не приобрел своей теперешней монструозности, да и работа казаласьнастолько заманчиво-интересной и в то же время ясной, что инстинктивно хотелосьзаинтересовать собой фирмачей, не оттолкнув их слишком большими сроками. Ноони-то, они — сделавшие и UNIX, и серию компиляторов, замахивающиеся на ещеболее амбициозные проекты, казалось, собаку съевшие на управлении программнымиразработками,-- как они могли не насторожиться?

Они не удивились. Они сказали: "Хорошо, пишите план на полтора года".


Перейти на страницу:
Изменить размер шрифта: