Выбрать главу
Кстати говоря, Sony продала свой PC-бизнес. А Dell теперь выпускает такую вот милую Android-персоналку.

Размер применительно к компьютерной программе — весьма размытое понятие. Если в «офлайне» существует несомненная твёрдая единицы длины, применением которой можно сравнивать различные объекты, то в виртуальности такой единицы нет. Как измерить длину (она же в данном случае «объём», она же и «вес») куска кода? Многие предлагают отталкиваться от количества строк (LOC — lines of code), но даже на одном языке программирования один и тот же отрывок можно записать сильно по-разному. Та же ерунда с байтами: программы практически всегда упакованы архиваторами, так что мы не знаем их истинного размера: ну сколько на самом деле байт в 200 мегабайтах инсталлятора LibreOffice? А ведь есть ещё измерительные единицы более высокого уровня — вроде функциональных точек и прочего (полезных для сравнения не просто длины, а сложности софта).

Короче говоря, обсуждая критерий размера применительно к программному обеспечению, есть смысл ограничиться общей качественной оценкой, нарисовать тенденцию. А это как раз сделать очень просто: размер среднестатистической программы для ПК последнюю треть века менялся только в одном направлении — вверх!

Первые модели IBM PC имели в BIOS функции работы с магнитофоном: магнитной ленты — вмещавшей десятки, сотни килобайт — было достаточно для хранения софта. Потом пришли магнитные диски, и случился скачок на порядок — мегабайты. Компакт-диски обозначили следующий виток — сотни мегабайт. И сегодня, наконец, физические носители заменила Сеть, а вместе с этим размер дистрибутивов скакнул ещё на порядок, в гигабайтную область. В принципе, топовые мобильные устройствам справляются — и хорошие мобильные игры вполне себя «весят» поболее гигабайта, хоть та же Android, например, пока смущается качать их через сотовую сеть. Но что занимает этот объём? Нельзя ли вернуться к килобайтным программам или хотя бы к программам размером в единицы мегабайт?

У этого смешного вопроса на самом деле очень серьёзное продолжение, поэтому попробуйте на него ответить. Игры отметём сразу — как особый случай: там графика, видео, там гигабайтные размеры оправданы. Но что занимает миллионы и миллиарды байт в неигровых программах — вроде тех же офисных пакетов, графических редакторов?

Сколько-то процентов отдано текстам, сколько-то порождено оптимизацией кода, часть объёма приходится на статически слинкованные библиотеки — которые вообще-то можно было оставить снаружи, но размером пожертвовали ради удобства. В любом случае всё это занимает лишь какую-то часть дистрибутива, основная же масса кода содержит собственно функционал. Даже один человеко-год программистского труда выливается в мегабайты: активно развиваемый проект обязательно обрастает новыми функциями. Если же бок о бок трудятся десятки или сотни разработчиков, да с разными языками, чистая масса растёт пропорционально быстрей. Вот откуда миллионы новых строк, вот откуда десятки и сотни мегабайт.

Что из этого следует? Резервы по размеру у прикладного софта имеются, но незначительные, поскольку размер неигровой программы зависит прежде всего от её функционала, а мы привыкли к программам, умеющим всё и вся. И вот так, очень естественно, мы приходим к третьему свойству, которое — параллельно с интерфейсом и размером — может измениться после срастания персоналок с мобильными устройствами. Размер, сложность, тяжесть — называйте как хотите — прикладных программ возможно сильно уменьшить, если урезать функциональность. И, значит, вопрос, для чего простому юзеру планшетка, если на ней не работает «Фотошоп», должен на самом деле звучать так: а нужен ли «Фотошоп» 99% рядовых пользователей? Ведь в большинстве случаев наверняка можно обойтись куда менее сложными (читайте: менее функциональными) инструментами. Ну сколько функций и каких потребно простому человеку для обработки снимка в Instagram или «ВКонтакте»?