Законы Мирволда

Twitter

Google+

Завершено расследование дела о «раздутом» софте и низкой
производительности наших смартфонов. Кому предъявлены главные обвинения?

Законы МирволдаКрасивый памятник студенту-программисту в Харькове

Наверное, каждый опытный пользователь понимает, что
программное обеспечение его смартфона написано исходя из возможностей некоего
среднего мобильного процессора, взятого разработчиком за основу, который в теории
обеспечит плавную работу софта. Программист не станет писать новое приложение
для смартфона 10-летней давности или такого, который еще не появился в продаже.
Соответствуют этому утверждению и возможности текущей операционной системы,
которую пишут исходя из возможностей современного вычислительного «железа». В
общем и целом, программный код и вычислительные средства сосуществуют
естественным образом, гармонируя друг с другом в своем развитии.

На первый взгляд, в этой гармонии все хорошо, но среди
пользователей смартфонов нет-нет, да и раздастся удивленный вскрик. Откуда этот
вскрик? В бытность Android OS
9/10, казалось бы, решены проблемы с безопасностью, с повышенным расходом
заряда аккумулятора и плохой связью, но нерешенным остался один вопрос – вопрос
внутреннего хранилища и размера приложений. С прискорбием констатируем, что
проблема «распухающих» приложений, которые со временем заполняют жесткий диск
любого объема, никуда не делась, а простые решения, такие как очистка временных
файлов, не спасают, если распухает само приложение после очередного обновления.
Самое удивительное в этом то, что когда мы говорим о простых приложениях, таких
как «погода» или «новости», то абсолютно непонятно, зачем и что делают новые
десятки мегабайт, какова их роль в отрисовке WEB-страницы, есть ли хоть что-то, для чего они были бы нужны.
Самым простым ответом являлся бы ответ о встроенной рекламе или скрытом
вирусе-майнере, но это не так. Другие пользователи могли заметить, что после
многочисленных обновлений, а особенно когда речь идет о нескольких годах
использования определенного смартфона, программное обеспечение начинает
работать хуже. Непонятно, откуда берутся «микрофризы» и некая общая
«задумчивость» смартфона. Глядя на то, как объем внутреннего хранилища
смартфонов становится все внушительнее с каждой новой выпущенной моделью, легко
впасть в заблуждение и предположить, что производитель вступил в сговор с
разработчиками ПО. Целью такого сговора должна стать вынужденная покупка нового
смартфона, ведь пользователь был бы практически выдавлен со старого смартфона
разбухшими приложениями, образно выражаясь. Но и это не так. В основе всех
описанных проблем лежат человек и производственные системы, которые он строит.

Недавно мне на глаза попалась очень интересная статья Джона Нотона (The Guardian), в которой автор все расставляет по полочкам. Не могу не привести ее целиком, выделив жирным текстом интересные утверждения:

Законы МирволдаАвтор статьи Джон Нотон — профессор общественного понимания технологий в Открытом университете, автор книги «От Гутенберга до Цукерберга: что вам действительно нужно знать об Интернете»

Еще в 1960-х годах Гордон Мур, один из основателей Intel,
отметил, что количество транзисторов, которое может быть установлено на
кремниевом чипе, удваивается каждые два года. Поскольку количество транзисторов
связано с вычислительной мощностью, это означало, что вычислительная мощность
фактически удваивалась каждые два года. Так родился закон Мура, который вселил
уверенность в большинство людей, работающих в компьютерной индустрии. Такую же
уверенность в завтрашнем дне, какую законы Ньютона вселили в
инженеров-механиков.

Однако есть одно отличие. Закон Мура — это просто
утверждение эмпирической корреляции, наблюдаемой в определенный период истории,
и мы достигаем пределов его применения. В 2010 году сам Мур предсказал, что
законы физики остановят экспоненциальный рост. «С точки зрения размера
транзистора, – сказал он, – вы можете видеть, что мы приближаемся к размеру
атомов, что является фундаментальным барьером. Пройдет еще два или три
поколения, прежде чем мы доберемся до такого уровня. У нас есть как максимум еще
10-20 лет, прежде чем мы достигнем фундаментального предела».

Сейчас мы достигли 2020 года, и поэтому уверенность в том,
что у нас всегда будет достаточно мощное вычислительное оборудование для наших
растущих потребностей, начинает казаться неоправданной. Так как это было
очевидно в течение десятилетий для тех, кто в бизнесе, было проведено множество
исследований по новым способам получения большей вычислительной мощности,
например, с использованием многоядерных архитектур, в которых ЦП имеет два или
более отдельных процессорных блока, называемых «ядрами», – в надежде отложить
ужасный день, когда кремниевый чип наконец исчерпает себя. (Например, новый
Apple Mac Pro работает на 28-ядерном процессоре Intel Xeon). И, конечно же,
существует множество безумных исследований в области квантовых вычислений,
которые, в принципе, могут стать эпохальной разработкой.

Но вычисления включают в себя комбинацию аппаратного и программного обеспечения, и одно из предсказуемых последствий закона Мура состоит в том, что они делают программистов ленивее. Написание программного обеспечения — это ремесло, в котором одни люди лучше, чем другие. Они пишут более элегантный код и, что более важно, более компактный, что позволяет ему выполняться быстрее. На заре индустрии, когда аппаратное обеспечение было относительно примитивным, мастерство действительно имело значение. Когда Билл Гейтс был юношей, он написал интерпретатор Basic для одного из самых ранних микрокомпьютеров, TRS-80. Поскольку у этого компьютера было крошечное ПЗУ, Гейтсу пришлось уместить код всего в 16 килобайт. Он написал это на ассемблере для повышения эффективности и экономии места (существует легенда, что даже спустя годы он мог прочесть код наизусть).

