`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Александр Пацай

Apple, Adobe и Flash

+33
голоса

Начнем неделю с практически вечной (в разрезе гаджетов Apple) темы — поддержке Flash. Эту технологию, как известно, Apple проигнорировала на iPhone и, похоже, будет игнорировать и дальше на iPad, даже невзирая на то, что многим хотелось бы, чтобы было наоборот.

Почему Flash отсутствует на iPhone я уже как-то писал в блоге. В этой же статье есть различная новая информация, которя отлично дополняет то, о чем говорилось раньше. Оригинал статьи Джона Грубера, автора известного блога daringfireball.net был опубликован 25 января, еще до анонса iPad, но сути это не меняет.
————
В своей статье “Мысли о планшете”, опубликованной две недели назад, я предположил, что предполагаемый планшет Apple не будет поддерживать Flash, по всем тем же причинам, что и в случае с iPhone. Реакция была разной — от типичного “ясен пень, что не будет поддерживать”, до “ни за что, он просто обязан поддерживать Flash”. Одна из этих групп удивится, когда покажут этот планшет.

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

О FLASH И КРЕШАХ ПРИЛОЖЕНИЙ MAC OS X

Две недели назад я написал:

Насколько я знаю, Apple контролирует весь исходный код iPhone OS. Не в том смысле, что они написали ее полностью с нуля. Многие низкоуровневые компоненты ОС доступны в открытом виде. Но у них есть код. Если там находится ошибка, они могут ее исправить. Если что-то работает медленно, они могут это оптимизировать или переписать. Это не так в случае с Mac OS X, и Flash — основной пример. Единственный ведущий источник падений приложений в Mac OS X — это компонент, который Apple не может исправить.

Несколько читателей попросили у меня источник этой информации с обвинением из последнего предложения, где сказано, что Flash — “основной источник падений приложений на Mac OS X”. (И хорошо, что спросили — я не знаю, о чем я думал, написав такое без ссылки).

Вот какая штука. Выступая с открывающей речью на конференции WWDC2009 в июне прошлого года, старший вице-президент Apple по разработке ПО Бертранд Серлет (Bertrand Serlet) объяснял новый механизм работы Safari с модулями для веб-контента в Snow Leopard. Вместо того, чтобы запускать их внутри процесса Safari, модули теперь работают, как отдельные процессы, так что если они “падают”, то они (обычно) не тянут за собой Safari. Да, у вас будет синий прямоугольник на странице в том месте, где исполнялся плагин, но сам браузер продолжит работу.

Apple сделала это по двум причинам. По словам Серлета, это было сделано для “укрепления надежности”, как говорилось выше. А на вопрос, зачем нужно внедрять такую систему, Серлет объяснил, что, основываясь на данных от приложения Crash Reporter, которое встроено в Mac OS X — та штука, что спрашивает у вас, не хотите ли вы отправить данные о сбое приложения в Apple — наиболее часто встречающейся причиной сбоев приложений в Mac OS X, являются (или, по крайней мере, были до выхода Snow Leopard) “модули”.

Серлет не назвал конкретный “виновный” модуль. Просто “модули”. Но за неделю конференции, я получил подтверждение от нескольких источников, которые сталкивались с данными от Crash Reporter, что “модули” было заменой для слова “Flash”.

Другими словами, в огромной куче отчетов о сбоях, которая собралась у Apple — из всех сбоев приложений, на всех Маках, ото всех пользователей, которые нажали кнопку об отправке отчетов в Apple — Flash ответственен за большее количество сбоев, чем все остальное. Это не означает, что Flash как-то приводит к сбоям в любом приложении.

Предположительно, чаще всего, это Safari или какой-то другой браузер, проигрывающий содержимое Flash. И стоит отметить, что это не означает, что Flash так плохо написан или склонен к сбоям. Подумайте об этом, как о формуле, вроде этой:

общее количество сбоев = (ошибки, приводящие к сбоям) × (количество использования)

Количество ошибок, приводящих к сбоям, и их сложность в Flash могут быть даже и низкими, и все равно это будет приводить к большому количеству общих сбоев, потому что он используется все время — любым Mac-пользователем, у которого контент Flash играется на веб-странице. А если Flash Player для Mac OS X еще к тому же и содержит в себе слишком глюкавый код, тогда все еще хуже.

Но есть еще одна причина, по которой Apple создала эту новую архитектуру процессов для веб-модулей в Snow Leopard: это был единственный способ, при котором они могли выпустить Safari и библиотеку WebKit в 64-битном режиме. Flash Player доступен только в 32-битном виде. (Как и другие сторонние модули, вроде Silverlight, но Flash — единственный, который поставляется вместе с системой). Прим. пер. Интересно, когда Apple перестанет его поставлять в комплекте с Mac OS X? 64-битные приложения не могут работать с 32-битными модулями. У Apple нет доступа к исходным кодам Flash, так что только Adobe может сделать Flash Player 64-битным. Но пока что они этого не сделали. Так что если Apple хочет, чтобы Safari была 64-битным приложением в Snow Leopard (а они этого хотели), они должны были запускать 32-битные модули вроде Flash в отдельном процессе.

Может быть, вы не верите Apple, что веб-модули являются самой распространенной причиной сбоев на Mac OS X. Может быть, вы не верите мне и моим анонимным источникам в Apple, что это именно Flash, который к этому приводит. Все нормально, скептицизм — это хорошо. Но, в таком случае, может быть, Бертранд Серлет придумал “стабильность к сбоям плагинов” как политическую причину, только для того, чтобы воткнуть нож в спину Adobe, и единственная причина, по которой Apple выбрала эту архитектуру с внешними процессами — это чтобы обеспечить совместимость 32/64-битных режимов.

Но это только подчеркивает тот факт, что Flash до сих пор — в 32-битном режиме, несмотря на то, что Apple стремится перевести всю систему на 64-бита. Flash остается 32-битным, и Apple ничего не может с этим поделать. Вместо того, чтобы сделать Flash в 64-бит самим, Apple вынуждена была разрабатывать новую архитектуру модулей.

Вот почему Apple хочет полностью контролировать исходный код всей ОС. Если они решат перейти на 64-бит в iPhone OS, это полностью в руках Apple. А что произойдет, если Apple захочет перейти на новую архитектуру процессоров? В случае компонентов, для которых у Apple есть исходный код, они могут просто пересобрать их для новой архитектуры. Если система не собирается для новой архитектуры, они могут работать над этим до тех пор, пока они этого не добьются. В случае компонентов вроде Flash, где Adobe контролирует исходный код, Apple вынуждена ждать.

Как вы думаете, какая ситуация больше радует Apple? Mac OS X, для которой они были вынуждены создавать новую архитектуру модулей, потому что Flash часто сбоит и недоступен в 64-битах? Или же iPhone OS, где они контролируют исходный код всех компонентов до единого и могут делать что захотят и когда захотят?

Короче, даже если вы думаете, что Flash Player для Mac OS X — лучший пример ПО в мире, и что Flash Player для iPhone OS тоже будет нормально работать — сложно отрицать, что руководство Apple говорило и продолжает говорить разные анти-Flash вещи публично. Apple не так уж много говорит о Flash, но то, что они говорят, не очень-то подтверждает то, что они будут его в будущем поддерживать еще больше — скорее меньше.

ПРОПРИЕТАРНЫЙ WEB
Для постоянных читателей уже, наверно, ясно, что мне плевать на Flash, и я надеюсь, что Apple никогда не включит его в состав iPhone OS. Могу только подтвердить свое мнение.

Почему? По сути, потому, что Flash — единственный де-факто веб-стандарт, основанный на проприетарной технологии. Есть большое количество проприетарных модулей — включая Apple QuickTime — но Flash — единственный, который настолько распространен, что он является де-факто стандартом. С помощью Flash распространяется видео на вебе, и Adobe полностью контролирует Flash. Никакой другой аспект веба так не работает. HTML, CSS и JavaScript — это все открытые стандарты, с большим количеством реализаций, включая некоторые, которые поставляются в открытых исходных кодах.

Самый простой аргумент в поддержку Flash на iPhone (и на планшете) — это то, что Flash является, судя по его популярности и распространенности, частью веба. Но лучшим аргументом против поддержки Flash является то, что для веба в целом вредно иметь нечто настолько важное, как видео, в руках одной компании, и единственный способ этого изменить — это если открытая альтернатива окажется привлекательной для тех, кто публикует веб-контент.

Это проблема курицы и яйца. Издатели используют Flash для веб-видео, потому что Flash установлен на большом количестве клиентских компьютеров; клиенты поддерживают Flash, потому что огромное количество издателей используют Flash для видео на вебе. Apple, в случае с iPhone, решает проблему курицы и яйца. Впервые появилась большая и растущая аудитория демографически привлекательных пользователей, у которых нет встроенного Flash. Если вы хотите показывать видео пользователям на iPhone, вам надо использовать H.264.

Apple не пытается заменить Flash своей собственной технологией. Они заменяют ее с помощью H.264 и HTML5. Это хорошо для всех, кроме Adobe.

И да, я знаю, что Flash может значительно больше, чем просто проигрывать видео. Но основное, о чем все говорят, когда упоминают о Flash, не работающем на iPhone — видео. И когда вы говорите о других использованиях Flash, вы говорите об использовании его как программной платформы, и, нравится вам это или нет, позиция Apple касательно сторонних программных платформ на iPhone OS четко определена, и эта позиция пока что неплохо для них работает.

Вот письмо, которое я получил от одного читателя:

Я стоял в очереди за кофе в первый день Рождества. Передо мной был ребенок 9-10 лет, у которого был iPhone. Он явно получил его в этот же день. Он яростно жал в белый квадрат на веб-странице с картинкой неработающего модуля. Он нажимал ее, проводил по ней пальцем. Он был растерян и на грани бешенства от своей новой игрушки. Похоже, что он пытался зайти на страницу онлайн-игры, возможно, той, в которую он играл на домашнем ПК. В итоге, я не выдержал. Я наклонился и сказал “Он не загружает Flash. Оно не будет играть твои Flash-игры”. Его мама, игнорировавшая его до этого момента, отреагировала на то, что с ребенком говорит чужой. “Все хорошо, дорогой”, сказала она, “Мы купим тебе игрушку в App Store”. Его реакция? Он стал мучать устройство еще сильней. Он не хотел игру из App Store, он хотел свою Flash-игрушку. И iPhone в его глазах внезапно очень потерял в ценности.

Нравится вам это или нет, но Apple приходится с таким сталкиваться. И не только в случае с детьми.
Я думаю, что эта история и выводы читателя точно отражают тот настрой, который присутствует у многих по этому поводу — “Apple придется в итоге прогнуться”.

Но подумайте об этом с точки зрения Apple. Как вы думаете, как эта ситуация разрулится в долгосрочной перспективе? Вы думаете, что ребенок сказал маме вернуть iPhone и забрать деньги? Или же они вернулись домой и стали покупать игрушки в App Store? Это был период первоначального разочарования из-за Flash-игрушек, но это не меняет того факта, что они а) купили iPhone и б) планировали покупать игрушки в App Store.

Я не спорю, что очевидная антипатия руководства Apple по отношению к Flash отражает собственные интересы Apple. (Однако, я думаю, что команда WebKit в Apple искренне желает помочь вебу в целом).

И хотя Apple может действовать недоброжелательно, себе зла они не желают. Отсутствие Flash на iPhone ему нисколько не вредит. Возможно, это изменится в будущем, если Flash вдруг окажется популярным на других мобильных платформах, но я бы особо на это не рассчитывал.

ПРОИЗВОДИТЕЛЬНОСТЬ FLASH НА MAC OS X
Вдобавок к опасениям, перечисленным выше, касательно того, что Flash — это проприетарная платформа, есть еще и практические вопросы. Один — это уже упомянутые выше сбои на Mac OS X. Во-вторых, даже если забыть о сбоях, то производительность Flash на Mac OS X не такая хорошая, как на Windows. И в случае проигрывания видео, производительность Flash просто не может сравниться с воспроизведением H.264 в QuickTime. И это не субъективно. Мой компьютер — двухлетний MacBook Pro. Он без проблем воспроизводит видео в H.264 на весь экран. Когда я проигрываю видео Flash на весь экран, вентиляторы ноутбука запускаются буквально через несколько секунд.

Я много чего говорил про Flash Player на Mac OS X, но эта ситуация с производительностью находится не совсем в руках Adobe. На Windows Flash использует аппаратное ускорение для H.264, если таковое имеется. А на Mac OS X он его не использует. Это одна из причин, по которой воспроизведение видео Flash работает лучше на Windows, а не на Mac OS X, и вот почему воспроизведение H.264 на Mac OS X лучше через QuickTime (который использует аппаратное ускорение).

Согласно Adobe, однако, так обстоят дела, потому что они не могут использовать аппаратное ускорение. Вот объяснение из Flash Player FAQ:

В. Почему аппаратное ускорение H.264 доступно только на платформе Windows?

О. В Flash Player 10.1 аппаратное ускорение H.264 недоступно на Linux и Mac OS. У Linux на данный момент отсутствует разработанный стандарт API, который поддерживает аппаратное раскодирование видео в H.264, а у Mac OS X нет открытого доступа к нужным API. Мы будем продолжать изучать возможность, когда можно будет добавить эту возможность на платформах Mac и Linux в будущих версиях.

Евангелист платформы Adobe Ли Браймлоу (Lee Brimelow) недавно писал в своем блоге по этому поводу:

Но давайте поговорит о Flash Player на Mac. Если он на 100% не соответствует версии на Windows, люди считают, что это наша вина. Но факты доказывают, что это не совсем так. Давайте возьмем, к примеру, ситуацию с аппаратным ускорением видео в H.264, которое мы добавили в Flash 10.1. Вот тут вы можете увидеть некоторые результаты того, как улучшилась ситуация на Windows. К сожалению, мы не можем добавить это ускорение в плеере на Маке, потому что Apple не предоставляет публичных системных вызовов для этого. Это легко проверить, спросив у Apple. Я рад сказать, что мы все равно сделали некоторые улучшения в плеере для Мак в плане воспроизведения видео, но мы просто не можем сделать аппаратное ускорение. Это лишь один пример всяких барьеров, с которыми мы сталкиваемся, разрабатывая для Apple.

У меня нет причин спорить с этим. Windows гораздо гостеприимнее для сторонних платформ вроде Flash, чем Mac OS X. Я думаю, что большинство согласится, что Apple — самоуверенная компания (как минимум), и что у них своевольные продукты. Платформы исполнения, которые волнуют Apple — это Cocoa и WebKit. Способ Apple проигрывать H.264 — это через API QuickTime (а в Snow Leopard — через новые API QuickTime X), а не писать свой собственный код воспроизведения H.264, который будет напрямую ломиться к аппаратным ускорителям.

Можно спорить о том, почему Apple заняла такую позицию. Кто-то может сказать, что она прагматична — что Apple не разрешает стороннему ПО получать доступ к вещам вроде аппаратного ускорения H.264, потому что она хочет контролировать слой абстракции между сторонними приложениями и аппаратной частью. Кто-то может сказать, что это — политика: что Apple рада возможности выставить Flash как ПО с проблемами производительности, потому что Flash конкурирует с продуктами Apple в разных сферах. (Другими словами, вы, может быть, и хотели бы, чтобы Hulu, который полностью сделан на Flash, работал на iPhone и работал лучше на Mac. А Apple хотела бы, чтобы содержимое Hulu проходило через iTunes Store).

Я бы сказал, что это и то, и другое — что антипатия Apple по отношению к Flash Player это и вопрос подходов в разработке (что стороннее ПО должно обращаться только к высокоуровневым системным вызовам), и политика. Но объективно, невзирая на ваши предпочтения резолюции Apple касательно Flash, если бы Adobe надо было, чтобы Apple выдала им доступ к аппаратной части, чтобы улучшить Мак-версию Flash Player, каковы шансы, что они бы получили тот же уровень низкоуровневого доступа к аппаратной части на iPhone OS? (Подсказка: нулевые).

Я закончу словами директора Apple Тима Кука, который год назад сказал:

“Мы верим в простое, не сложное. Мы верим, что нам нужно владеть и контролировать основные технологии в основе наших продуктов, и участвовать только на тех рынках, на которых мы можем привнести значительный вклад”.

Flash принадлежит Adobe и контролируется ею.

Apple, Adobe, and Flash

+33
голоса

Напечатать Отправить другу

Читайте также

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

у меня такое впечатление, что кто-то кому-то очень уж не понравился :) Все в этом мире строится на простых человеческих отношениях и чувствах. Нужно пойти и выпить вместе, делов-то! И Flash под Mac заработает как дети в школу!

Вот уж к кому невозможно прилепить ярлык борцов за свободу от проприетарности так это к Apple.

Следующий раз когда Вы будете думать покупать ли Вам iPhone, подумайте, готовы ли Вы поддерживать этих жадин.

>Apple рада возможности выставить Flash как ПО с проблемами производительности, потому что Flash конкурирует с продуктами Apple в разных сферах.

В этом нет ни малейших сомнений, ровно в тот момент как Эпл встроит поддержку Flash в iPod/iPhone/iPad она несомненно потеряет львиную долю рынка игр, и различных развлекательных приложений. Это безусловно главная причина, потому что все остальные выглядят просто жалко, и как оправдание отсутствию такой важной технологии не годятся.

Хм, в общем-то, Apple не так уж неправа. 90% проблем IE вызваны Flash.

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT