Опубликовано в Gazeta.Ru от 17-06-1999 (Выпуск No 073)
Оригинал: http://gazeta.ru/flopovod/17-06-1999_oop.htm


Дмитрий Турецкий, <dmitri@listsoft.com>
Почему все тормозит?

Компьютеры развиваются с сумасшедшей скоростью. В компьютерном мире как, пожалуй, нигде чувствуется справедливость американской пословицы: "чтобы стоять - надо идти, чтобы идти - надо бежать". Если вы хотите, чтобы ваш компьютер справлялся со своей работой (даже при условии неизменности самой работы), его приходится периодически, причем не так уж и редко, модернизировать. Но почему?! И зачем?!

Предположим, что все что вам надо делать - это печатать документы (не такая редкая ситуация, между прочим). Несколько лет назад для этого более чем хватало 486DX-33, Win3.1 и MS Word 2.0. Да и на 386-ом, в общем-то, тоже можно было работать без особых проблем. Потом появилась Win95, и четверки стало ощутимо не хватать. Работа с MS Word 6.0 на такой машине превращалась в мучение. Потом в обиход вошли Пентиумы и, только было люди вздохнули свободнее, как вышел Word 97. Ресурсов он требовал еще больше, русский текст любил печатать квадратиками, не был совместим с предыдущими версиями, но... все же активно завоевывал новых пользователей. Потом, когда цены на Pentium 166-200 стали более или менее приемлемыми, работа вроде бы наладилась. Но... появилась Win98, которой этой машины было явно мало. Затем упали цены на Pentium II, и сочетание PII-300, Win98 и Word97 стало работать относительно приемлемо, однако... теперь грядет Office 2000 вместе с одноименной Windows...

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

Другой фактор - это пользователи, стремящиеся к максимальному комфорту даже себе во вред. Посмотрите сколько программ висит у вас в фоне? Аська, GetRight или ReGet, какой-нибудь scheduler, антивирус... А ведь все это требует ресурсов. Что-то больше, что-то меньше, но все равно требует. Программы все, наверняка, самой последней версии... А так ли это необходимо? Попробуйте, например, рассказать, чем был вызван ваш переход от Office 95 к Office 97? Есть ли там функции, без которых вы не могли обойтись? Да? А раньше как обходились? ;-))

Вышесказанное это отнюдь не призыв "назад на пальмы", просто попытка показать, "куда уходят народные средства". Есть известный принцип 10/90, который гласит, что 90% работы занимает 10% времени. То же самое в полной мере относится к программам - 90% функциональности занимают 10% ресурсов. Остальные 90% ресурсов уходят на всевозможные "фенечки", которые, может быть, красивы и даже потенциально полезны, но отнюдь не необходимы. Особенно такой ценой.

Есть и еще одна причина для появления bloatware - стиль программирования. Те, кто с компьютерами возится относительно давно, еще помнит дискуссии по поводу стилей программирования "сверху вниз" или "снизу вверх" - т.е. разрабатывать ли сначала общую концепцию программы, а затем детально расписывать отдельные ее куски; или же сначала отладить отдельные процедуры, а затем собирать из них программу в целом. Сейчас же повсеместное распространение получило объектное программирование, при котором программа собирается из отдельных кусочков - объектов. ООП (Объектно Ориентированное Программирование) - штука действительно замечательная и удобная для программиста, т.к. позволяет многократно использовать единожды написанные объекты, дописывая к ним свои методы и свойства по мере надобности. Это значительно экономит силы программиста, затраты времени на разработку новых программ, но... как обычно, у каждого плюса есть свой минус. А то и не один.

Во-первых, исходный объект, используемый в программе, может быть написан отнюдь не идеально. И все его последующие модификации будут сохранять эти недостатки. Во-вторых, использование объектов изначально требует больше ресурсов, чем программа, написанная без них. В-третьих, падает средняя квалификация самих программистов. А это, в свою очередь, приводит к появлению все большего числа программ, написанных на языках "очень высокого уровня" - например, Visual Basic, в котором почти все действия по компоновке программы выполняются самим компьютером и от программиста не зависят. Соответственно, и качество получающейся программы оптимальным не назовешь.

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

Так что перед тем как в очередной раз ставить новую версию чего-либо, попробуйте подумать, что вам важнее - "шашечки" или ехать?

Пишите нам: info@gazeta.ru
Copyright © Gazeta.Ru
RRU_Network
При перепечатке и цитировании ссылка на источник с указанием автора обязательна. Перепечатка без ссылки и упоминания имени автора является нарушением российского и международного законодательства, а также большим свинством.