Александр Амзин: Немного зажрались
АрхивКолонка АмзинаГде-то на самом низком уровне есть огромное количество ленивого кода, написанного без всякого желания выжать из компьютера максимальную производительность.
Начнем с легенды. Один из отцов-основателей искусственного интеллекта примерно пятьдесят лет назад предложил своему студенту в качестве домашнего задания написать программу, распознающую лица.
На достойном уровне эта задача была решена сравнительно недавно. Чего не хватало? Большого объёма данных, вычислительной мощности, десятков команд исследователей, штурмующих проблему с разных сторон. Не хватало террористов, которые сделали подобные исследования чрезвычайно востребованными.
Пятьдесят пять лет назад выходит научно-фантастический роман Роберта Хайнлайна "The Moon is a Harsh Mistress" (русские варианты - "Луна жёстко стелет", "Луна - суровая хозяйка" и "Восставшая Луна"), действие которого разворачивается в семидесятых годах двадцать первого века.
Один из героев романа, компьютер Майк, создает неотличимое от настоящего видеоизображение лидера повстанцев, Адама Селена. Главный герой считает, что у Майка ничего не получится, ведь для этого нужно производить десять миллионов операций в секунду.
Можно снисходительно улыбнуться наивности Хайнлайна: наши домашние компьютеры производят миллиарды элементарных операций, оборудованы специальными графическими системами, но до сих пор не могут осуществить рендеринга такого уровня в реальном времени.
Мало того. Вот уже лет тридцать земляне развивают электронный документооборот: набирают электронные тексты, верстают журналы, переписываются друг с другом. Затёртый любителями старины пример: текстовому редактору не требуется мощный процессор. Я бы сказал больше - ему за глаза хватит майковских 10 миллионов операций.
Oh, really? Недавно я решил перейти с веб-почты Gmail на стандартный почтовый клиент Apple Mail. Поставил на синхронизацию и пошел пить чай. Я был готов к тому, что перенос семи гигабайт займёт какое-то время, и намеревался посвятить пару часов разбору падающей почты.
Этим планам было не суждено сбыться. Загрузка потребовала более двух суток, хотя тот же объём при ширине моего канала должен был скачаться максимум часов за пять. Всё это время почтовик еле ворочался. Я попытался проделать то же самое с Mozilla Thunderbird - результат ещё более плачевный. Произошедшее ни в коей мере не бросает тень на почтовые клиенты. Мне кажется, что это проявление гораздо более глубокого явления.
Вот ещё один пример. Всем владельцам iPhone 3G известно проклятие iOS 4. После установки новой версии системы смартфоны стали сильно тормозить, хотя функциональность именно iPhone 3G была расширена гораздо меньше, чем у его более свежих собратьев. В версии Apple iOS 4 для iPhone 3G нельзя использовать даже фоновые обои; как утверждали в самой компании, из-за влияния на производительность.
Четырёхсот мегагерц недостаточно для прокрутки без задержек цветных экранов размером 320 на 480. Их же недостаточно для быстрой обработки нажатий на кнопки экранной клавиатуры. Полноте.
Мне кажется, что разработчики, авторы платформ и прочие деятели немного зажрались. Я не против покупки новых программ, траты денег на мощные смартфоны и обновления операционных систем.
Я против того, чтобы Word, в котором я набираю эту статью, тратил десять секунд на запуск и ещё десять секунд на открытие (а LibreOffice - и все шестьдесят). И против того, чтобы следующая версия тратила ещё больше. Я против того, чтобы операционная система задумывалась на пару мгновений перед тем, как переключиться с одной задачи на другую.
Где-то в глубине, на самом низком уровне, есть огромное количество ленивого кода, написанного без желания выжать максимальную производительность и достичь минимального времени отклика на действия пользователя. Над этим кодом множество слоев абстракции, позволяющих расставить кнопочки и не думать о том, как их отрисовывают.
Когда качество общения с компьютером зависит от чистой техники, это неправильно.
Ужасно видеть, например, войну Flash и HTML5, единственной причиной которой является ресурсоёмкость Flash и большое число недостатков, накопленных за долгую историю развития продукта.
Ужасно видеть, как Firefox отдает долю рынка Chrome в первую очередь потому, что первый долго не обновлял свою платформу, а второй с самого начала сделал упор на производительность.
Ужасно, когда время запуска программы со списком дел превышает время, требуемое для того, чтобы открыть блокнот.
Но самое ужасное - я не знаю, как это исправить.