29 September 2013

Колонка выходного дня: про Apple

А давненько не брал я в руки шашки -- решил сделать небольшой такой камбэк и вернуться с любой темой аналитиков всех мастей и ориентаций. С темой Apple.
Пристегнулись. Поехали.

Топик первый -- новый флагман iPhone 5s, где "s" означает skip it.
Пожалуй как-то пошло писать все то, что уже пишут даже малолетние долбоебы на заборах. Мол опять косметическое обновление, Apple уже не торт, Цой жив, а Джобс умер и так далее. Все шутки, типа мол Apple надо ввести новую метрику "производительность на единицу площади экрана" и показывать эффектные слайды сравнения с представителями семейства Galaxy Note, в общем, все эти шутки я отшутил в твиттере еще в день анонса.

А сегодня я предлагаю посмотреть на проблему смартфонов Apple вот под каким углом. Да, Apple создала себе такую замечательную нишу и делает вид, что ей нет никакого дела до флагманов на Android. Они живут в каком-то другом измерении и айфону они совсем не конкуренты.
Мне кажется, что позиция эта год за годом просто убивает компанию.


Вот давайте возьмем тот же Samsung, и представим себе, что после сверх удачного Galaxy S3 корейцы решили бы перейти в режим "чуть помедленнее кони" и вместо SGS4 выпустить что-то попроще. Например SGS3s, где "s" означает skip it. Гонка размеров и разрешения экранов в стане Android последние годы была просто безумная, поэтому поставили бы они в эту модель все те же 720p, чтобы выдать полное HD уже во флагмане 2014-го года...
Задайте себе вопрос -- могли ли в Samsung позволить себе выпустить такую "флагманскую" модель и немного подождать с переходом на 1080p? Очевидно нет, поэтому что это откровенное самоубийство. Ежу понятно, что все конкуренты от HTC и Sony вплоть до каких-то, прости г-ди, последних китайцев перейдут на Full HD и обязательно пнут твой косметически обновленный флагман на половине слайдов презентации флагмана собственного.

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

Что общего между SGS3 mini и iPhone 5? правильно, диагональ экрана


Тема вторая -- iPhone 5c, где "c" означает cheap.
Совершенно дурацкая тема. Разница в цене с 5s столь незначительна, что в категорию потенциальных потребителей не попадут даже тинейджеры, которым родители захотят купить типа что-то попроще, чем себе. Зачем вообще выпускать отдельную модель, если сама по себе проблема уже много-много лет решалась банальной покупкой цветастого чехла?

На мой взгляд, выпускать надо было старый добрый iPhone 4 (ок, пусть даже и в пластиковом корпусе) с ценой до $300. Вот это был бы ход. Уже сегодня Android стоит в самой последней кофеварке и Apple стоит подумать, как бороться с этой чумой. Людей надо подсаживать на свои продукты и это именно тот самый случай, когда надо жертвовать маржой ради доли рынка. Просто для того, чтобы завтра не оказаться со своими смартфонами ровно в том же положении, что и на рынке ПК. И не надо мне рассказывать, что это такой особый путь Apple, выпускать илитныя высокомаржинальные продукты для тех, кто в теме. Возьмите iPod. Если бы Apple там играла в илитность, она не заработала бы и четверти тех денег, которые она там заработала. Не говоря уже о том, что получив много пользователей iPod, она получила сильно больше, чем просто группу людей, заплативших деньги за их плеер. Это был тот фундамент, на который опирался айфон, когда он был маленьким туберкулезным подростком.

... а в кармане у него 5c. Желтого цвета

