10-Mar-2004
Спрашиваете ли вы себя, почему так плохи компьютеры и программное обеспечение, которыми мы пользуемся? Нет? Вы довольны этой грудой железа, которая включатеся в 300 раз медленнее телевизора, требует особой процедуры выключения (шатдаун, как говорят в цивилизованном мире), часто виснет или в лучшем случае делает не то что ожидается?
Я не доволен компьютерами и софтом и как пользователь, и как программист. Причем недоволен всем, что создается в мире, включая и то, что напортачил сам. Это все сюкс (как говорят некоторые российские хакеры), потому что не работает как надо, глючит и создает проблемы. Мне просто осточертела эта липкая медлительность и хроническая ненадежность всего, абсолютно всего, что связано с компьютерами. Windows, Linux - всё одно: пытаясь решить какую-то проблему, скажем, автоматизации какого-то там процесса, вы незаметно для себя оказываетесь в лабиринте новых проблем, настолько разнообразных и увлекательных (!), что вряд ли осознаете свое состояние как "полный каюк".
Злоба накапливалась давно, но переливание через край началось после того, как я попытался сапгрейдить {чайникам - на следующий параграф} sshd на седьмой красной шапочке (RH7, то бишь). Надо бы залатать этот секюр-шелл, а то ведь ремоут эксплоит... 4 часа подряд я ощущал себя фокусником, который вытягивает из пиджака бесконечные платочки, связанные узелками. Депенденси, называется. Нет, так и не сапгрейдил. Да, к Гуглу обращался. Нет, RH9 ставить не могу в силу обстоятельств. Нет, я не чайник, но при этом слишком дорого ценю свое время, чтобы потратить целый день на какой-то паршивый апгрейд. Нет, компьютер не вылетел в окно, он по-прежнему стоит в углу. Затих. Знает, что высовываться сейчас нельзя, иначе станет достоянием бомжей во дворе, или в лучшем случае превратится вот в такой нехитрый аппарат.
Очень часто в последнее время спрашиваю себя: почему холодильники, телевизоры, автомобили, мобильники (кроме последних, навороченных) так просты в обращении, работают as expected? Включил телевизор - через секунду он уже что-то показывает, а еще через секунду можно начать гулять по каналам и быстренько найти что-то для души. Телевизоры не глючат, хотя в них - довольно сложные аналоговые (да и цифровые) схемы. Есть правда один распространенный глюк у телевизоров: регулятор громкости работает линейно, а надо бы экспоненциально - это особенность человеческого уха. На многих моделях JVC есть этот глюк, а вот у AIWA - никогда. Ну да ладно, это в конце концов даже не глюк, а просто недочет. Это можно простить.
Но простить 65,000 ошибок в пре-релизе Windows 2000 не могу. (Было такое дело. У Майкрософта наверное был 16-битный счетчик ошибок, который переполнился, и дальше они перестали принимать баг-репорты пользователей. Позже пресса округлила непонятное число 65,535 в 65,000. Моя версия.) Вы вот простили, а я - нет.
Что-то с какого-то момента пошло не так в цифровом мире. В аналоговом и механическом мирах все в порядке, все гораздо надежнее, долговечнее и в целом внушает больше доверия.
И главное, как программист, я ощущаю себя участником этого безобразия. В мире, наверное штук 20-30 миллионов программеров, вот на одну тридцатимиллионную я и несу ответственность за то, что все сюкс.
Программер, знай: ты не умеешь создавать надежные системы (в широком смысле), не умеешь подолгу обдумывать и проверять каждый свой шаг так, как это, вероятно, делали создатели автомобилей BMW, атомных подводных лодок и египетских пирамид. Ты приучил бедных пользователей к тому, что софт может, имеет такое право, работать на 80%, а не на 100%, и что еще 10% может быть доработано после поступлений жалоб от пользователей. И что оставшиеся 10% не будут доработаны никогда, потому что это укладывается в рамки приемлемого на сегодняшний день.
Как же насчет завтрашнего дня? Снова глюки, апгрейды, нервотрепка для пользователя (а может и больше чем сегодня, ведь компьютеры усложняются в три раза каждые два года)? Если софт, который я пишу, ты пишешь, будет только усложняться, но не улучшаться, то нам не по пути.
Упс... иш куда, не по пути ему. К сожалению я слишком люблю программирование, чтобы его оставлять. Позади уже 16 лет с момента, когда я впервые подошел к компьютеру с неэстетичным названием ДВК - этой совершенной советской копии совершенного компьютера PDP-11. Все, что у меня было - это примитивная операционка, и нечто, до сих пор вызывающее величайшее уважение: Компилятор. И весь этот клад - на двух огромных 7-дюймовых дискетах. Сложность и емкость понятия "компилятор" я ощутил на собственной шкуре годами спустя, при попытке создания своего собственного. А ведь смотришь: тогдашние программисты довольно заботливо относились по крайней мере к своему брату программисту (пользователей-то толком еще не было) и старались делать хорошие операционки и компиляторы, которые были быстры и надежны, и подводили даже реже чем автомобиль BMW.
Порой думаю, вернуть бы те совершенные PDP и поставить их повсюду управлять АЭС, орбитальными станциями и системами климат-контроля небоскребов. Вернуть бы пару хороших компиляторов Си (ну ладно, Си++) и Паскаля и передать их в руки тогдашних мэтров программирования, которые напишут абсолютно надежную систему управления чем-нибудь в ночь с субботы на воскресение, предварительно обдумав все за прошедшую неделю. В этой системе будет ровно два бага, которые будут отловлены во время тестирования другими мэтрами программирования.
И чайникам тут делать нечего: это черно-желтый текстовый экран, на котором ни MPEG видео, ни Internet Explorer, ни ваш чертов бухгалтерский спредшит не работают. Если вам нужна автоматизация бухгалтерии - учитесь работать на простой текстовой консоли, и без мыши. А нет - до свидания!
Идите же тогда и раскошеливайтесь на целые полтора куска зелененьких за супер-пупер железо с Пентиумом, не забудьте еще пол-куска за ваши любимые Окна, Ворд и Эксел, и можете себя поздравить: вы купили гнилые бананы за большие деньги. Так вам и надо.
Или же не раскошеливайтесь на Окна, а поставьте бесплатную систему Linux, которая абсолютно безвозмездно, т.е. фактически по любви (как говорят в России в некоторых ситуациях) создаст вам целый комплекс неудобств, а наиболее непродвинутых чайников доведет до депрессии и поставит на путь противления научно-техническому прогрессу. Открытый исходный код, говорите? Да он на 99.99% состоит из абсолютно бесполезного хлама, написанного новичками, бездельниками, неокоммунистами, или же просто программерами, оставшимися без работы. Это тоже сюкс, и может даже в большей степени, чем Майкрософт.
И будете ждать у окна вашего дисплея каждое утро пока будут загружаться ненавистные Окна, или не менее ненавистный Линух, будете подолгу копаться в пестрых меню пытаясь найти калькулятор (а ведь настоящий калькулятор валяется на соседнем столе - на черта вам этот?), и позже будете биться головой об свой плоский ViewSonic, когда обнаружится, что ваша бухгалтерская база полетела ко всем чертям. Error: file format unknown. Запасной копии либо нет, либо двухнедельной давности. Притащите-ка вы лучше старый добрый PDP и привыкайте к черно-желтым дисплеям...
А я бы отдал эти полторы или две тысячи долларов за хороший домашний кинотеатр и за все фильмы Стенли Кубрика на DVD. И еще тов. Ф.Ф.Копполы. Скажу вам, удовольствия было бы гораздо больше, чем от современного компьютера...
Но не меньше, ребята, чем от процесса программирования.
Американцы любят с гордостью говорить, что все началось с миникомпьютеров в конце 70-х и также с первых спредшит-программок. Врут. Эти первые спредшиты, ребята, писались мэтрами программирования, а не нашим братом тридцатимиллионником, и именно поэтому миникомпьютеры со спредшитами вошли теперь в жизнь каждого бухгалтера на Земле. Очевидно, что безобразие началось не с этого.
Первые впечатления от PC для каждого программиста неразрывно связаны с одним из: Турбо Паскаль, Турбо Си или Клиппер. Операционная система DOS практически представляла собой платформу для Компиляторов, которые, в свою очередь, позволяли создавать все остальное. И была такая демо-программка в Турбо Паскале, может помните, TurboCalc. Простой такой, но полноценный текстовый спредшит. О шит, заглядываешь в исходный код - красота-то какая! Простота, элегантность, эстетичность, объектная ориентированность, и прочие крутые штучки. Минимум кода - максимум функциональности. И главное - ни единой ошибки. Эх, загляденье! Вот оно, настоящее Программирование!
И именно здесь, на почве этой невинной простоты выросло то, что обернулось злом сегодня. Хотите знать что именно? Программисты, стремясь облегчить жизнь всем - от бухгалтеров до архитекторов, не забыли и о нашем брате. Появились компиляторы и среды программирования, в которых становилось все легче и легче писать программы. Вот к примеру, Клиппер, этот удачливый уродец, настолько упростил и релаксировал синтаксис и семантику своего языка, что даже случайно набраннаая последовательность символов могла компилироваться без ошибок и даже что-то делать при запуске программы. Клиппер был призван превратить в программиста любого случайно выбранного прохожего.
Так оно и случилось: любой прохожий стал программистом. Более того, этот прохожий стал зарабатывать довольно неплохие деньги за свои кривые бухгалтерские, складские, зарплатные и прочие системы. Просто потому, что в те времена Человек, Который Разбирается в Компьютерах и Умеет Писать Программы на Клиппере - это как инопланетянин или какой-нибудь гость из будущего, которому непременно надо хорошо заплатить, а то еще напортит чего-нибудь. Ну, и еще потому что все это так круто - высокие технологии!
Но мы, ребята, упустили одну важную вещь, которая выявилась только сегодня: высокие технологии оказались (собственно, всегда были) не очень-то "высокими". Вы не замечали сколько среди программеров и хакеров людей без высшего образования? Или вы не видели людей, которые за 2-3 месяца становились Клиппер, Си++ или Java-программистами? Прочитал какую-нибудь книжку по Java - и долой унылое прошлое, ты уже в крутой фирме зарабатываешь крутые бабки!
Но ведь тут явно что-то не так. Человечество, опьяненное невиданными темпами развития информационных технологий, позабыло о том, что значит фундаментальное образование, что такое наука, что такое годы опыта в области, и наконец, что именно должно оплачиваться высоко, а что - не очень.
Сравните теперь нашего прохожего, случайно посвященного в Орден программистов, с физиком, или хотя бы со схемотехником (аналоговым!). Это вам не "Hello, world!", здесь требуются годы фундаментального образования, да такого, что сам человек, его сущность и образ мышления меняются незаметно для него самого.
Заказчик, знай: программистом может стать любой дурак, получивший доступ к компьютеру. Не плати программисту слишком много, зато требуй много. И бей его палкой за каждую найденную ошибку в его системе.
(По сему, в целях улучшить будущие операционные системы, Майкрософт приговаривается к 65,000 ударам палкой, прилюдно.)
И еще одна важная деталь: в эйфории находилась не только передовая часть человечества, которая собственно создала компьютеры и Интернет, но также и отсталая его часть, включая пост-советскую, которая неожиданно для себя нашла в яичке "киндер-сюрприз" этакого гадкого утенка: возможность поставлять программистские "мозги" на Запад, с выездом на место или без - не важно. Догадываетесь почему? Потому что для этого ничего не надо иметь, только дешевые компьютеры, доступ к которым получат те самые случайные прохожие. (Физикам тоже можно, на Востоке в качестве физиков они уже не нужны.) Многие годы это было большим секретом, но Запад все же не дурак, он-то уже все понял...
А мир уже успел породить миллионы программистов и приблизительно столько же софт-проектов, удавшихся или нет. Причем понятие "проект удался" в цифровом мире находится на том же уровне, что и "проект провалился" в мире аналого-механическом. Все эти годы миллионы программистов получали большие деньги за кое-как работающий код, несовершенство которого умело скрыто в майонезе IT-маркетинга.
Все, Ctrl-C. Этому пришел конец. Может медленно, за несколько лет (так ведь такие вещи быстро не делаются), но пришел.
Сначала бабахнулся так называемый дотком-бубль, но это нашего брата программиста особо не касается. Дотком-бубль - это чистый майонез, даже без салата. Но бабах заставил серьезно задуматься венчурных капиталистов о том, во что они вкладывают деньги, стоит ли оно того. Не только в доткомах, а вообще, в IT. Вот этот парень, к примеру, - говорит себе венчурный капиталист, - который только пару лет назад окончил университет, или, может, приехал из Индии или России, стоит ли он $100,000 в год? Что собственно он делает, и отрабатывает ли созданное им хотя бы столько же - $100,000 в год?
Ответ - ... правильно, читатель, ты просто умница. Так ведь он еще не один, вот в этом стартапе таких - целая дюжина, да еще столько же администрации и спецов по маркетингу. А что вы ребята, собсно, создали такого, за что надо вкладывать в вас целых три лимона в год?!
Запад достаточно гибок и умен, чтобы суметь перестроиться и найти выход в кратчайшие сроки. Выход таков: программирование навсегда уходит в Индию и проч. и переходит в ту же полку, где находится выращивание бананов. Да потому что та софт инженерия, которая существовала до сих пор и давала результаты кое-как - она и есть банановая инженерия. В принципе она нужна и имеет свое место в мире, но при условии, что стоимость разработки приблизится к стоимости выращивания бананов. Банановая республика - цифровая республика. И все довольны.
Не без жертв, конечно. Только в США - полмиллиона безработных IT специалистов, которым как-то придется выкручиваться, и некоторым - серьезно задуматься о том, являются ли они программистами по призванию.
Менеджер, знай: программистом является только тот, кто любит программирование. И остерегайся остальных, которые не любят. Эти уходят с работы всегда вовремя, и никодга не остаются по вечерам. Они не программисты, это просто ошибка. И может это они и виноваты во всем безобразии. Может 3 таких, которые любят, заменят тебе 20 таких, которые не любят, но подходят по резюме. Подумай, менеджер. Да и сам ты тоже наверное не нужен этим троим в качестве менеджера... я так думаю.
--
Овик Меликян
hovik@melikyan.com
Мнение высказанное в статье обязательно не совпадает с мнением редакции, с мнением любого IT-менеджера, и также с мнением подавляющего большинства населения Индии, России, Армении и прочих цифровых республик.
| В начало блокнота | © 2004-2009 Hovik Melikyan |