вторник, 20 ноября 2007 г.

"Айтишники! Они делают мою жизнь веселой!"

Эта фраза была бы чрезвычайно веселой, если бы, при ближайшем рассмотрении, не было так грустно.

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

За примерами далеко ходить, в общем-то, не нужно. "Сначала было слово и слово это было два байта".

ООП и Дельфи. Клиент-сервер. Линукс. Java. Flash. AJAX. Распределенные вычисления. Grid Computing. Кластеры как панацея от всех бед. Хранилища и киоски данных. XML. Web 2.0. Снова Линукс. Еще сотня Линуксов. Виртуализация - новое слово на букву "В". Нужное подчеркнуть - но вообще-то и так далее.

Знакомо? Каждый раз, когда появляется какая-то частная технология, ее пытаются засунуть во все дыры, которые только подвертываются под руку. Даже в те, куда она изначально не лезет. А потом с обидой в голосе один айтишник говорит другому - "Какая гадость этот ваш клиент-сервер! Не подходит совершенно для производства кастрюль, да и кофе варить и подавать в постель не умеет!"

Хочется всемирного и ультимативного решения - "Один размер подходит всем!". Еще более легендарный баян - "640 килобайт достаточно для любого!". Если технология не подходит для абсолютно всего - она мусор, недостойный всемирной известности. Сакс.

При этом тот очевидный факт, что каждая технология предназначена для вполне определенного, весьма узкого круга задач - никого не волнует. Об этом вообще никто не задумывается. "Чтобы писать програмы - голова не нужна. Нужна клавиатура". И не надо думать! "Клик-клак-щелк!" Рэй Брэдбери в гробу перевернется.

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

Ах, да - есть еще подход IBM. "Сила есть - ума не надо". Если стальной шарик не лезет в сливное отверстие раковины - возьмем кувалду побольше, позовем Майка Тайсона, да и заколотим его куда хотим. Мне страшно нравится такой подход. Инженеры IBM хотели подобным образом вернуть сети во времена файловых серверов, только использовать XML. Вместо крошечных пакетов IP - закодируем все в XML, будет много пакетов IP - и вуаля! Ну и что, что пакеты XML будут иметь объем десятки мегабайт - а вот вам, джентльмены, XML-акселератор! От IBM. Брэндовый. С шестизначным ценником, и прошу заметить - ни для чего другого принципиально не приспособленный и не предназначенный. Все же инженеры IBM чуть в большей степени инженеры, чем остальные "инноваторы".

Забавно, но попытка IBM заколотить шарик почему-то живо напоминает разборку самолета силами пассажиров до винтика, упаковку всех частей в ящики, погрузку в товарный поезд, на крыше которого пассажиры сопровождают его в пункт назначения, где и собирают в аэропорту прибытия. А так как подобная работа в исполнении смертных пассажиров малопродуктивна, пусть пассажирами будут инженеры, скажем, Боинг, да в костюмах от Джорджио Армани. И за это будут получать аэрокосмическую зарплату.

Жесть? Не то слово. А ведь пример с IBM - чистая правда. И это совсем не единичный случай.

К вящему счастью айтишников, средний человек знает об этих тонкостях и понимает в них примерно столько же, сколько пингвин в апельсинах. Иначе конечные пользователи поумирали бы со смеху, а айтишники с голоду. Хвала богам системного администрирования, они об этом ничего не знают!

Иногда мне кажется, что принцип инженеров "Простота залог надежности" писан не для айтишников. Многие из которых имеют нахальство считать себя инженерами.

Создается впечатление, что для айтишника решение какой бы то ни было задачи самым сложным из существующих способов - просто дело чести. "Что ты, детка - такова жизнь! Она сложна!"

Что при этом существует один из самых древнейших принципов - "Не умножай сущего сверх необходимого" - они, как правило, просто не знают в силу своего скудоумия и природной ограниченности.

Любой нормальный инженер старается делать вещи проще, а не сложнее. К поделкам господина Гейтса и его выкормышей это определенно не относится - они куют деньги на кошмарно возрастающей сложности и кажущейся простоте интерфейса. Но это относится к подавляющему большинству людей, работающих в сфере IT. Короткие и простые пути - не для нас.

Кстати о господине Гейтсе. Майкрософт - не инновационная компания. Это коммерческое предприятие. Единственная цель которого (какими бы словесами она не прикрывалась) - выколачивание денег любым приемлемым с точки зрения Минюста США образом.

Собственно говоря, а почему? Что плохого в том, что решение будет простым? Ведь, в сущности, для задачи, в которой достаточно перочинного ножа, мельничный жернов и не требуется.

И это помимо того, что есть совершенно очевидный факт - специализированное устройство/вещь всегда выполнит свои функции несравненно лучше, чем неспециализированное. Никто не пробовал швейцарским армейским ножом стричь, например, ногти? Или проводить хирургические операции?

Самое отвратительное во всем этом заключается в том, что вы, господа пользователи, нас таковыми сделали. Звериный оскал капитализма. Кто платит - то музыку заказывает. "Что, и все? Две секунды программа делала то, что мы считали неделю? Она стопроцентно врет! Не буду я платить - я не проверял, но она точно врет!" (цитирую буквально)

Постулат пользователя - "Если программа выполняет серьезную работу, она должна работать серьезно долго".

Что существует такая вещь, как оптимизация, эффективные алгоритмы, мозги, наконец -
простой пользователь не знает в принципе. Но и бог с ним - это не его дело. Он просто выбирает между сложным и очень сложным.

История появления Windows 95 - характерный пример победы абсурда и сверхусложнения над эффективностью и здравым смыслом. Напоминаю юному поколению со стажем в АйТи с 1995 года - на момент появления 95й была альтернатива - OS/2. Несравненно более быстрая, неизмеримо простая и почти не ресурсоемкая.

Что выбрало поколение Пепси? Верно, F**k me Up.

Ну что ж, теперь альтернативы нет. Кушайте то, что выбрали. А выбрали вы не что иное, как навороченный смартофон для 13-летнего подростка, гнущего пальцы перед такими же как он гениями - "Смотрите, что у меня есть!" То, что при этом 98% функций ему просто неведомы - не проблема. Они не нужны - это понты.

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

Коллеги-айтишники. Давайте будем проще. Простота - она не хуже воровства, она залог надежности. Мы же инженеры.

Дорогие пользователи. Простота - не синоним примитивности. Простота - она не хуже воровства. Гениальное всегда просто и почти всегда быстро. Помните о старой шутке, в которой лишь доля шутки - "Windows загружается, приходите завтра". Вам не нравится, когда Windows работает медленно. И так же не нравится, когда нечто простое работает быстро. Определитесь, наконец, туда или сюда - а то это "туда-сюда" - раздражает.