Колонка редактора
Небылицы
Георгий Кузнецов
Время от времени на Западе поднимается шум вокруг очередного иска к автомобильным или авиастроительным компаниям по поводу дефектов их продукции, повлекших тяжелые последствия. Суды разбираются в конструкции дверного запора или в правильности расположения бензобака.
А если бы так относились к программам? Почему все смирились с тем. что поставщик программы отказывается отвечать за ущерб, который она может причинить. Кому еще простили бы любимую присказку, что, мол не бывает изделий без ошибок? И это при запредельной рентабельности программного бизнеса!
Во время недавней разборки по поводу ошибки деления в процессоре Реntium, общественность попутно обнаружила ошибки в популярных программах. Тут отчетливо проявилась разница в подходах: процессор о железный, ему ошибаться нельзя, а программы... что ж, мягкая рухлядь.
На самом деле между процессором и программой нет почти никакой разницы. И то, и другое – продукты быстро сближающихся технологий. Процессор выполняет многие свои функции, как микропрограммы. Пресловутая ошибка деления был вызвана пропуском данных в таблице, и совершенно то же самое могло бы случиться в любой программе.
Если отбросить мистику, единственная уважительная причина для ошибок – сложность. Но с какой стати программы считаются самыми сложными изделиями? Это неверно хотя бы потому, что программы никому не нужны сами по себе, они все являются частью еще более сложной системы, к которой, тем менее, люди относятся, как к обычному техническому продукту.
Все это грандиозное надувательство выплывет на свет в один прекрасный день, когда какая-нибудь корпорация "Эйр-Берия" заявит: все 20 000 произведенных нами авиалайнеров, находясь в воздухе, в момент "Ч" попадали кто куда, поскольку конструкторы (пилоты, диспетчеры, штурманы, пассажиры, ..., мир их праху) пользовались калькуляторами из комплекта ОС фирмы "Мягкософт".
Программы, многие из которых составляют основу нашей цивилизации, должны быть даже более надежны, чем железо. Их создателей надо отучить увиливать от ответственности. Вопрос, однако, а смогут ли они что-либо сделать даже под угрозой бесчестья и разорения, или же ненадежность программ – их неизбывная особенность?
Поставим мысленный эксперимент: пусть вчера у потребителей лопнуло терпение, тогда что мы, компьютерщики , будем делать сегодня? Как призадумаешься, так много чего вспомнишь. Например, под разговоры о трудовом кризисе в программировании реальная конкуренция идет по наиболее трудоемким направлениям, к тому же развивая, как говорят американцы, свистульки и погремушки вместо полезных свойств.
Windows 95 – характерный, но не худший случай дурно направленной эволюции. В биологии есть примеры, когда отбор идет по вторично-половым признакам, загоняя вид в тупик. Скажем, у фазанов отрастают невероятной красоты и величины крылья. Ни летать, ни бегать самцы не могут, но самкам нравятся. В мире программ это называют shelfware – продукты покупают, способствуя их размножению, но почти или совсем не применяют.
Все пишут на Си, подстраиваясь под требования массового рынка (попсы, как сказали бы наши коллеги в шоу-бизнесе). Если применять критерии надежности, а значит, снижения трудоемкости разработки и упрощения самих программ, то платформы сегодняшних IBM PC, все эти DOS и Windows, двух месяцев не протянули бы. Но, вопреки распространенному мнению, и Unix, и пуще того OS/2 ненадолго бы их пережили. И никаких Си++, только Eiffel!
Тестирование программ превратилось бы в независимый бизнес. Скоро возник бы рынок страхования поставщиков программного обеспечения – и уж страховщики навели бы порядок и с технологией, и с организацией. Разделение труда в программировании обрело бы наконец правовые и экономические основы. Затраты на разработку программ возросли бы во много раз, и вскорости обычным делом стали бы коммерческие продукты, целиком изготовленные на Visual Basic. Ассемблер, а не RAD, стал бы считаться предметом роскоши.
Да что там говорить, это был бы совершенно другой мир. Даже пиратство приобрело бы конструктивные формы. Какой искатель приключений упустит шанс найти плюху в программе и вчинить поставщику иск во весь размах своей фантазии!
Но тут чувствуются и другие возможности для российского бизнеса. Скажем, а нельзя ли завоевать мировой рынок обычным спредшитом, если взять на себя ответственность за ущерб, который может произойти при правильном применении программы? Даже если нефтяной танкер разобьется у берегов Калифорнии! Под гарантии "Селенги" или Торного Алтая".
Не убедил? Тогда вот еще одна небывальщина. Допустим, вчера в России покончили с нелегальным использованием "софта". Что мы будем делать сегодня утром?
Поскольку скрыть такое событие не удастся, представительствам "софтверных" корпораций придется продавать и обслуживать свою продукцию. Печально, но не смертельно. А вот "хардверщики" стройными рядами вылетят в трубу: если вдруг окажется, что стоимость владения PC за год по крайней мере равна ее цене, спрос круто пойдет вниз.
Мало того, покупные программы начнут еще и применять (деньги-то какие плачены!), в результате чего нынешнее поколение программистов пойдет искать пропитания на большую дорогу. А уж какие способы они там найдут, мы хорошо знаем.
Короче, завтра рухнет наш замечательный Цивилизованный Компьютерный Рынок, а послезавтра придется возрождать институт пиратства в России. Так им и надо! Пусть уважают небылицы – наш национальный жанр!