Есть тысячи таких историй времен первых компьютеров, но когда закон Мура вступил в силу, то необходимость писать компактный код постепенно исчезла. Программирование стало промышленной отраслью, а «разработка программного обеспечения» стала профессией. Построение разросшихся программных экосистем, таких как операционные системы и коммерческие приложения, требовало больших групп разработчиков. В группах разработчиков пустила корни бюрократия, появились руководители проектов и руководители над ними. Крупные проекты превратились в марш смерти, подобный описанному в знаменитой книге Фреда Брукса «Мифический человеко-месяц», которая была опубликована в 1975 году и издается до сих пор по причине своей актуальности. И этот бюрократический процесс в значительней степени несет ответственность за «раздутие» программного обеспечения, его неэффективность.

Но это все не имело значения, потому что аппаратное
обеспечение (компьютерное железо) всегда обеспечивало вычислительную мощность,
которая скрывала проблему «раздутого ПО». Добросовестных программистов часто
это бесило. «Единственное следствие мощного аппаратного обеспечения, которое я
вижу, – писал один, — это то, что программисты пишут на нем все больше и больше
раздутого программного обеспечения. Из-за
того, что ЭВМ мощная, они становятся ленивее, они не пытаются изучать
алгоритмы, оптимизировать свой код … это безумие!».

На лекции в 1997 году Натан Мирволд, который когда-то был техническим директором Билла Гейтса, изложил свои «Четыре закона программного обеспечения»:

  • Программное обеспечение
    похоже на газ – оно расширяется, чтобы заполнить свой контейнер.
  • Программное обеспечение
    растет, пока оно не ограничено законом Мура.
  • Рост программного
    обеспечения делает возможным закон Мура, ведь люди покупают новое
    оборудование, потому что оно требуется программному обеспечению.
  • Программное обеспечение
    ограничено только человеческими амбициями и ожиданиями.
  • Законы МирволдаНатан Мирволд собственной персоной

    Поскольку закон Мура достигает конца своего владычества,
    законы Мирволда предполагают, что у нас осталось только два варианта. Либо мы
    умерим наши амбиции, либо вернемся к написанию более простого и эффективного
    кода. Другими словами, назад в будущее.

    На этом заканчивается статья Д. Нортона.

    Заключение

    Недавно отгремело очередное событие мирового масштаба в сфере потребительской электроники CES. И, пожалуй, это первый раз, когда на выставке не было показано ничего по-настоящему инновационного. Это личное мнение, с которым могут не согласиться более удачливые наблюдатели инноваций. Были показаны устройства, которые можно описать как результат последовательного развития в рамках более ранних концепций. Условно, было десять мегапикселей, стало двадцать, было 256 ГБ, стало 512 ГБ, и так далее. Шаблонное развитие во всей своей красе. Также было много откровенно ненужных вещей, после знакомства с которыми, тем не менее, не жалеешь о потерянном времени. Типичной такой забавной инновацией является модуль с термометрами Weber Connect smart grilling hub, который делает любой гриль чуть ли не «умным» (в западных изданиях часто употребляют слово «smart» в его отношении).

    Законы МирволдаФотография Techcrunch.com

    Передовая инженерная мысль была направлена прямо внутрь куска мяса для
    гарантированного решения вопроса о степени его прожарки. И, как мне кажется,
    покупать его будут жители одно-двухэтажной Северной Америки, а для остальных
    частей света такой прибор не нужен, ибо мы любим готовить и прекрасно
    справляемся без датчиков. А того, кто не умеет, градусники не спасут. И
    принтами с такими примерами «инноваций» можно выстлать футбольное поле, отсюда
    и печальный итог – выставка достижений CES 2020 показалась провальной в вопросе демонстрации новых
    технологий. И этот печальный факт заставляет задуматься, искать причину,
    которая, как мне кажется, перекликается с проблемой «толстого» софта. По
    крайней мере, в части шаблонного «изобретательства» и «прогресса», из которой
    следует, что на следующий год процессор в блоке термометров для гриля станет
    быстрее, датчиков станет больше, а приложение-компаньон для смартфона станет
    «толще».

    Вывод из статьи Нортона напрашивается сам собой – в раздутии
    программного обеспечения в наших смартфонах виноваты производители кода, среди
    которых нельзя отделять бюрократов от программистов, ибо все они являются
    частью системы. И эта система работает так, что размер кода (программы) – это
    последнее, на что обращается внимание. Мы поговорили о нехватке объема
    внутреннего накопителя, во многом из-за того, что об этом нам сообщает сам
    смартфон, эта проблема на виду во всех смыслах этого слова. Но отсутствие
    оптимизации кода проявляется и в нехватке оперативной памяти, а если
    рассматривать вопрос еще шире, то можно заметить отсутствие оптимизации даже в
    официальном оформлении социальных сетей (например, использование относительно
    «тяжелого» графического формата .png там, где он не нужен), а в еще более широком смысле – во всей
    нашей жизни. Выходом из ситуации может стать появление оптических ЭВМ, тогда
    человечество и дальше сможет производить и потреблять неоптимизированный софт.
    Такой исход кажется более вероятным, чем появление здравого смысла в головах
    коммерчески настроенных граждан. На нынешнем этапе развития отрасли мы видим
    подтверждение всему вышесказанному – появление мобильных ЦП с огромным
    количеством вычислительных ядер, основным хранилищем емкостью около терабайта и
    количеством оперативной памяти, которому позавидует игровой компьютер
    десятилетней давности.

    А вы что думаете? Что может урезонить разбушевавшихся производителей? А
    особенно было бы интересно почитать мнение действующих профессиональных
    программистов, что бы они ответили на предъявленные обвинения?

    источник

    Добавить комментарий

      });