Кстати, советую обратить внимание вот еще на какой интересный момент.
Старенький iPhone 4 еще и сегодня ого-го-го, кой чего может, хотя это модель далекого 2010-го года.
Смартфоны попали ровно в ту же самую ситуацию, в которую, в свое время, попали ПК.
В результате многолетней гонки производительности, в один прекрасный день ее стало более чем достаточно для трех с половиной офисных программ, включая MS Word, и народ стал сильно реже делать апгрейды. Компьютеры стали устаревать намного медленнее.
Ровно ту же картину мы сейчас будем наблюдать и со смартфонами. И это станет серьезной проблемой для индустрии, которая, очевидно, не захочет сбавлять темп.
Я, например, считаю, что "поддержка" Apple старых устройств в новых версиях iOS это не такой себе ход альтруиста. Эти ребята никогда ничего не делали просто так, в смысле, задаром. Общеизвестно, что новая версия ОС на старых девайсах начинает работать ощутимо хуже, уровень комфорта сильно падает. Ничуть не удивлюсь, если программисты Apple для старых устройств специально ложат в прошивки какого-то гавна. И вот таким образом происходит то самое "устаревание" устройств.
Вы же посмотрите на их паству -- за неделю трояна под названием iOS 7 добровольно накатила чуть ли не половина пользователей. Почему бы не пользоваться доверием и любопытством этих идиотов, верно?


Тема третья -- 64 бита. 
Много уже написано на эту тему, чужие глупости повторять не хочется, хочется все-таки объяснить людям один технический нюанс о котором все как-то забыли.
Важно: 64 бита это не возможность адресовать больше 4 Гб оперативной памяти, это возможность иметь очень большое виртуальное пространство процесса. И это, как говорят в моем родном городе, две большие разницы.

Дать возможность 32-х разрядному процессору адресовать больше 4 Гб ОЗУ это не big deal и, например, в x86-32 эта возможность была впервые реализована еще в далеком 95-м году в виде технологии PAE, позволяющей получить доступ к 64 Гб оперативной памяти. Тем не менее у многих людей в голове сложилась неправильная картинка "32 бита есть 4 Гб RAM" и за это мы должны сказать спасибо корпорации Microsoft. Эти хитрожопые ребята внедрили поддержку PAE только в серверную линейку ОС, а для обычных десктопных версий все осталось по старинке якобы из-за проблем с совместимостью. На самом деле, это был обычный маркетинг, и, например, у той же Apple PAE отлично работает в OS X для десктопа.

Итак, лимит в 4 Гб RAM легко обходится даже в 32-х разрядных процессорах. А вот лимит в 4 Гб виртуального пространства -- увы, никак. Более того, судя по истории x86, именно это ограничение приходит первым и становится проблемой.
Все дело в том, что в программировании очень часто используют т.н. механизм отображения файлов в память. Что это такое? Это когда содержимое некоего файла прозрачно для программы отображается в регион ее виртуальной памяти. Для программы файл начинает выглядеть как будто это обычный кусок памяти и за счет этого значительно возрастает удобство и простота работы с ним. При этом операционная система, опираясь как раз на механизм виртуальной памяти, создает для программы эту иллюзию, по факту читая данные с диска в память и отображая их в адресное пространство процесса. Дополнительным бонусом такой схемы, помимо облегчения жизни программистов, является тот факт, что управлением потребления памяти, которая тратится на кэширование данных из файла, занимается сама операционная система, которая может делать это очень эффективно, к примеру, быстро освобождая ее, когда программа, отобразившая файл, уходит в фоновый режим работы.
К слову, именно механизм отображения файлов на память является одной из ключевых технологий ядра Windows и используется там просто повсеместно. Например, для запуска файлов на выполнение, что позволяет сразу же начать выполнять полезный код, не дожидаясь полной загрузки exe файла в память (представьте себе запуск большого, на несколько гигабайт, самораспаковывающегося архива).


Почему 32-х разрядные программы упираются именно в ограниченный объем виртуального пространства? Да потому, что размер накопителей уже очень давно исчисляется сотнями гигабайт, а следовательно там могут находиться файлы, которые отобразить на те самые несчастные 4 Гб виртуального пространства просто физически невозможно.
Кстати, технологию отображения файлов очень любят игроделы, потому что она позволяет им, к примеру, реализовывать огромные бесшовные миры, в которых юзеру периодически не докучает картинка с надписью "loading...". Можете вспомнить, когда на рынок игр для ПК начали выходить игры, размер которых перевалил за гигабайт. Вот примерно в это время 32 бита стали несколько тесноваты для разработчиков игр...

