Очень часто можно услышать от пользователей выражения, вроде,
"Windows - must die!", "все программы глюкавые"
и т.п. И действительно, программы страшно любят зависать и
ругаться друг с другом; Windows периодически сообщает что-то
невразумительное о том, что какой-то модуль что-то куда-то
попытался записать, но она (Windows) ему не разрешила и теперь
не уверена, что вы сможете дальше работать; компьютер, проработавший
три месяца без перезагрузок можно выставлять в музее; программы
неудержимо "толстеют" - все, что меньше мегабайта
по размеру, считается "небольшим", а уж если оно
при этом еще и делает что-то толковое и не падает в течение
суток, то может считаться шедевром... Все это так. Но...
Задумывались ли вы о том, почему все это происходит? Почему
консольные
утилиты почти не пользуются спросом? Почему любая относительно
сложная программа, для работы с которой требуется прочитать
документацию, объявляется пользователями неработосособной?
Почему нормальной считается 700-килобайтная программа, в которой
полезное ядро занимает 50 Кб, а инсталлятор - все остальное?
Почему "крутость" программы оценивается в первую
очередь по интерфейсу, а какие-нибудь подсвечивающиеся кнопочки
неправильной формы гарантируют первые строчки в рейтингах
по скачиванию? На самом деле, думать тут особенно не над
чем - все и так понятно. Все дело в том, что компьютер стремится
к массам. А вот массы к нему - как то не особо... И начинается
разработка "дружественного интерфейса", максимальное
упрощение программ (упрощение с точки зрения пользователя,
а не функций и, тем более, внутреннего устройства)... А у
такого "упрощения" есть несколько побочных эффектов.
Во-первых, если программа рассчитывается "на дурака",
то в нее встраиваются механизмы защиты, т.е. програма не позволяет
пользователю выполнять действия, которые в руках специалиста
были бы весьма полезны, а вот в руках "чайника"
вполне могут привести к различным неприятным последствиям.
Причем подобная защита нарастает с каждым этапом: какие-то
механизмы встраиваются в операционную систему (например, запред
прямого доступа к "железу" в Windows). Затем, при
написании среды разработки программ, добавляются новые ограничения
и упрощения. Затем, программист, который пишет прикладную
программу встраивает в нее "защиту от дурака" уже
на своем уровне... А каждая такая защита означает потерю той
или иной функциональности, которая, возможно, вам-то и нужна!
Во-вторых, встраивая все эти защиты и стараясь сократить число
настроек до такого минимума, который бы не испугал пользователя,
программист вынужден предусматривать множество различных вариантов
и условий, в которых будет работать его программа. При этом.
как правило, выбираются далеко не самые оптимальные для каждого
конкретного случая решения.
В-третьих, развитие ООП (Объектно Ориентированного Программирования)
помимо положительных сторон - многократное использование кода
и облегчение написания программ - привело и к отрицательным:
резкое увеличение размера программ (т.к. если программисту
требуется задействовать всего одну функцию какого-то объекта,
то в программу включается весь объект) и замедление их скорости
(каждый объект представляет из себя программу, которой вполне
присущи черты, описанные выше; кроме того, все объекты, а
их число может быть очень велико, начинают обмениваться сообщениями,
что активно поглощает ресурсы). Кроме того, значительное облегчение
программирования привело к появлению множества очень непрофессионально
написанных программ - программист, хотя бы слегка знающий
ассемблер - это страшная редкость...
В-четвертых, из-за роста размеров и сложности программ, становится
практически невозможно ее тщательно протестировать. Мало того,
что программист может допустить ошибку в своей программе,
но ошибки или "недокументированные особенности"
могут оказаться и в объектах, используемых в программе и в
функциях самой операционной системы (что, увы, не редкость).
В-пятых, всевозможные "красивости" и "навороты"
в программах съедают изрядный кусок ресурсов компьютера. Если
захотите немного поразвлечься, то попробуйте установить, например,
какой-нибудь
монитор загрузки процессора (или используйте тот, что
поставляется с Windows) и посмотрите, что происходит, когда
вы просто шевелите мышкой или двигаете окошки по экрану. А
ведь это самые базовые операции... И возникает порочный круг:
программы "красивеют" до тех пор, пока средний компьютер
не начинает уж очень сильно тормозить, после чего появляется
новое железо, декларируется, что, мол, уж теперь-то все начнет
просто летать, после чего быстро пишутся новые, еще более
"красивые" версии программ, и все начинается по
новой... Можно еще писать в-шестых, в-седьмых и так далее,
но надо ли?... Тенденцию все-равно не изменить. Но можно изрядно
облегчить участь каждого отдельно взятого пользователя и компьютера.
Для этого достаточно немного подучиться. Хотя тут каждый должен
подумать и решить самостоятельно, что ему выгоднее - постоянно
апгрейдить
компьютер и наращивать его мощь, или же использовать более
произоводительные (но и несколько более сложные в настройке
и использовании) программы.
В качестве наглядной демонстрации и для развлечения, почитайте
комментарии вот к этой
программульке (и обратите внимание на ее размер)...
А истина, как обычно, где-то рядом...
|