Типажи программистов
Предлагаю вашему вниманию краткий справочник, при помощи которого вы сможете безошибочно классифицировать программистов. Зачем? Во-первых, это занятно, а во-вторых, предупрежден - значит, вооружен. Есть и третья не менее важная причина: классику народного программистского творчества нужно знать!
"Я - Величайший"
Твердо верит, что является величайшим программистом из всех, когда-либо ступавших по земле. В доказательство показывает исходный текст Тетриса, состоящий из трех строк. Большую часть времени перед экзаменами ЯВ провел в компьютерном классе. Сдать экзамены и защититься ему удалось только благодаря тому, что он подобрал пароль к ответам на билеты. Думает на смеси Си и ассемблера, считает Настоящих программистов молокососами, знает на память всего Кнута, даже не написанные тома, и считает, что Кнут продался, когда взялся писать TeX. Комната ЯВ завалена распечатками кода ядра устаревших версий Unix. Он знает, что такое Plan 9, и иногда проигрывает его дистрибутивный компакт на аудио плейере - просто для развлечения. Никто, кроме самого ЯВ, не может понять написанного им кода, и ЯВ это совершенно устраивает. Абсолютно никто не в состоянии воспользоваться компьютером, который он "настроил для себя", что также его очень устраивает, так как позволяет избежать вопросов, чем же он, собственно, занят. Привлечение ЯВ к любому проекту совершенно латально, если для работы требуется сотрудничество, документирование и обмен кодом. ЯВ лучше вычеркнуть из списка разработчиков и отправить его к прочим хакерам.
"Интернетовский Фрукт"
В начале своей карьеры ИФ дни напролет просиживал в компьютерном классе рядом с ЯВ, но, в отличие от первого, читал новости. ИФ применяет в программировании новый подход: он исповедует религиозное убеждение, что Интернет бесконечен, а потому должен содержать в точности ту программу (с исходными текстами, по анонимному FTP), разработка которой ему поручена. Естественно, проблема всего одна: эту программу нельзя запустить ни на одной из имеющихся машин. Нужно обновить либо компьютерный парк, либо системное программное обеспечение, либо достать "всего только еще один" патч из сети, либо все перечисленное вместе. Если программа, против ожидания, работает, то ИФ немедленно в ней разочаровывается и начинает поиски нового пакета. Только ИФ знает, где в сети лежит инфракрасная карта погоды Гавайев за 1963 год. ИФ выживает только в местах с хорошими каналами связи и очень терпимыми сетевыми администраторами. Его потребности в дисковом пространстве огромные, а желание поставить новую ОС или увеличить пропускную способность сети просто феноменальное. Иногда ИФ находит что-нибудь полезное, но он слишком занят, разыскивая что-то еще, чтобы действительно воспользоваться своими находками.
"Бешеный Макетчик"
БМ прочел все книги о разработке программного обеспечения и поверил, что нужно пользоваться методом пошаговой разработки программ с широким применением прототипов и макетов. К сожалению, БМ максималист, почти каждый день начинающий работу с чистого листа. Пытаясь достичь такой новизны и элегантности, чтобы все просто попадали, БМ строит новые и новые макеты для проверки новых идей, новых интерфейсов и даже новых языков. Естественно, когда БМ приходит в голову очередная свежая мысль, старый макет немедленно выбрасывается. И чаще всего это происходит еще задолго до завершения хоть чего-нибудь. У БМ обычно есть поверхностный навык работы с системами быстрой разработки и такими инструментами Unix, как yacc, Perl и Awk. Результат, слепленный из них всех, по производимому впечатлению может сравниться только с лепными украшениями в сортирах итальянских гостиниц. Работу, в принципе, можно довести до конца, если поставить кого-нибудь подбирать все дельное, что выбрасывает БМ. Нельзя отрицать, что к БМ часто приходят хорошие идеи, но полное отсутствие у него чувства ответственности приводит к срыву любых установленных сроков.
"Готовлю Новые Утилиты"
ГНУ, как и следует из его имени, убежден, что существует лишь один истинный источник хорошего программного обеспечения - Ассоциация бесплатных программ. Не обращая внимания на отличные утилиты и компиляторы, поставленные при покупке компьютеров, ГНУ желает написать свою версию для какой-нибудь утилиты, прежде чем собственно приступить к работе. Разумеется, чтобы написать какую-нибудь свою утилиту, сначала нужно самому написать все остальное (текстовый редактор, компилятор, линкер и т.п.). В результате весь диск оказывается заполнен самодельным набором разнообразных утилит и инструментов. Если присмотреться, то становится ясно, что ГНУ постоянно занят изготовлением патча номер 9.4.32.4.4.12 к бесполезной бесплатной программе, нужной, чтобы сделать другую бесполезную бесплатную программу. Ни на что другое времени у ГНУ нет. В тех редких случаях, когда ГНУ что-то действительно делает, с его программой приходится поставлять целый компакт-диск ГНУ-утилит, которые пользователь должен установить прежде, чем будет откомпилирована хоть одна строка ГНУ-кода. Вообще-то, полезно иметь про запас одного такого работника, но опасно заводить сразу двух ГНУ, поскольку каждый захочет сделать "все свое" независимо от другого...
"Квадратный Болт, Круглая Дырка"
КБКД несколько лет назад написал неплохую программу, которая решила свою задачу и принесла немного пользы. Потом КБКД получил список новых требований к новой программе. Впрочем, это не имело никакого значения, поскольку КБКД считает код ВСЕХ программ повторно-используемым. И повторно использует код той самой программы. В результате получается либо многомодульный монстр, сшитый при помощи скрытых параметров, битов состояния и головоломных типов данных, либо диск засыпается массой библиотек, макросов и маленьких вздорных программ, которые когда-то работали согласованно, но нынче требуют невообразимого количества фильтров, переходников и конверторов. КБКД часто производит впечатление продуктивного работника, но это только потому, что большая часть кода была написана пять лет назад для другого проекта, а вся его работа состоит в попытках втиснуть код в чуждое ложе.
"Объектно Дезориентированный"
ОД встает на "дорогу в Дамаск" в тот самый миг, когда объекты впервые посещают его ум. С этого момента все в его жизни становится объектно-ориентированным, и он никогда не оглядывается назад. Вперед ОД не глядит тоже. ОД все посылает себе самому сообщения с вопросом, куда обращено его лицо и не стоит ли оглядеться и послать себе сообщение с описанием... ОД думает на Смоллтоке, а говорит на Эйфеле или Модуле-3. Весь диск забит компиляторами, а вместо работы ОД занят документированием пробелов в системе типизации и, подобно всем ОД, разрабатывает собственный Совершенный Язык. Особенно опасны ОД, являющиеся знатоками баз данных. Им жизненно нужна мощная машина, чтобы заполнить гигабайт-другой неструктурированными бессистемными ссылками, каждая из которых укажет на число 42. Каждая попытка чтения/записи в их базу данных приводит к недельному отказу сетевого сервера.
"Мой Собственный Любимый Язык"
МСЛЯ знает решение задачи. Единственная загвоздка в том, что нет компилятора для языка, на котором нужно написать программу. МСЛЯ знает только два языка: свой свойственный и тот, который нужен для компиляции его компилятора. Проблема самодельного компилятора в том, что код, который он генерирует, неэффективен и плохо поддается отладке. Как бы хорош ни был МСЛЯ в роли программиста, программа получится громоздкой и, скорее всего, потребует целого набора ран-тайм библиотек и служебных программ. МСЛЯ более склонен возиться со своим компилятором, чем работать над проектом. МСЛЯ мечтает о дне, когда компилятор его СЛЯ будет написан на самом СЛЯ, правда, скорее выйдет на пенсию, чем завершит свою программу, если только эта программа не будет являться компилятором языка из группы функциональных для компиляции еще чьего-нибудь языка.
"Дайте Нам Иструментарий"
ДНИ уже имеет нужное для решения задачи программное обеспечение, покупное или самодельное. Оно великолепно, с ним приятно работать, оно надежное, простое и изящное. Такое ПО принадлежит прежнему нанимателю ДНИ, вот в чем проблема... Такое ПО не способно работать ни на одной из имеющихся у вас машин... Кажется, что раньше ДНИ жил в альтернативной реальности, где обалдевшие тусовщики гоняют Кайф ОС, а Окна С Темными Стеклами - самая популярная среда разработки, для которой полно позаимствованного, присвоенного, краденого и даже написанного ПО. Есть еще и такая незадача: вне пределов Редкоземляндии никто на планете не слыхал о корпорации Кайф Системс, а ее программное обеспечение значит для нас, землян, меньше, чем коровья лепешка... Поскольку Кайф Системс прекратила свое существование пять лет назад, то величайшие из ДНИ проводит месяц за месяцем в попытках написать кайф-эмулятор для ваших машин, а простые смертные ДНИ заваливают письмами группы comp.sys.kajf и comp.sys.eto, спрашивая, а не пробовал ли хоть кто-нибудь сделать порт с Кайф на Это-250...
"Макро Колдун"
Макро Колдун верит, что программирование как таковое устарело, поскольку любой программе можно скомандовать "лечь/встать", либо передав ей параметры, либо запустив макрос. МК разрешит любую задачу, набросав макрос здесь, набросав скрипт там и сделав парочку командных файлов, чтобы связать все воедино. Есть два типа МК: Макро Колдун Юникс и Макро Колдун Микро. МКЮ, решает ли он головоломку в vi или сортирует списки в TECO, знает, что делает. Он перенаправляет свой .profile на препроцессор Си и наблюдает, как тот переписывает сам себя при каждом логоне. Громадное большинство МКЮ программ сделаны на встроенном Лиспе Emacs и даже не подумают запуститься без полной установки всего 2.5-гигабайтного дистрибутива последней версии. Выполняются такие программы столько же времени, сколько было затрачено на их написание. На другом конце шкалы находятся МКМ со своими HyperCard, ToolBook и прочей манной кашкой. МКМ также не упускают шанса побаловаться макроязыками текстовых редакторов, электронных таблиц и баз данных. И все это одновременно. Полностью употребив все имеющиеся в их распоряжении возможности, МКМ создают программы, которым для загрузки требуется примерно неделя. Потом эти программы мигают непонятными меню и диалоговыми окнами. Макроколдовство, к сожалению, не лечится. Лучшее, что можно сделать, - это подвести 380В к стулу МК. "В Сетях Кошмара" ВСК упивается сложностью. Его база данных находится на майнфрейме IBM где-то в Канаде; X-windows интерфейс к ней - на машине Hewlett-Packard в Швейцарии; исполняющее ядро интерфейсной части - на Cray в Индонезии, а сама программа - на Вояджере II... Каждая из частей пакета в зависимости от множества различных факторов, включая фазу Луны, автоматически выбирает для каждого сеанса коммуникационный протокол. Нет сомнения в том, что ВСК способен создать работоспособную систему, которая будет расти и становиться все сложнее и сложнее. Одно "но": простым смертным не дано ее постичь. ВСК твердо верит, что "все равно все виртуально", к сожалению, включая сюда такие вещи, как время исполнения и пропускную способность сети. Совместная работа с ВСК вполне может быть удовольствием. Главное - не подпускать его к своей машине, иначе там будет без перерыва идти перекодировка EBCDIC в шесть бит и трансляция запросов X.500 на маршрутизацию из Узбекистана в Аугадуду через TCP/IP шлюз в Охтермахти, что в составе Алоханет... Лучше, если это возможно, перевести ВСК в отдел обслуживания.
"Необузданный Порядок"
НП никогда не делает ничего полезного даже в первом приближении, но содержит весь когда-либо написанный им компост в идеальном порядке. Буквально все, начиная от "песма тети дорис от миня" в возрасте 6 лет и до подштанников, рассортировано и снабжено ярлыками. Хотите версию 8.2 сочинения "Как я провел лето перед первым классом"? Пожалуйста! Иногда НП накапливает до 14000 версий текстов программы, над которой работает. Он сохраняет исходный текст и перестраивает make-файлы каждый раз, когда изменяет один символ, поскольку "никогда нельзя быть уверенным до конца..." А еще НП помешан на архивах, и его комната завалена дисками и магнитными лентами, содержащими полные резервные копии инструкций по нумерации версий и порядку резервного копирования. НП невозможно ни помочь, ни добиться помощи от него. Лучше его уволить: пусть коллекционирует марки.
"Искусственная Тупость"
Есть два подвида программистов этого типа, и с любым из них невозможно ужиться. Традиционные ИТ проводят большую часть времени, подсчитывая скобки в эпической Лисп-программе, а также в попытках просветить Пролог в вопросе семейных отношений. Окончательно запутавшись, ИТ просто запускает "Элизу" и рассказывает ей о своих родственниках, пока та не зависнет от скуки... Величайшие из таких ИТ заставляют свои Пролог-программы говорить с "Элизой", а сами проводят свободное время на конференциях. Новые ИТ занимаются нейронными сетями. Они растрачивают часы и мегабайты, создавая рыхлые сбоящие программы, и заполняют массивы почти сплошь одними нулями с редкими вкраплениями единиц, которые, наверное, нужны больше для эстетики. Эти программы генерируют громадные файлы с теми же нулями, которые должны доказывать, что разницу между маслом и маргарином можно обнаружить меньше, чем за десять часов... Иногда у новых ИТ есть видеокамеры и ПО для распознавания образов, но это все показуха, поскольку эти программы не способны отличить вас от Сесиль Паркинсон или кого-нибудь другого. Единственная проблема с ИТ состоит в том, что системы, которые они создают, по меньшей мере так же тупы, как и их создатели. Всегда избегайте их.
"Пожиратель Чисел"
ПЧ знает ответ: он скрыт в парочке чертовски трудных интегральных уравнений семнадцатого порядка, и где-то среди стандартных библиотек была подходящая для их решения... Что, у вас нет нужной библиотеки? К сожалению, ПЧ не особенно силен в программировании (Фортран или Си в стиле Кернигана и Ричи), поэтому он не может сказать, какая нужна процедура, с какими параметрами и, честно говоря, из какой библиотеки... ПЧ по образованию физик или математик, что отчасти объясняет состояние его компьютера. Скажем, ПЧ хранит все свои файлы в единственном оглавлении, которое называется F44433232.DAT или вроде этого. А на десктоп ПЧ обычно вывешивает "Джулию", - "Мандельброт" староват, да и для расчета картинки нужно слишком мало вычислительной мощности. Хорошо знает машинную математику, иногда даже кажется, будто у ПЧ на внутренней стороне век вытатуирован формат представления плавающего числа. Поскольку ПЧ является единственным во всей организации человеком, который помнит арифметику для первого класса, то иногда бывает полезен.
"Мета Проблема"
МП верит, что любую задачу можно решить двояко: либо приспособить к ней решение другой задачи, либо написать инструментарий, который бы генерировал программу для данного частного случая на основе решения более общей задачи. Обыкновенно МП сведущ в теории автоматов и языков программирования и наслаждается сложностью. Хотя речь МП звучит правдоподобно, на деле обобщающая мета-задача, на решении которой сосредоточен МП, порождает целый выводок мета-мета-задач, которые, в свою очередь заражают проект мета-мета-мета-задачами. В итоге МП либо теряется в толпе проблем, либо вынужден решить Вечный Вопрос, прежде чем сможет сделать хоть что-нибудь. Иметь в своей команде МП чрезвычайно весело, но очень тяжело. Многие из МП были в прошлой жизни формалистами или математиками, поэтому с ними непросто общаться. Их программы лучше выполняются на бумаге, чем в компьютере.
"Что Такое Файл?"
Мертвее всех мертвых, ЧТФ являются к нам с другой планеты, где еще верят, будто компьютеры - странные волшебные враждебные звери. Для ЧТФ каждый ввод сетевого пароля - необычайное и ужасное приключение. Диск ЧТФ заполнен файлами с именами аааа, bbbb, cccc, xxxx и так далее, а также "посмертными" дампами памяти, которые генерировала система при каждом сбое. ЧТФ не программирует, точнее, программирует редко. Он пользуется одной или двумя программами наподобие "Проводника" и никогда их не закрывает. Итогом такой деятельности бывает двадцать семь загруженных экземпляров текстового редактора, восемь экземпляров "Проводника" и полностью блокированная сеть или файл-сервер. До тех пор, пока удается удержать ЧТФ от программирования, шансы сделать работу еще сохраняются. ЧТФ нужно дать машину, отключенную от сети. Да, еще следует защитить системные файлы, поскольку ЧТФ славятся привычкой удалять оглавление SYSTEM "для экономии места на диске".
"Я Из Редкоземляндии"
ЯИР был лучшим среди программистов Редкоземляндии, где компьютеры с паровым приводом построены на принципах троичной нечеткой логики. ЯИР считает 8 Кб памяти неслыханным простором и не доверяет оконным интерфейсам. Бегло говорит на редкоземляндском и, хотя поначалу кажется, что ЯИР неплохо знает английский, он конфузится каждый раз, когда звонит телефон и не поднимает трубку. Верит только тому, что говорят другие редкоземляндцы; правдами и неправдами устраивает на работе неофициальный клуб общения для своих земляков. Некоторые из ЯИР - действительно великолепные во всех отношениях программисты. Однако эффективность их работы перечеркивается тем, что во-первых, тексты их программ прокомментированы на великолепном редкоземляндском, а во-вторых, документация, которую они пишут, вызывает своей грамматикой и лексикой в лучшем случае идиосинкразию, а в худшем - получается что-то вроде руководства Sun.
"Порох В Пороховнице"
В каждом учреждении есть один такой ПВП. Он работает (как минимум) с начала семидесятых и считает такие вещи, как PC XT, непроверенными и слишком модернистскими. Для ПВП линия PDP-6/10/Decsystem-20 - единственная настоящая архитектура, он признает только шестибитовые символы, считает ASCII чушью, во время перекуров с удовольствием объясняет команду CAILE и поддерживает ftp-архив старых операционных систем для PDP-10. ПВП когда-то уговорили переписать его старые программы для Unix, но дальше V7 он не продвинулся. ПВП знает смысл всех битов режима в регистрах TECO и пользуется ими. Его программы представляют собою жуткую смесь ассемблера и макросов TECO. ПВП опасны, обычно носят бороду (даже женщины). ПВП полезно иметь при себе, поскольку они либо видели, как все создавалось, либо создавали это сами и, следовательно, знают массу фокусов. Главное - не давать ПВП программировать лично.
"Я Это Могу!"
ЯЭМ - пылающий энтузиазмом вчерашний выпускник, который путает интерфейс пользователя с функциональностью. Поэтому, увидев однажды готовую программу, он заявляет, что может "слепить этакое за недельку". Через четыре года "этакое" еще не "слеплено", поскольку ЯЭМ не понимает подлежащей семантики или структур данных. Очень хороша мысль дать ЯЭМ в пару кого-нибудь, кто сможет достаточно долго выносить его энтузиазм. Некоторый недостаток ЯЭМ в том, что его программы тащат за собою необъятные и ненадежные библиотеки классов интерфейса пользователя. Так, для создания программ, которые никогда не сделают ничего полезного, особенно популярна библиотека MFC. Но, что греха таить, в наше просвещенное время Visual Basic и Visual C++ начинают играть роль средств художественного самовыражения... ЯЭМ может быть полезен группе по разработке интерфейса или программы, где не важно мастерство, но жизненно необходимы красивые пикселы на экране.
"Какого Цвета Это Должно Быть?"
КЦЭДБ прочел все книги о разработке человеко-машинного интерфейса и поверил каждому из взаимоисключающих положений, которые там вычитал. У КЦЭДБ всегда самая дорогая из имеющихся машин - с огромным экраном, звуковой платой, колонками, микрофонами, системой распознавания речи, мультимедийным шлемом и перчатками, но без клавиатуры. Просто КЦЭДБ физически неспособны (или, все-таки, не хотят?) набирать символы на клавиатуре. Пожалуй, КЦЭДБ больше психолог или социолог, чем программист. КЦЭДБ предпочитает возиться со шрифтами, цветами, раскладками экранов, правилами управления окнами, чем программировать, хотя обладает недюжинными знаниями, как заставить все перечисленное работать. Типичная программа КЦЭДБ "Hello World" состоит из 400 строк исходного текста, а конечный файл занимает около полутора мегабайт. В оправдание КЦЭДБ нужно сказать, что его программа полностью мультимедийная, с удобным интуитивным интерфейсом и конфигурируемыми опциями. В свете сказанного не удивительно, что КЦЭДБ больше никогда не напишет ничего более существенного.
"С Точки Зрения Безопасности..."
СТЗБ привлечен к разработке программ, от которых зависит, взорвется что-нибудь или нет. Поэтому он занимает весьма принципиальную позицию: "Все программы ненадежны, безопасности нет никакой, и будь я проклят, если напишу сам или дам написать другим хоть строчку кода. Положение нельзя усугублять!" Теоретически СТЗБ прав, но работодатель время от времени вынуждает его поступаться принципами и делать хоть что-нибудь. Поскольку СТЗБ чаще всего штатный работник или имеет долгосрочный контракт, его вполне можно понять...
Евгений Щербатюк
"Я - Величайший"
Твердо верит, что является величайшим программистом из всех, когда-либо ступавших по земле. В доказательство показывает исходный текст Тетриса, состоящий из трех строк. Большую часть времени перед экзаменами ЯВ провел в компьютерном классе. Сдать экзамены и защититься ему удалось только благодаря тому, что он подобрал пароль к ответам на билеты. Думает на смеси Си и ассемблера, считает Настоящих программистов молокососами, знает на память всего Кнута, даже не написанные тома, и считает, что Кнут продался, когда взялся писать TeX. Комната ЯВ завалена распечатками кода ядра устаревших версий Unix. Он знает, что такое Plan 9, и иногда проигрывает его дистрибутивный компакт на аудио плейере - просто для развлечения. Никто, кроме самого ЯВ, не может понять написанного им кода, и ЯВ это совершенно устраивает. Абсолютно никто не в состоянии воспользоваться компьютером, который он "настроил для себя", что также его очень устраивает, так как позволяет избежать вопросов, чем же он, собственно, занят. Привлечение ЯВ к любому проекту совершенно латально, если для работы требуется сотрудничество, документирование и обмен кодом. ЯВ лучше вычеркнуть из списка разработчиков и отправить его к прочим хакерам.
"Интернетовский Фрукт"
В начале своей карьеры ИФ дни напролет просиживал в компьютерном классе рядом с ЯВ, но, в отличие от первого, читал новости. ИФ применяет в программировании новый подход: он исповедует религиозное убеждение, что Интернет бесконечен, а потому должен содержать в точности ту программу (с исходными текстами, по анонимному FTP), разработка которой ему поручена. Естественно, проблема всего одна: эту программу нельзя запустить ни на одной из имеющихся машин. Нужно обновить либо компьютерный парк, либо системное программное обеспечение, либо достать "всего только еще один" патч из сети, либо все перечисленное вместе. Если программа, против ожидания, работает, то ИФ немедленно в ней разочаровывается и начинает поиски нового пакета. Только ИФ знает, где в сети лежит инфракрасная карта погоды Гавайев за 1963 год. ИФ выживает только в местах с хорошими каналами связи и очень терпимыми сетевыми администраторами. Его потребности в дисковом пространстве огромные, а желание поставить новую ОС или увеличить пропускную способность сети просто феноменальное. Иногда ИФ находит что-нибудь полезное, но он слишком занят, разыскивая что-то еще, чтобы действительно воспользоваться своими находками.
"Бешеный Макетчик"
БМ прочел все книги о разработке программного обеспечения и поверил, что нужно пользоваться методом пошаговой разработки программ с широким применением прототипов и макетов. К сожалению, БМ максималист, почти каждый день начинающий работу с чистого листа. Пытаясь достичь такой новизны и элегантности, чтобы все просто попадали, БМ строит новые и новые макеты для проверки новых идей, новых интерфейсов и даже новых языков. Естественно, когда БМ приходит в голову очередная свежая мысль, старый макет немедленно выбрасывается. И чаще всего это происходит еще задолго до завершения хоть чего-нибудь. У БМ обычно есть поверхностный навык работы с системами быстрой разработки и такими инструментами Unix, как yacc, Perl и Awk. Результат, слепленный из них всех, по производимому впечатлению может сравниться только с лепными украшениями в сортирах итальянских гостиниц. Работу, в принципе, можно довести до конца, если поставить кого-нибудь подбирать все дельное, что выбрасывает БМ. Нельзя отрицать, что к БМ часто приходят хорошие идеи, но полное отсутствие у него чувства ответственности приводит к срыву любых установленных сроков.
"Готовлю Новые Утилиты"
ГНУ, как и следует из его имени, убежден, что существует лишь один истинный источник хорошего программного обеспечения - Ассоциация бесплатных программ. Не обращая внимания на отличные утилиты и компиляторы, поставленные при покупке компьютеров, ГНУ желает написать свою версию для какой-нибудь утилиты, прежде чем собственно приступить к работе. Разумеется, чтобы написать какую-нибудь свою утилиту, сначала нужно самому написать все остальное (текстовый редактор, компилятор, линкер и т.п.). В результате весь диск оказывается заполнен самодельным набором разнообразных утилит и инструментов. Если присмотреться, то становится ясно, что ГНУ постоянно занят изготовлением патча номер 9.4.32.4.4.12 к бесполезной бесплатной программе, нужной, чтобы сделать другую бесполезную бесплатную программу. Ни на что другое времени у ГНУ нет. В тех редких случаях, когда ГНУ что-то действительно делает, с его программой приходится поставлять целый компакт-диск ГНУ-утилит, которые пользователь должен установить прежде, чем будет откомпилирована хоть одна строка ГНУ-кода. Вообще-то, полезно иметь про запас одного такого работника, но опасно заводить сразу двух ГНУ, поскольку каждый захочет сделать "все свое" независимо от другого...
"Квадратный Болт, Круглая Дырка"
КБКД несколько лет назад написал неплохую программу, которая решила свою задачу и принесла немного пользы. Потом КБКД получил список новых требований к новой программе. Впрочем, это не имело никакого значения, поскольку КБКД считает код ВСЕХ программ повторно-используемым. И повторно использует код той самой программы. В результате получается либо многомодульный монстр, сшитый при помощи скрытых параметров, битов состояния и головоломных типов данных, либо диск засыпается массой библиотек, макросов и маленьких вздорных программ, которые когда-то работали согласованно, но нынче требуют невообразимого количества фильтров, переходников и конверторов. КБКД часто производит впечатление продуктивного работника, но это только потому, что большая часть кода была написана пять лет назад для другого проекта, а вся его работа состоит в попытках втиснуть код в чуждое ложе.
"Объектно Дезориентированный"
ОД встает на "дорогу в Дамаск" в тот самый миг, когда объекты впервые посещают его ум. С этого момента все в его жизни становится объектно-ориентированным, и он никогда не оглядывается назад. Вперед ОД не глядит тоже. ОД все посылает себе самому сообщения с вопросом, куда обращено его лицо и не стоит ли оглядеться и послать себе сообщение с описанием... ОД думает на Смоллтоке, а говорит на Эйфеле или Модуле-3. Весь диск забит компиляторами, а вместо работы ОД занят документированием пробелов в системе типизации и, подобно всем ОД, разрабатывает собственный Совершенный Язык. Особенно опасны ОД, являющиеся знатоками баз данных. Им жизненно нужна мощная машина, чтобы заполнить гигабайт-другой неструктурированными бессистемными ссылками, каждая из которых укажет на число 42. Каждая попытка чтения/записи в их базу данных приводит к недельному отказу сетевого сервера.
"Мой Собственный Любимый Язык"
МСЛЯ знает решение задачи. Единственная загвоздка в том, что нет компилятора для языка, на котором нужно написать программу. МСЛЯ знает только два языка: свой свойственный и тот, который нужен для компиляции его компилятора. Проблема самодельного компилятора в том, что код, который он генерирует, неэффективен и плохо поддается отладке. Как бы хорош ни был МСЛЯ в роли программиста, программа получится громоздкой и, скорее всего, потребует целого набора ран-тайм библиотек и служебных программ. МСЛЯ более склонен возиться со своим компилятором, чем работать над проектом. МСЛЯ мечтает о дне, когда компилятор его СЛЯ будет написан на самом СЛЯ, правда, скорее выйдет на пенсию, чем завершит свою программу, если только эта программа не будет являться компилятором языка из группы функциональных для компиляции еще чьего-нибудь языка.
"Дайте Нам Иструментарий"
ДНИ уже имеет нужное для решения задачи программное обеспечение, покупное или самодельное. Оно великолепно, с ним приятно работать, оно надежное, простое и изящное. Такое ПО принадлежит прежнему нанимателю ДНИ, вот в чем проблема... Такое ПО не способно работать ни на одной из имеющихся у вас машин... Кажется, что раньше ДНИ жил в альтернативной реальности, где обалдевшие тусовщики гоняют Кайф ОС, а Окна С Темными Стеклами - самая популярная среда разработки, для которой полно позаимствованного, присвоенного, краденого и даже написанного ПО. Есть еще и такая незадача: вне пределов Редкоземляндии никто на планете не слыхал о корпорации Кайф Системс, а ее программное обеспечение значит для нас, землян, меньше, чем коровья лепешка... Поскольку Кайф Системс прекратила свое существование пять лет назад, то величайшие из ДНИ проводит месяц за месяцем в попытках написать кайф-эмулятор для ваших машин, а простые смертные ДНИ заваливают письмами группы comp.sys.kajf и comp.sys.eto, спрашивая, а не пробовал ли хоть кто-нибудь сделать порт с Кайф на Это-250...
"Макро Колдун"
Макро Колдун верит, что программирование как таковое устарело, поскольку любой программе можно скомандовать "лечь/встать", либо передав ей параметры, либо запустив макрос. МК разрешит любую задачу, набросав макрос здесь, набросав скрипт там и сделав парочку командных файлов, чтобы связать все воедино. Есть два типа МК: Макро Колдун Юникс и Макро Колдун Микро. МКЮ, решает ли он головоломку в vi или сортирует списки в TECO, знает, что делает. Он перенаправляет свой .profile на препроцессор Си и наблюдает, как тот переписывает сам себя при каждом логоне. Громадное большинство МКЮ программ сделаны на встроенном Лиспе Emacs и даже не подумают запуститься без полной установки всего 2.5-гигабайтного дистрибутива последней версии. Выполняются такие программы столько же времени, сколько было затрачено на их написание. На другом конце шкалы находятся МКМ со своими HyperCard, ToolBook и прочей манной кашкой. МКМ также не упускают шанса побаловаться макроязыками текстовых редакторов, электронных таблиц и баз данных. И все это одновременно. Полностью употребив все имеющиеся в их распоряжении возможности, МКМ создают программы, которым для загрузки требуется примерно неделя. Потом эти программы мигают непонятными меню и диалоговыми окнами. Макроколдовство, к сожалению, не лечится. Лучшее, что можно сделать, - это подвести 380В к стулу МК. "В Сетях Кошмара" ВСК упивается сложностью. Его база данных находится на майнфрейме IBM где-то в Канаде; X-windows интерфейс к ней - на машине Hewlett-Packard в Швейцарии; исполняющее ядро интерфейсной части - на Cray в Индонезии, а сама программа - на Вояджере II... Каждая из частей пакета в зависимости от множества различных факторов, включая фазу Луны, автоматически выбирает для каждого сеанса коммуникационный протокол. Нет сомнения в том, что ВСК способен создать работоспособную систему, которая будет расти и становиться все сложнее и сложнее. Одно "но": простым смертным не дано ее постичь. ВСК твердо верит, что "все равно все виртуально", к сожалению, включая сюда такие вещи, как время исполнения и пропускную способность сети. Совместная работа с ВСК вполне может быть удовольствием. Главное - не подпускать его к своей машине, иначе там будет без перерыва идти перекодировка EBCDIC в шесть бит и трансляция запросов X.500 на маршрутизацию из Узбекистана в Аугадуду через TCP/IP шлюз в Охтермахти, что в составе Алоханет... Лучше, если это возможно, перевести ВСК в отдел обслуживания.
"Необузданный Порядок"
НП никогда не делает ничего полезного даже в первом приближении, но содержит весь когда-либо написанный им компост в идеальном порядке. Буквально все, начиная от "песма тети дорис от миня" в возрасте 6 лет и до подштанников, рассортировано и снабжено ярлыками. Хотите версию 8.2 сочинения "Как я провел лето перед первым классом"? Пожалуйста! Иногда НП накапливает до 14000 версий текстов программы, над которой работает. Он сохраняет исходный текст и перестраивает make-файлы каждый раз, когда изменяет один символ, поскольку "никогда нельзя быть уверенным до конца..." А еще НП помешан на архивах, и его комната завалена дисками и магнитными лентами, содержащими полные резервные копии инструкций по нумерации версий и порядку резервного копирования. НП невозможно ни помочь, ни добиться помощи от него. Лучше его уволить: пусть коллекционирует марки.
"Искусственная Тупость"
Есть два подвида программистов этого типа, и с любым из них невозможно ужиться. Традиционные ИТ проводят большую часть времени, подсчитывая скобки в эпической Лисп-программе, а также в попытках просветить Пролог в вопросе семейных отношений. Окончательно запутавшись, ИТ просто запускает "Элизу" и рассказывает ей о своих родственниках, пока та не зависнет от скуки... Величайшие из таких ИТ заставляют свои Пролог-программы говорить с "Элизой", а сами проводят свободное время на конференциях. Новые ИТ занимаются нейронными сетями. Они растрачивают часы и мегабайты, создавая рыхлые сбоящие программы, и заполняют массивы почти сплошь одними нулями с редкими вкраплениями единиц, которые, наверное, нужны больше для эстетики. Эти программы генерируют громадные файлы с теми же нулями, которые должны доказывать, что разницу между маслом и маргарином можно обнаружить меньше, чем за десять часов... Иногда у новых ИТ есть видеокамеры и ПО для распознавания образов, но это все показуха, поскольку эти программы не способны отличить вас от Сесиль Паркинсон или кого-нибудь другого. Единственная проблема с ИТ состоит в том, что системы, которые они создают, по меньшей мере так же тупы, как и их создатели. Всегда избегайте их.
"Пожиратель Чисел"
ПЧ знает ответ: он скрыт в парочке чертовски трудных интегральных уравнений семнадцатого порядка, и где-то среди стандартных библиотек была подходящая для их решения... Что, у вас нет нужной библиотеки? К сожалению, ПЧ не особенно силен в программировании (Фортран или Си в стиле Кернигана и Ричи), поэтому он не может сказать, какая нужна процедура, с какими параметрами и, честно говоря, из какой библиотеки... ПЧ по образованию физик или математик, что отчасти объясняет состояние его компьютера. Скажем, ПЧ хранит все свои файлы в единственном оглавлении, которое называется F44433232.DAT или вроде этого. А на десктоп ПЧ обычно вывешивает "Джулию", - "Мандельброт" староват, да и для расчета картинки нужно слишком мало вычислительной мощности. Хорошо знает машинную математику, иногда даже кажется, будто у ПЧ на внутренней стороне век вытатуирован формат представления плавающего числа. Поскольку ПЧ является единственным во всей организации человеком, который помнит арифметику для первого класса, то иногда бывает полезен.
"Мета Проблема"
МП верит, что любую задачу можно решить двояко: либо приспособить к ней решение другой задачи, либо написать инструментарий, который бы генерировал программу для данного частного случая на основе решения более общей задачи. Обыкновенно МП сведущ в теории автоматов и языков программирования и наслаждается сложностью. Хотя речь МП звучит правдоподобно, на деле обобщающая мета-задача, на решении которой сосредоточен МП, порождает целый выводок мета-мета-задач, которые, в свою очередь заражают проект мета-мета-мета-задачами. В итоге МП либо теряется в толпе проблем, либо вынужден решить Вечный Вопрос, прежде чем сможет сделать хоть что-нибудь. Иметь в своей команде МП чрезвычайно весело, но очень тяжело. Многие из МП были в прошлой жизни формалистами или математиками, поэтому с ними непросто общаться. Их программы лучше выполняются на бумаге, чем в компьютере.
"Что Такое Файл?"
Мертвее всех мертвых, ЧТФ являются к нам с другой планеты, где еще верят, будто компьютеры - странные волшебные враждебные звери. Для ЧТФ каждый ввод сетевого пароля - необычайное и ужасное приключение. Диск ЧТФ заполнен файлами с именами аааа, bbbb, cccc, xxxx и так далее, а также "посмертными" дампами памяти, которые генерировала система при каждом сбое. ЧТФ не программирует, точнее, программирует редко. Он пользуется одной или двумя программами наподобие "Проводника" и никогда их не закрывает. Итогом такой деятельности бывает двадцать семь загруженных экземпляров текстового редактора, восемь экземпляров "Проводника" и полностью блокированная сеть или файл-сервер. До тех пор, пока удается удержать ЧТФ от программирования, шансы сделать работу еще сохраняются. ЧТФ нужно дать машину, отключенную от сети. Да, еще следует защитить системные файлы, поскольку ЧТФ славятся привычкой удалять оглавление SYSTEM "для экономии места на диске".
"Я Из Редкоземляндии"
ЯИР был лучшим среди программистов Редкоземляндии, где компьютеры с паровым приводом построены на принципах троичной нечеткой логики. ЯИР считает 8 Кб памяти неслыханным простором и не доверяет оконным интерфейсам. Бегло говорит на редкоземляндском и, хотя поначалу кажется, что ЯИР неплохо знает английский, он конфузится каждый раз, когда звонит телефон и не поднимает трубку. Верит только тому, что говорят другие редкоземляндцы; правдами и неправдами устраивает на работе неофициальный клуб общения для своих земляков. Некоторые из ЯИР - действительно великолепные во всех отношениях программисты. Однако эффективность их работы перечеркивается тем, что во-первых, тексты их программ прокомментированы на великолепном редкоземляндском, а во-вторых, документация, которую они пишут, вызывает своей грамматикой и лексикой в лучшем случае идиосинкразию, а в худшем - получается что-то вроде руководства Sun.
"Порох В Пороховнице"
В каждом учреждении есть один такой ПВП. Он работает (как минимум) с начала семидесятых и считает такие вещи, как PC XT, непроверенными и слишком модернистскими. Для ПВП линия PDP-6/10/Decsystem-20 - единственная настоящая архитектура, он признает только шестибитовые символы, считает ASCII чушью, во время перекуров с удовольствием объясняет команду CAILE и поддерживает ftp-архив старых операционных систем для PDP-10. ПВП когда-то уговорили переписать его старые программы для Unix, но дальше V7 он не продвинулся. ПВП знает смысл всех битов режима в регистрах TECO и пользуется ими. Его программы представляют собою жуткую смесь ассемблера и макросов TECO. ПВП опасны, обычно носят бороду (даже женщины). ПВП полезно иметь при себе, поскольку они либо видели, как все создавалось, либо создавали это сами и, следовательно, знают массу фокусов. Главное - не давать ПВП программировать лично.
"Я Это Могу!"
ЯЭМ - пылающий энтузиазмом вчерашний выпускник, который путает интерфейс пользователя с функциональностью. Поэтому, увидев однажды готовую программу, он заявляет, что может "слепить этакое за недельку". Через четыре года "этакое" еще не "слеплено", поскольку ЯЭМ не понимает подлежащей семантики или структур данных. Очень хороша мысль дать ЯЭМ в пару кого-нибудь, кто сможет достаточно долго выносить его энтузиазм. Некоторый недостаток ЯЭМ в том, что его программы тащат за собою необъятные и ненадежные библиотеки классов интерфейса пользователя. Так, для создания программ, которые никогда не сделают ничего полезного, особенно популярна библиотека MFC. Но, что греха таить, в наше просвещенное время Visual Basic и Visual C++ начинают играть роль средств художественного самовыражения... ЯЭМ может быть полезен группе по разработке интерфейса или программы, где не важно мастерство, но жизненно необходимы красивые пикселы на экране.
"Какого Цвета Это Должно Быть?"
КЦЭДБ прочел все книги о разработке человеко-машинного интерфейса и поверил каждому из взаимоисключающих положений, которые там вычитал. У КЦЭДБ всегда самая дорогая из имеющихся машин - с огромным экраном, звуковой платой, колонками, микрофонами, системой распознавания речи, мультимедийным шлемом и перчатками, но без клавиатуры. Просто КЦЭДБ физически неспособны (или, все-таки, не хотят?) набирать символы на клавиатуре. Пожалуй, КЦЭДБ больше психолог или социолог, чем программист. КЦЭДБ предпочитает возиться со шрифтами, цветами, раскладками экранов, правилами управления окнами, чем программировать, хотя обладает недюжинными знаниями, как заставить все перечисленное работать. Типичная программа КЦЭДБ "Hello World" состоит из 400 строк исходного текста, а конечный файл занимает около полутора мегабайт. В оправдание КЦЭДБ нужно сказать, что его программа полностью мультимедийная, с удобным интуитивным интерфейсом и конфигурируемыми опциями. В свете сказанного не удивительно, что КЦЭДБ больше никогда не напишет ничего более существенного.
"С Точки Зрения Безопасности..."
СТЗБ привлечен к разработке программ, от которых зависит, взорвется что-нибудь или нет. Поэтому он занимает весьма принципиальную позицию: "Все программы ненадежны, безопасности нет никакой, и будь я проклят, если напишу сам или дам написать другим хоть строчку кода. Положение нельзя усугублять!" Теоретически СТЗБ прав, но работодатель время от времени вынуждает его поступаться принципами и делать хоть что-нибудь. Поскольку СТЗБ чаще всего штатный работник или имеет долгосрочный контракт, его вполне можно понять...
Евгений Щербатюк
Компьютерная газета. Статья была опубликована в номере 34 за 1999 год в рубрике разное :: мелочи жизни