Теперь можете вспомнить, сколько сегодня весит технически продвинутая игра для iOS. Inifinity Blade 3, например -- полтора гига. Понимаете к чему я клоню? Не смотря на то, что сегодня в мире iOS 1 Гб RAM есть абсолютный предел, а 8 Гб нам ждать еще очень долго, 32-х разрядное виртуальное пространство очень скоро станет ограничением для целого ряда навороченных программ. И в первую очередь -- игр.
Думаю, это одна из причин, почему переход на 64 бита был инициирован именно сегодня.

Еще один момент, который приходит в голову в связи с 64-мя битами -- энергопотребление.
Как мы знаем, Apple не желает участвовать в гонке мегагерц и, соответственно, емкости аккумуляторов. Новейший A7 работает на каких-то жалких 1.3 ГГц, когда решения от того же Qualcomm уже перешагнули за 2 ГГц. Мощные схемы анализа потока команд и спекулятивное выполнение позволяют процессору Apple одерживать победу над намного более высокочастотными решениями конкурентов и 64 бита это еще одно потенциальное преимущество того же рода. Если говорить грубо, то за счет более широких данных 64-х разрядный процессор за одну команду делает то, что 32-х разрядный делает за две и, соответственно, можно говорить о том, что такой процессор может давать схожую производительность при вдвое меньшей частоте.

И последнее. Про тот самый 1 Гб RAM, который так и оставили в новеньком iPhone 5s.
Типичный случай дикого и неоправданного жлобства со стороны Apple, которое, к примеру, в свое время угробило первый iPad (туда поставили жалкие 256 метров RAM, а в iPhone 4, который вышел в том же году -- 512). Дело в том, что в оперативной памяти iPhone 5s живут бок о бок два набора библиотек -- для "старых" 32-х битных приложений, и для новых, 64-х битных. И из этого следует простой медицинский факт -- приложения на старом iPhone 5 будут иметь в своем распоряжении больше свободной памяти, чем в телефоне следующего поколения.
Ну не пиздец ли?


И, наконец, последняя тема -- iOS 7.
Пощупал это чудо на iPad mini неделю назад. До сих пор не могу прийти в себя.
Хрен с ней, с эстетикой, но вот угробленная эргономика, которая и раньше была совсем не на высоте...
Ну вот какой идиот придумал размазывать по нескольким экранам содержимое папок Springboard? Ну вот зачем эта лишняя возня при запуске приложения? Чем была плоха старая схема?
Или новый вид переключения задач. Кому-то действительно интересно что там происходит в окне фонового приложения? Вы серьезно?... Да, стало удобнее закрывать приложения, но на хрена это нужно? Кто и зачем закрывает приложения в iOS? Лично я это делал считанное число раз, которое можно пересчитать по пальцам одной ноги. Зато снова сделали неудобно -- иконок с задачами на экране теперь стало в два раза меньше и вот это действительно потеря.
Зато всюду напхали крайне навязчивой анимации, пытаясь по этому параметру переплюнуть Windows Phone... Кстати, и своим новым плоским стилем iOS стала сильно походить на мобильную ОС Microsoft. Крайне сомнительный комплимент.


И завершает эту удручающую картину семерки тормоза, лаги и подергивания. Они вроде как и не сильно страшные, но мы же за много лет приучены, что у Apple все работает просто идеально гладко. И на скорости 60 fps. А тут на тебе -- синдром Android версии 2.x. Режет глаз и порождает крайне неприятные ощущения от работы. При Джобсе такого гавна не было, зуб даю. Именно с шестерки начались эти прямо таки неприличные тормоза и лаги -- покойный раньше за такие фокусы, как я понимаю, на хрен увольнял без всяких разговоров. Ну а нынешний пидорок дал волю программистам, которых если регулярно не бить палкой по голове, и не такое напишут.
А вообще -- читай выше про троянского коня в виде обновлений от доброй Apple.

Перемудрили. Добавили бы в iOS 6 новую быструю панельку, разместив ее над старенькой полосой со списком запущенных приложений, и было бы всем счастье. Чесс слово.


No comments:

Post a Comment