Редкая профессия

Сокращенный вариант статьи был опубликован в виде отдельной статьи вдекабрьском номере журнала PC Magazine/Russian Edition за 1997 год. Статья донедавнего времени находилась в online-архиве журнала, однако была удалена(очевидно, в связи с истечением срока давности ☺).

Комментарий 2008 года

Недавно поздно вечером к нам в комнату зашел коллега, хороший знакомый, главамаленькой фирмы, "широко известной в узких кругах", устало опустился на стул и,очумело покрутив головой, проговорил:

— От заказчиков отбоя нет!..

Он поднял голову, и мы увидели в его усталых глазах удивление, смешанное свосторгом и воодушевлением.

— Работы полно, только успевай! computersЕго фирма в принципе ничем не отличается от других московских компьютерныхфирм, ориентирующихся на программно-аппаратные разработки, — несколькопостоянных сотрудников, десяток толковых студентов, три комнаты в умирающемакадемическом институте и минимальный, мягко говоря, набор оборудования.

Я вспомнил этот случай, чтобы показать безосновательность сетований на упадокиндустрии, невостребованность специалистов и повсеместную ориентацию на продажуготовых западных решений. Сегодня можно уверенно говорить, что неглупыйинициативный компьютерщик — от студента до сорокалетнего программиста со стажем — имеет все возможности найти себе работу, соответствующую его квалификации, завполне адекватные деньги.

Речь, однако, о другом. Разработка программного обеспечения — настолько широкаяобласть деятельности, что человек, который действительно хорошо программирует,скажем, драйверы устройств и зарабатывает этим себе на жизнь, вряд ли сможет вприемлемый срок научиться профессионально проектировать базы данных. Исключениякрайне редки. (Я не беру в расчет одержимых молодых людей, которые имеют своемнение решительно обо всех аспектах разработки и использования ПО и пишут всвоих резюме невообразимо длинный список программных систем самого разногокалибра и назначения, в которых они как бы умеют работать. Речь идет преждевсего о настоящих профессионалах.) В то же время, и драйверы, и базы данныхопределенно относятся к программному обеспечению.

Жизнь сложилась так, что автор любит проектировать и разрабатывать компиляторы,и у него это, в общем, получается. То, что вы прочтете ниже, надеемся,подтвердит мои слова. Однако чем серьезнее относишься к тому делу, котороелюбишь, тем меньше времени и возможностей остается постичь что-то другое, пустьдаже важное. Боюсь, ни за какие деньги я не возьмусь сейчас, скажем, за графикуили разработку бухгалтерских программ — не только потому, что мне это неинтересно, но прежде всего из-за невозможности достаточно быстро статьпрофессионалом в этих сферах.

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

На Западе, с его несоизмеримо большим разнообразием потребностей в сферепрограммирования, ситуация все-таки иная. Когда происходили описываемые нижесобытия (середина 90-х), я, скажем, не знал о существовании web-сайтаhttp://www.compilerjobs.com/, в котором публикуется и регулярно обновляетсяпоразительный в своем разнообразии список вакансий, связанных с разработкойкомпиляторов…

Комментарий 2002 года

Так что заголовок этой части имеет вовсе не хвастливый, а грустный оттенок.Разработка компиляторов — редкая профессия, но не в смысле ее дефицитности и,следовательно, высокой цены на нее. Напротив, она редкая прежде всего потому,что редко требуется и, соответственно, найти себе применение крайне трудно.Поэтому, когда все-таки появляется работодатель, предлагающий такую работу,психологически трудно еще и педантично уточнять условия вроде денег и прочего:спасибо и на том, что работа, по-настоящему интересная и приносящая радость,нужна кому-то еще!

Летает или не летает?

Я хочу рассказать о том, как мы делали компилятор Си++. Вообще-то, об этомстоило бы написать книгу — настолько эта история кажется захватывающей ипоучительной, однако… будет ли это кому-нибудь интересно? Даже если короткорассказать о наиболее существенных проблемах, с которыми мы столкнулись, трудноизбавиться от мысли о, скажем, неактуальности нашего опыта в сегодняшнейроссийской ситуации в программировании. В самом деле, посмотрите хотя бы наполки отделов книжных магазинов, торгующих компьютерной литературой.Невероятное (по сравнению с картиной 5-6-летней давности) разнообразие книг!Практически по любому программному продукту, мало-мальски используемому у нас,можно гарантированно найти по крайней мере две-три книги. Однако работ,посвященных современным архитектурам, проблемам разработки программногообеспечения, принципам построения сложных систем, таких, как компиляторы, СУБД,операционные системы, — нет. Только описания конкретных инструментов, пакетов исистем. Ситуация в некотором смысле обратная той, которая складывалась вдоперестроечное время: тогда очень многие серьезные работы известных западныхавторов, пусть с опозданием на пару лет, но выходили у нас. Печатались и оченьнеплохие отечественные книги. (И между прочим, находили спрос, и многиемгновенно становились библиографической редкостью!)

Все это определенно говорит о том, что спрос на подобного рода публикациипрактически отсутствует. Кому сейчас интересна проблематика разработкикомпиляторов, когда у любого программиста на выбор имеются три-четырепревосходных западных продукта, а наша промышленность уже давно не производитсобственных компьютеров, для которых могли бы понадобиться подобные разработки?

У этих опасений есть еще один аспект. Опыт общения с западными специалистами поПО, как достаточно известными и уважаемыми, так и рядовыми программистами,убедил в одной простой вещи: практически никому не интересны те проблемы итрудности, с которыми ты сталкиваешься в процессе реализации того или иногопроекта; мало кого интересуют пути и способы их преодоления. Важен и интересенпрежде всего результат! Об этом образно сказал нам один коллега, эмигрировавшийв Швейцарию лет пятнадцать назад.

— Вот ваш "Буран", — сказал он (дело было больше двух лет назад), удобнорасположившись в кресле на открытой террасе Политехнического института вЛозанне с видом на Женевское озеро.-- Программа вроде бы завершиласьединственным полетом в беспилотном режиме. Наверняка в процессе его разработкиконструкторы продемонстрировали высокую квалификацию, нашли какие-то интересныенестандартные решения, придумали и отработали технологию, решили уйму проблем ит.д. и т.д. Но… — заключил он с ехидцей в голосе,-- не летает! Не делает то,для чего был предназначен! А значит, и говорить о нем бессмысленно. Его нет, иэто главное.

Светило ласковое солнце. Сквозь большие окна факультета информатики был виденпросторный студенческий компьютерный класс, уставленный огромными цветнымимониторами Sparc’ов. В сырой и холодной Москве слетавший в космос «Буран»сиротливо пристроился в парке Горького среди аттракционов. Возразить былонечего.

С тех пор в наших разговорах метафора "летает — не летает" приобрела вприменении к нашему проекту почти ритуальный характер. Она не потеряла своюактуальность даже и сейчас, когда вроде бы по результатам тестирования насоответствие стандарту Си++ наш компилятор стабильно обгоняет все последниеверсии Watcom и транслирует сам себя почти так же быстро, как это делает VisualC++.


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