Компактное программирование

С сайта no-love.narod.ru :

Александр Бурьяк

О компьютерном абсурде.

(Отрывок из "Откровений мизантропа").
Мой старый PC 286 загружает свою операционную систему MS DOS за 25 секунд. Мой новый Pentium 2 (что за дурацкое название: пятый второй!) загружает свой Windows 98 минуты за три, не меньше. Если это прогресс, то я согласен считать себя идиотом. Да что там время загрузки! Когда я, продержавшись на 286-м до предела возмжности, был вынужден из-за необходимости доступа в интернет перейти на Pentium, вскрылась и вовсе кошмарная вещь. При попытке (о, благотворный метод тыка!) запустить несколько старых, собственноручно написанных программ с 286-го на новом компьютере мой Pentium настолько "сдох", что пришлось вызывать специалиста, который с ним долго возился и обнаружил, что причиной "смерти" был вирус "One Half", с которым я много лет благополучно уживался на 286-м (он там и сейчас есть!), поскольку было лень разыскивать столь же старый "антивирус". Иначе говоря, программа с 286-го не "пошла", а вирус "пошел"! Сраная операционная система Windows 98 оказалась уязвимой от хорошо известного древнего вируса, который был вполне терпим в операционной системе MS DOS! Есть компьютерные программы более-менее сносные: пусть и бес- толковые, но хотя бы достаточно простые, чтобы к их бестолковым особенностям можно было привыкнуть. И есть программы ужасные: сочетающие бестолковость со сложностью. Но даже с их бестолко- востью и сложностью можно было бы сжиться, если бы каждая из них не была бестолковой и сложной по-своему, а не в каком-то общем стиле. Мне в жизни не повезло: пришлось много разбираться с разными кошмарными компьютерными программами, поэтому я ненавижу и эти программы, и их создателей, и тех, кто всему этому попуститель- ствовал, и даже тех, кто не понимает, почему я все это ненавижу и почему это должен, по моему мнению, ненавидеть всякий здравомыслящий человек. По-видимому, большинство этих ублюдочных программ пишут разболтанные волосатики с серьгами в ушах -- в перерывах между компьютерными играми и поисками порнографии в интернете. Или припыленные гении-трудоголики, имеющие смутное представление о том, чем следует заниматься нормальному человеку. Одним из них неймётся пооригинальничать, другим всего лишь плевать на пользователя, и всем им представляется, что у пользователя сойдется свет на их уродливом творении и что тот будет получать огромное удовольствие от постижения разных иррегулярностей, опасных мест, заумных регулировок, корявых именований, туманных сообщений, таинственных обозначений и прочей белиберды в их выдающемся продукте. Когда для того, чтобы можно было как-то разобраться в их распухшей, хромой и горбатой системе, они создают какую-нибудь вспомогательную систему, они получают еще одну, почти такую же распухшую, хромую и горбатую дрянь. В числе наиболее ненавистных для меня вещей -- операционная система Windows, законодатель бестолковости в мире перснальных компьютеров. В самом деле, чего хорошего можно было ожидать от фирмы с дебильным названием "Microsoft" ("мелко-мягкое")?! Всякий раз, когда мне попадается на глаза очкастая физиономия ее создателя или когда при мне упоминают его имя, я чувствую приступ жгучей ненависти. Может, именно из-за этого говнюка мне так трудно было выдавливать из себя по капле антисемита. На совести этого суперабсурдизатора такие неимоверные потери здоровья, сил и времени в масштабах человечества, что он не искупит их, даже если поливать его серной кислотой, потом ломать ему кости одну за другой и напоследок долго пропускать через него ток на электри- ческом стуле. * * * Часто слышишь похвалы, а спроси, за что хвалят, объяснить не могут. Б. Грасиан. "Карманный оракул" (аф. 253). Разве не любопытно, почему несмотря на широкое распространение такого мощного средства усиления интеллектуальной деятельности, как персональный компьютер, состояние человечества по большому счету вовсе не улучшилось, и мы по-прежнему перенапрягаемся на работе, чрезмерно рискуем на улице, реже бываем счастливы, чем надо, и как находились, так и находимся на пороге глобальной катастрофы природопользования? Может, компьютер существенно затормозил ухудшение состояния человечества, и без него давно бы уже наступил крах? А может, наоборот, это великое средство используется в очень многих случаях неуместно и поэтому прибавляет трудности, а не устраняет их? Второе предположение выглядит более близким к истине. Компьютер воспринимается большинством людей как абсолютно полезная сущность, радикальное средство решения очень многих проблем, источник удовольствия, "символ прогресса". Между тем это сложная и опасная вещь, которую не так уж просто применить эффективно или хотя бы безвредно. Если человек ленится или не в состоянии определять, в какую сторону ему следует развивать набор своих компьютерных технологий, он выбирает простой подход: внедряет самое новое, или то, что пользуется наибольшим текущим спросом, или то, что наиболее распространено. Предпочевшие 1-ю стратегию провоцируют тех, кто предпочел 2-ю, а те и другие вместе провоцируют тех, кто выбрал 3-ю. В итоге сомнительные программные продукты получают широкое распространение. Функции персонального компьютера для пользователей: развлечение компьютерными играми и путешествиями по интернету; обеспечение престижа, демонстрация высокой квалификации и незаменимости; отгораживание от непосвященных; соревнование (у кого компьютер лучше); поддержание надежды на большой положительный эффект от применения компьютера в работе; удовлетворение любопытства; способствование самоуважению; облегчение взаимодействия с теми, кто уже "компьютеризован". Никакой верстак, токарный станок или синхрофазотрон такого потрясающего набора полезностей не предоставит. Вот почему у все большего числа людей жизнь крутится вокруг компьютера. Я на работе даже в послеобеденный сон погружаюсь, приняв задумчивую позу перед монитором. * * * Если программист изучил некую сложную программную систему и пришел к выводу, что она плохая, то он, несмотря на низкую ее оценку, будет склонен пропагандировать и использовать эту систему: чтобы окупить свои затраты на изучение, не выглядеть неудачником и не тратить время на изучение чего-то еще. Программист может отстаивать приобретение нового программного продукта, среди прочего, для того, чтобы освоить работу с ним и благодаря этому найти место получше в другой фирме, или даже для того, чтобы удовлетворить за чужой счет свое гнусное любопытство. Распространение больших компьютерных программ нередко происходит следующим образом. Продавец подбивает программиста в какой-нибудь фирме представить дело так, что без такой-то программы эта фирма работать хорошо никак не сможет. Программист начинает совать начальству рекламные проспекты, плакаться в докладных записках, с умным видом ронять саркастические замечания, а то и вовсе зани- маться саботажем. Наконец, руководство не выдерживает и тратится. В результате программист получает от дилера кое-что существенное, сложность информационных технологий в фирме возрастает, у разра- ботчика программ укрепляется иллюзия, что он на правильном пути и нужен обществу. После того, как новая программа окажется интегри- рована в систему управления, от нее невозможно будет избавиться без некоторых потерь. Эффективности предприятию она вряд ли при- бавит (или прибавит в одном, но убавит в другом), но зато сделает более красивыми какие-то отчеты, позволит чувствовать приобщен- ность к научно-техническому прогрессу, прибавит солидности и т. д. -- в общем, вовсе не будет восприниматься как раковая опухоль, хотя при тщательном рассмотрении (а кто на него способен и имеет в нем интерес?) можно было бы обнаружить, что все это "суета и томленье духа". Распространение ненужных компьютерных программ отчасти обуслов- ливается обманными действиями продавцов этих программ. Продавец, стремящийся во что бы то ни стало продать программный продукт, использует демонстрационные примеры, составленные особо тщательно и для наиболее выгодных случаев. Клиент, видя их, полагает, что все его приложения будут разработаны примерно на том же уровне качества. В действительности же обеспечение высокого качества нередко оказывается экономически неоправданным, или вовсе недо- стижимым, и приложения получаются слишком сложными, громоздкими, медленно работающими и не лучшим образом выглядят на экране. * * * О том, как компьютерные фирмы вымогают деньги у клиентов. Сна- чала они усыпляют у тех бдительность своим заботливым сервисом и дают по уши втянуться, так что без их программ уже никак. Потом они однажды заявляют: с такого-то числа мы перестаём поддерживать такой-то продукт (или такую-то версию), и будьте любезны купить у нас другой продукт (или другую версию). А чтобы клиент при этом чувствовал себя прогрессивным, а не облапошенным, они рассказыва- ют ему про удивительные свойства новой программы (или версии), забывая добавлять, что без этих удивительных свойств клиенту жилось бы ещё лучше. * * * Проблемы, порождаемые компьютером: затраты на приобретение, эксплуатацию, ремонт, обновление; затраты на обучение использованию компьютера; затраты на ввод данных, на интерпретацию результатов компьютерной обработки данных; порча данных, нарушение управления при поломке компьютера, при заражении его компьютерными вирусами; потери от похищения или намеренного повреждения данных; потери от ошибок в программах; потери от неправильного использования программ; повреждения здоровья от работы за дисплеем; деградация или недоразвитие интеллекта от чрезмерного упрощения некоторых видов деятельности, вызванного применением компьютера; искажение представлений о мире, порождаемое длительным пребыванием в "виртуальной реальности". Распространению правдивых сведений о вредных последствиях использования компьютеров препятствуют те, кто их производит, распространяет, обслуживает, а также те, кто "попался на крючок" и не способен лишить себя компьютерных удовольствий. У компьютеров нет конкурирующих изделий, у компьютерной отрасли нет конкурирующих отраслей. Поэтому нет и влиятельных субъектов, заинтересованных в разоблачении компьютерного мифа. Сравниться с компьютером в порочной притягательности может разве что автомобиль. Но оба этих чудовища прекрасно уживаются вместе. * * * Усложнение искусственной среды, усложнение организации общества ведут к увеличению сложности управления, росту потребности в об- работке данных, поэтому есть ряд областей деятельности, в которых применение компьютеров с определенными характеристиками является очень эффективным и обеспечивает превосходство компьютеризованно- го общества над некомпьютеризованным. Но это компьютеризованное общество не делает за счет компьютеров значительного рывка к благополучию, потому что неподходящее применение компьютеров в других областях деятельности в таком обществе является значительным вредным фактором. Экономическая эффективность компьютеризации обычно нулевая, если и вовсе не отрицательная. Но компьютеры внедряются не только для того, чтобы получить экономический эффект. Другие цели: улучшить вид документации; престижно оформить офис; ускорить выполнение отдельных компонентов работы (нередко за счет замедления выполнения других компонентов и добавления новых компонентов) удовлетворить интерес к новой технике; сделать труд менее однообразным и менее ответственным. Среди прочего, компьютеры -- мощное средство нейтрализации интеллектуалов. Если компьютеры не будут использоваться для разной чепухи, придется подыскивать безобидное занятие для очень многих людей, не способных к однообразной аккуратной неквалифици- рованной работе, любящих сложности и стремящихся к превосходству над окружающими. Неумеренное внедрение компьютеров ведет к деградации общества. И это не физическая деградация, которую можно заметить, осознать, остановить, повернуть вспять, -- это ослабление способности замечать и сознавать. Компьютеризация отчуждает управление от людей: компьютеры управляют и тем, чем раньше управляли люди, и самими людьми. Сторонники повальной компьютеризации ввели термин "компьютерная грамотность". Можно соответственно ввести термин "компьютероген- ная деградация" и иметь под этим в виду неспособность осуществ- лять несложные вычисления в уме или на бумаге, записывать от руки на бумаге, запоминать содержимое прочитанных книг. У "компьютеризованного" человека место первичного знания о естественных сущностях занимает знание о том, как добывать и обрабатывать данные о естественных сущностях посредством компью- теров, а вместо навыков осуществления разнообразных умственных и мускульных действий становятся наиважнейшими навыки работы с компьютером. Таким образом, аналогично охране окружающей среды, охране здоровья нации должна осуществляться охрана интеллекта нации -- защита его не в последнюю очередь от разрушительного влияния компьютеров. Облегчение и сокращение мускульного труда стало причиной многих болезней и породило необходимость специальной компенсационной деятельности -- гимнастики и т. д. Облегчение и сокращение интел- лектуального труда аналогично приводит к отрицательным последст- виям и тоже требует компенсационных действий. Поэтому даже если человек делает некоторую работу несколько хуже компьютера, ее, тем не менее, не обязательно передавать машине. * * * Если о некоторой области деятельности заявляют, что компьюте- ризация ее дала заметный положительный эффект, то надо еще проверить следующее: не дало бы такой же или еще больший эффект вложение средств в усовершенствование чего-нибудь другого в этой области; не получен ли эффект вследствие вынужденного наведения порядка в предметной области (как условия ее компьютеризации); не перевесят ли "ближний" положительный эффект "дальние" негативные последствия. Отсутствие положительного эффекта от компьютеризации всегда можно объяснить тем, что ... компьютеров еще недостаточно много; "компьютерная грамотность" пользователей еще оставляет желать лучшего; сказываются трудности переходного периода; эффект и должен проявиться не сразу; эффект уже проявился, но он не для всех понятный. Столовая ложка имеет некий оптимум размеров и формы. Если отклониться от этого оптимума, ложка станет хуже. Почему бы не допустить, что и персональный компьютер, и любая работающая на нём программа тоже имеют некий оптимум характеристик, и дальнейшее наращивание качеств приносит в основном вред? Если бы в 2 раза более мощный компьютер стоил в 2..4 раза доро- же, его бы во многих случаях не купили. А если он стоит дороже всего лишь на треть, его во многих случаях купят, даже если не видят конкретного применения этой дополнительной мощности. Между тем, при избытке ресурса деградирует культура его применения. Далее, избыток ресурса порождает соблазн его использовать, даже если это не очень нужно, и не все способны противостоять этому соблазну. Кроме того, противостояние соблазну требует насилия над собой, а большинству людей это чуждо. Как ни приятно быть особенным, мне спокойнее, когда я нахожу хотя бы одного человека, чье мнение более-менее совпадает с моим. Мне было бы очень трудно упорствовать в моих антикомпьютерных воззрениях, если бы -- о редкостная удача! -- я случайно не нашел поддержки у одного большого специалиста. Я имею в виду Никлауса Вирта, создателя языка Паскаль. У Вирта (статья "Долой 'жирные' программы") можно прочесть: "Неконтролируемый рост размеров программ принимается как должное (...) и потому, что потребители имеют затруднения в отделении действительно существенных особенностей программного продукта от особенностей, которые просто 'хорошо бы иметь'. Примеры: произвольно перекрывающиеся окна, предлагаемые некритично воспринятой популярной метафорой "рабочий стол"; причудливые пиктограммы, декорирующие экран -- антикварные почтовые ящики для электронной почты или корзинки для сбора мусора (которые, к тому же еще , остаются видимыми при движении к их новому местоположению). Эти детали привлекательны, но не существенны, и они имеют свою скрытую стоимость."

Переселение в виртуальный мир.

Едет по шоссе программист со своим боссом. Мотор глохнет. Босс: "Позвоню по мобильному телефону, через час за нами заедут." Шофер: "Да тут, может, работы на 15 минут -- в моторе покопаться!" Программист: "Слишком долго! Давайте все выйдем из машины и снова зайдем." Владелец компьютера оказывается полным хозяином открывшегося ему "виртуального мира". Он может делать там, что хочется. Он отдыхает там душой от неприятностей, опасностей и несвободы мира реального. Он побеждает там всех своих врагов в компьютерных играх. Он стремится убежать туда при каждой возможности. Там проходит лучшая часть его жизни, а реальный мир -- лишь жалкое подобие красочного мира компьютера. Обитателю "виртуального мира" становятся гораздо менее нужными друзья, особы другого пола, еда, книги. Его главная забота -- как расширить возможности своего мира: нарастить память, быстродейст- вие и пр. (Конечно, даже в этом мире случаются иногда катастрофы: сгорает какой-нибудь блок, или вирус делает работу программ не- возможной, но это вещи всегда можно поправить: в крайнем случае, купить новый компьютер.) Навыки, приобретенные в "виртуальном мире", подсознательно переносятся в реальный мир -- и иногда оказываются совершенно не адекватными условиям последнего. "Виртуальщик" охотно идет на риск и проявляет небрежность в делах, поскольку привык, что у героя много "жизней" и что всё можно переиначить.

О многозадачности.

Многозадачность имеет две функции: 1) обеспечивать параллельное существование нескольких процессов обработки данных; 2) обеспечивать быстрый переход пользователя от одной программы к другой. Альтернатива многозадачности во второй ее функции -- использо- вание интегрированных систем. В многозадачной системе разные программы используются для того, для чего в однозадачной системе используются разные части одной программы. Зачем многозадачная система пользователю, который во всякий момент работает над единственной задачей? Если он на ней сосре- доточился, ему затруднительно и неприятно отвлекаться на что-то еще. К тому же всякие отвлечения -- обычно в ущерб качеству работы. Не так уж много найдется пользователей, у которых время от времени появляется необходимость запускать долгие "фоновые" вычисления или которые имеют постоянно работающий модем, или которых переключают с задачи на задачу внезапно меняющиеся внешние обстоятельства. Задача медленно выполняется? Но это естественно, если значи- тельная часть ресурсов системы тратится на обеспечение многоза- дачности! Зато многозадачность позволяет на рабочем месте играть в компьютерную игру, шарить в интернете, рассматривать порнографию, болтать на "форуме", быстро пряча следы своего занятия в случае приближения коллеги или начальства. (Надо сказать, я и до появления многозадачных операционных систем много использовал служебный компьютер в личных целях -- точнее, в целях исправления и просвещения человечества -- но с приходом многозадачных систем делать это мне стало гораздо легче.) * * * А вот и цитата подходящая попалась под руку. Из газеты (ноябрь 2002): "Проведенный недавно по заказу корпорации Intel опрос показал, что более 75% пользователей хотя бы иногда выполняют на своих ПК несколько задач одновременно. Самым популярным сочетанием выполняемых на ПК одновременно задач являются компьютерные игры во время записи CD-диска." Комментарий: 25% пользователей НИКОГДА не применяют многозадачности. Наверное, еще 50% легко обходились бы без нее, если бы ее не было. Еще 20% тоже без затруднений перенесли бы ее отсутствие при условии, что программы создавались бы с расчетом на однозадачный режим. Оставляю на всякий случай 5% на тех, кому многозадачность, может быть, действительно очень удобна для дела. И вот ради этих 5% несут чувствительные расходы остальные 95%. В однозадачной операционной системе MS DOS была возможность выполнять печать в фоновом режиме. Элемент многозадачности, так сказать. Правда, я не знал людей, которые бы этим пользовались. При необходимости можно было бы также доработать эту систему для записи CD-дисков в фоновом режиме или для перекачивания чего-нибудь из интернета. Возможно, даже нашлись бы люди, которым бы это пригодилось. Я работал бы и дальше на своем PC 286, если бы была возможность выходить из него в интернет и если бы был побольше винчестер. Представляю, какой ужас творился бы в мире, если бы по-прежнему выпускались PC 286 с винчестером чуть побольше, возможностью выходить в интернет и полным обеспечением запчастями и всяким периферийным оборудованием. Эти компьютеры стоили бы раза в 3 меньше, чем тот, который я купил, и были бы по карману в 10 раз большему числу людей. В то же время на них было бы невозможно крутить всякие захватывающие игрушки, слушать музыку в рабочее время и смотреть порнографические фильмы.

О локальной сети.

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

О графическом интерфейсе.

Привычное слово на привычном месте воспринимается как целостный образ, а не читается по буквам. Причем воспринимается не медлен- нее, чем "пиктограмма". Такие слова, как New, Load, Save, Print, Delete, воспринимаются даже малоопытным пользователем без побук- венного прочтения. Спрашивается: зачем же заменять их рисунками?! Неоднозначность толкования или вообще непонятность рисунков сде- лала необходимым выскакивание под рисунками поясняющего текста (при установке на них курсора). Я нередко пользуюсь таким текс- том: читаю под непонятными "пиктограммами" понятные мне New, Load, Save, Print, Delete и кляну извращенцев, которым захотелось доказать свое умение делать интерфейс в картинках. Далее, способность человека обрабатывать данные ограничена. Поэтому чем меньше на экране лишнего и бесполезной новизны, тем легче с этим экраном работать. В интегрированной системе Framework имелся процедурный язык, позволявший, среди прочего, имитировать нажатия клавиш и тем самым автоматизировать различные действия пользователя. В операционной системе Windows этого нет: поскольку среда графическая, работу с клавишами посчитали несущественной. Текстовый режим экрана ограничивает количество присутствующих на экране информационных элементов. При использовании же графи- ческого режима трудно удерживаться от соблазна насовать на экран побольше всякого: шрифтов, цветов, пиктограмм, линий. В резуль- тате лишь порча зрения и затруднение восприятия. 95% всех деловых применений компьютера не требует графического режима. 80% компьютеров можно эксплуатировать так, что за весь их жизненный цикл графический режим ни разу не будет на них использован. Еще 10% могли бы включать графический режим в редких случаях. Использование текстового режима экрана позволяет обходиться менее мощным компьютером и более простой (дешевой и надежной!) операционной системой. Но нет. Вместо трех простых компьютеров ставят один сложный за тройную цену и нанимают дополнительного человека для того, чтобы разбирался в его сложностях. * * * Можно отдельно и очень долго говорить об особых уродствах самой популярной графической операционной системы -- Windows. Лично меня больше всего раздражают в ней маленькие окна для прокрутки списков. Нет чтобы показать сразу строк 30! Но как бы не так: 5-10, не более, и ты "кликаешь" до болей в руке на всяких "элементах прокрутки" и шлёшь горячие проклятия очкастому американскому извращенцу, а ему хоть бы что.

О сложности.

У Н. Вирта (там же): "... Соблазн сложности как стимула для продаж легко понятен; сложность способствует поддержанию зависимости потребителя от поставщика. Ни для кого не секрет, например, что основные фирмы-производители программного обеспечения осуществили -- и с успехом! -- массированные инвестиции в сервисное обслуживание, наняв сотни консультантов, призванных круглосуточно отвечать на звонки пользователей. Было бы, однако, много более экономичней как для них, так и для их клиентов, если бы программный продукт основывался на систематических концептах (универсально справедливых правилах вывода, а не на таблицах правил, применимых только к специфическим ситуациям) в сочетании с систематической документацией и обучающими курсами. Конечно, клиент, который платит -- вперед! -- за договорный сервис, являет собой более стабильный источник дохода, чем клиент, который полностью самостоятельно освоил продукт. Промышленность, вероятно, преследует цели, весьма отличные от принятых в академическом мире; следовательно, можно сформулировать еще один "закон": зависимость клиента более доходна, чем его обучение. Что я нахожу истинно ставящим в тупик -- так это руководства и документация -- объемом в сотни страниц! -- которые сопутствуют прикладным программам, языкам программирования и операционным системам. Безошибочно, они сигнализируют как об извращенном проектировании без четкой концептуальной базы, так и о намерении запудрить пользователю мозги." Можно присовокупить множество добавлений к обыкновенному, "классическому" молотку: украсить резьбой и инкрустацией; встроить счетчик ударов, измеритель импульса; сделать рукоять полой для хранения в ней чего-нибудь; вмонтировать в рукоять зеркальце; и т. д. После этого можно будет гордиться своим молотком, носить его за поясом, добавлять к нему "навороты", читать новости о молотках в журнале "Молотки". Он станет дороже, потеряет в надежности, потребует дополнительного ухода, но будет использоваться по-прежнему главным образом для нанесения ударов, только с меньшей эффективностью. Накопление условно-полезных сложностей в компьютерных програм- мах происходит примерно следующим образом. Допустим, пользователь A может купить программный продукт X у одной фирмы и аналогичный продукт Y у другой. X и Y сходны по основным возможностям, но неосновная возможность Q есть только в Y. Если цена на X и Y одинакова, или Y стоит незначительно дороже X, то пользователь, скорее всего, предпочтет Y. Поскольку пользователю оказываются доступны неосновные возможности продукта Y, он начинает искать им применение -- со следующими целями: чтобы ... оправдать свой выбор; выглядеть передовым; удовлетворить свое любопытство; попробовать получить скорый положительный эффект; заложить основу для отдаленного положительного эффекта -- когда неосновная возможность Q будет усовершенствована, станет шире использоваться другими и т. д. Начав применять возможность Q, пользователь уже не в состоянии отказаться от нее без некоторых потерь. Когда приходит пора разрабатывать новую версию программы Y, производитель уже не может выбросить Q, потому что это создало бы затруднения пользователям. Изготовитель продукта X не критикует изготовителя Y за наличие в нем малополезных добавлений Q, потому что ... в противном случае изготовитель Y начнет критиковать его самого за малополезные добавления R в продукте Z; изготовитель X сам надеется выиграть от добавления Q в свои продукты. Постепенно в программе X накапливаются разные сомнительные "удобства". Потом возникает потребность в средствах быстрого доступа к этим "удобствам", и программа еще больше усложняется.

О качестве программ.

На конференции по бизнесу выступает президент корпорации Microsoft Билл Гейтс: - Если бы автомобильная промышленность развивалась так же быстро, как наша корпорация, то машины были бы сегодня в 10 раз дешевле. Встает представитель Ford Motors: - Если бы наши автомобили работали так же хорошо, как продукты корпорации Microsoft, то ломались бы 2 раза в день. Оценивать качество программного обеспечения гораздо труднее, чем, к примеру, качество автомобиля. С автомобилем все просто: хороший автомобиль -- прежде всего, такой, который редко ломает- ся, легко чинится, малоопасен, экономичен, красив и обеспечивает некоторые удобства. С программами иначе. Во-первых, у сложной программы много разных свойств; во-вторых имеют значения не только сами свойства, но и характер их сочетания, способы доступа к ним; в-третьих всегда можно убедить пользователя, что низкий уровень параметра P компенсируется высоким уровнем параметра Q или наличием дополнительного свойства R. Кроме того, сбывать программы гораздо легче, чем автомобили, поскольку программу можно бесплатно скопировать для временного пользования, и она от этого ничуть не износится. У Н. Вирта (там же): "... Кажется, присутствует всеобщая вера в то, что быстрый рост скорости процессора и размеров памяти компенсируют допущенные при проектировании программного обеспечения небрежности. Тщательная инженерная работа не приносит дивидендов в лихорадочных гонках на короткие дистанции, и это одна из причин, почему программная инженерия имеет сомнительную репутацию среди устоявшихся инженерных дисциплин."

