А вот это было уже про нас. И Женя начал методично проталкиваться в МЖК. Мы приходили в пустую квартиру, где заседало правление, как на работу, — почти каждый вечер, и мелькали, и участвовали в каких-то обсуждениях, правда, на непонятных условиях и с невнятными правами, но поскольку в компьютерах мы разбирались неплохо, к нам стали прислушиваться.
В этом клублении Женя чувствовал себя превосходно, а я еле держался. С моей точки зрения, все происходящее было тягостным бездельем. Вот программу написать — это пожалуйста, это без проблем. И обязанности наши мы с Женей поделили так: он пробивает проект, я пишу софтину, какую попросят, мы получаем по квартире, и наступает полное счастье.
В один из вечеров, когда все уже наговорились до полного изнеможения, речь как-то боком зашла о загадочной русской душе. И Женя рассказал историю.
На одной подмосковной птицефабрике затеяли радикальную модернизацию. А чтобы не пустить деньги на ветер (как всегда), кто-то больно умный решил заключить дорогущий контракт с голландской компанией, монтировавшей разделочные куриные линии, способные быстро и без потерь превращать квохчущее множество в готовых к употреблению бройлеров. Голландцы приехали, посмотрели, покивали головами и сказали: «Все будет ОК».
Привезли из Голландии все оборудование — вплоть до гаечных ключей и крестовых отверток, — и правильно сделали: если бы решили закупать инструмент на месте, то никогда бы не закончили. Линию собрали, наладили и запустили месяца за два, что само по себе выглядело как чудо. Никогда бы местные товарищи за такой срок даже из готовых комплектующих ничего толкового не собрали — минимум годок-другой, а там, глядишь, материалы и комплектующие куда-то подевались, надо новые заказывать, и так далее по кругу.
Работала линия так. Живую курицу подвешивали за ноги на транспортере и пускали в дело. Сначала ее окунали в крутой кипяток, перья у курицы вставали дыбом, и ее — еще живую — пропускали через аэродинамическую трубу, которая все перья с нее аккуратно сдирала, и только после этого курицу провозили над металлической полоской с высоким напряжением, которой она касалась гребешком. Разряд курицу убивал, и она, уже начисто ощипанная, шла дальше — на разделку, где ее потрошили, обрубали лапки и голову, паковали и отправляли по магазинам.
Голландцы все отладили, персонал обучили и уехали. Через полгода они поинтересовались, как идут дела, и были неприятно удивлены: производительность линии оказалась в раз десять ниже, чем у точно такой же, работающей в Голландии. Неленивые разработчики приехали посмотреть, в чем же дело. Приехали и ахнули. Местные умельцы линию перемонтировали. В самом начале процесса они поставили электрическую полоску — курицу сразу убивали током, и только потом все остальное. Но сколько ты мертвую курицу в кипятке ни купай — перья у нее дыбом не встают, а, наоборот, обвисают, и аэродинамическая труба почти бесполезна — курица остается неощипанной. И на российской линии в дополнение к голландским новациям поставили мужика, который, матеря на чем свет стоит хитроумных изобретателей, вручную выдирал перья — получалось долго и плохо. Когда разработчики указали на явное нарушение технологии, им ответили: «Это, может, у вас все такие безжалостные, а мы живого куренка в кипяток кунать не могем». Голландцы подивились нездешней русской доброте и уехали.
Женина байка имела успех оглушительный. Она не вызвала ни у кого сомнений: а так ли было-то, да и вообще было ли, не является ли эта история сочинением на заданную тему? Рассказ выглядел как несомненная правда. Да, конечно, только так и могло, и должно быть. Почему? Неужели какая-то парадоксальная доброта и фундаментальная глупость русского человека настолько очевидны?
Когда все отсмеялись, Женю отозвал в сторонку один из главных эмжэкашных комсомольцев и сказал: «Я вижу, ребята вы бравые, но квартиры получить вы сможете только в одном случае: если уволитесь со своей работы и придете в нашу поликлинику — ее компьютеризовать. Тогда шанс есть и высокий». Мы, ни секунды не колеблясь, так и поступили.
42
Откуда взялись в Советском Союзе такие сильные программисты при таком удручающем состоянии вычислительной техники? Это совершенно непонятно. На колене ведь писать не научишься.
А то, что наши программисты не хуже, стало очевидно уже в свободные времена: они выдержали конкуренцию с очень высокой американской программистской культурой. А там-то с машинами все и всегда было лучше всех.
Советский программист всегда работал на устаревшей, непрерывно падающей технике, на дырявой операционке, которую плохо перекроили из американского аналога, на ворованном компиляторе, без документации. Написать в таких условиях хоть что-то работающее — это чудо, и это — подвиг. Написать что-то работающее устойчиво — нельзя.
Свою лучшую программу я смастерил для школьного компьютера БК-0010, на котором не работало ничего, кроме копеечной демонстрашки. Я еще вспомню об этой истории.
Но стесненность в технических средствах компенсировалась нечеткостью, а иногда и полным отсутствием внешних обязательств — мы могли писать все, что хотели, экспериментировать, с чем хотели, и никто у нас над душой не стоял, и сроки давили не шибко. А мы самовыражались, преодолевая нечеловеческие трудности, созданные нам глупостью родного государства, которое, ориентируясь на собственное представление об оптимальной стратегии, решило, что воровать софт выгоднее, чем разрабатывать, и сделало ставку на цельнотянутые у американцев Еэски и Эсэмки.
В таких условиях ничего действительно стоящего написать нельзя, но можно научиться очень хорошо писать. Было бы желание. А желание у нас было. На вопрос: «Зачем ты в десятый раз переписываешь программу сортировки, если ускорять ее не надо никому кроме тебя?» — настоящий советский программист только презрительно смотрел на вопрошавшего. О чем можно говорить с профаном? И вдруг, просветлев лицом и воскликнув: «Так вот где тормоза!» — отворачивался к экрану (а то и к распечатке) и погружался в код.
Стесненность в средствах, вагон свободного времени и творческий порыв рождают шедевры.
Мы писали эмуляторы, просто чтобы пошла на твоей машинке программа, которая приглянулась на чужой; редакторы, помещающиеся со всем функционалом в 16 кило оперативки; обработчики оконных интерфейсов, даже не догадываясь, что они так называются. Нашей библией был третий том великой книги «Искусство программирования» Дональда Кнута — «Сортировка и поиск». Мы его читали и над ним думали. Сколько надо иметь свободного времени, чтобы заниматься такой фундаментальной ерундой, трудно даже представить. Особой фишкой было написание систем управления базами данных. Чуть ли не в каждой конторе была своя. Мы разбирали структуры данных без всяких описаний — просто анализируя и сравнивая дампы, перепахивали тонны кода, ползая по нему отладчиком. B+-деревья мы знали лучше, чем тополя под окном.
Если после такой школы попасть в нормальные условия, можно писать уже что угодно — и делать это быстро, точно, оптимально. Вот только захочется ли? Захотелось не всем. Потому что это уже была работа и рутина, а не увлекательная интеллектуальная игра. Но те, кто смог с собой совладать, добились успеха.