Компьютеры и кризис цивилизации.

Не так уж трудно обосновать, что некорректная компьютеризация -- один из весомых факторов, усугубляющих глобальные проблемы, а личности вроде Билла Гейтса -- в числе главных врагов человечества: деструкторы, запутыватели, разрушители здоровья, в общем, "исчадия ада". Держать на служебном компьютере всякую чепуху и тратить часть рабочего времени на компьютерные игрушки, путешествия в Интер- нете, болтовню на "форумах" и т. д. стало негласным правом работ- ников, использующих компьютер. Если на каком-нибудь предприятии пробуют с этим бороться, начинается исход тех, кто иначе уже не может. А других найти трудно. Абсурдное развлечение вперемежку с работой и в ущерб работе -- режим, в котором трудится все большее и большее количество людей. Хорошо ли это? Судите по результатам. * * * Если в одной программе ты должен выходить из экрана по клавише F3, в другой -- по клавише F4, в третьей -- и вовсе по F9, ты начинаешь смутно догадываться, что если где-то в компьютерном мире и есть островки рациональности, то они затерлись во льдах тотального абсурда. * * * В какой-то длинной рекламной статье про систему Lotus Notes я прочел ужасную вещь: оказывается, эффективность компьютеризации обычно близка к нулю. И только внедрение Lotus Notes всегда неизменно приносит положительный эффект. Я стал подозревать, что на свете все-таки есть, по крайней мере, одна рационально устро- енная программная система. Эта мысль помогала мне жить. Пока не пришлось столкнуться с Lotus Notes самому. Не могу сказать, что я тяжело переживал удар: я к ним привычен. Пользовательский интер- фейс оказался на среднем уровне дискомфортности, быстродействие -- заснуть можно, HELP -- лучше сразу повеситься. Впрочем, я верю, что некоторый положительный эффект от внедрения Lotus Notes все-таки бывает. Но каким бы скандально огромным он был, если бы разработчики этой системы не пошли на поводу дурацкой моды! Конечно, любое компьютерное дерьмо можно очень хорошо освоить -- если угробить на это уйму времени, но мне всего-то и требовалось, что иногда обмениваться письмами и менять кое-что в содержимом текстовых баз данных. И потом, если на изучение всяких компьютерных систем тратить кучу времени, то его ни на что больше не останется, кроме как на изучение этих компьютерных систем. * * * Конечно, данный текст выглядит так, как будто я изо всех сил стараюсь придраться к компьютерам. Охотно допускаю, что в неко- торых вещах я не прав или не вполне прав, но что с компьютерами далеко не всё благополучно, я уверен. И я не сомневаюсь также в том, что люди, которые гордятся своей способностью "отыскивать концы" в компьютерном дерьме и которые смутно сознают, что и сами производят приблизительно такое же компьютерное дерьмо, когда берутся программировать, наверняка сразу же распознают во мне наивного, невежественного, ленивого, самоуверенного дурака, обделенного способностями и не понимающего романтики мегагерцев и гигабайтов.

Возврат на главную страницу
Hosted by uCoz