Начнем неделю с многабукаф о практически вечной (в разрезе гаджетов Apple) теме — поддержке Flash. Эту технологию, как известно, Apple проигнорировала на iPhone и, похоже, будет игнорировать и дальше на iPad, даже невзирая на то, что многим хотелось бы, чтобы было наоборот.
Почему Flash отсутствует на iPhone я уже как-то писал в блоге, ссылку на нее и другие статьи по этой теме вы можете найти в конце этой заметки. В этой же статье есть различная новая информация, которя отлично дополняет то, о чем говорилось раньше. Оригинал статьи Джона Грубера, автора известного блога daringfireball.net был опубликован 25 января, еще до анонса iPad, но сути это не меняет.
————
В своей статье “Мысли о планшете”, опубликованной две недели назад, я предположил, что предполагаемый планшет Apple не будет поддерживать Flash, по всем тем же причинам, что и в случае с iPhone. Реакция была разной — от типичного “ясен пень, что не будет поддерживать”, до “ни за что, он просто обязан поддерживать Flash”. Одна из этих групп удивится, когда покажут этот планшет.
Я об этой ситуации пишу уже два года. Мне так нравится эта тема потому, что она настолько поляризует читателей, и при этом включает в себя как технические, так и политические вопросы.
[ad#intext-inside]
О 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).
[ad#intext-inside]
Я бы сказал, что это и то, и другое — что антипатия Apple по отношению к Flash Player это и вопрос подходов в разработке (что стороннее ПО должно обращаться только к высокоуровневым системным вызовам), и политика. Но объективно, невзирая на ваши предпочтения резолюции Apple касательно Flash, если бы Adobe надо было, чтобы Apple выдала им доступ к аппаратной части, чтобы улучшить Мак-версию Flash Player, каковы шансы, что они бы получили тот же уровень низкоуровневого доступа к аппаратной части на iPhone OS? (Подсказка: нулевые).
Я закончу словами директора Apple Тима Кука, который год назад сказал:
“Мы верим в простое, не сложное. Мы верим, что нам нужно владеть и контролировать основные технологии в основе наших продуктов, и участвовать только на тех рынках, на которых мы можем привнести значительный вклад”.
Flash принадлежит Adobe и контролируется ею.
Оригинал
Discover more from alexmak.net
Subscribe to get the latest posts sent to your email.
Перефразируя классика.
Пользователи, которые согласны продавать функциональные возможности за стабильность, не заслуживют ни того, ни другого – и ни того, ни другого не получат. (В принципе, слово “свобода” тут тоже уместно, хотя это и о другом)
Кстати, флеш действительно гадость и дерьмище. Лучшее, что эппл мог сделать – это выделить ресурсы проектам типа gnash/swfdec. Ему ж не в новинку – cups он уже двигает
да да да, такой плохой флешь. И поэтмоу он во многих сценариях использования веба стандарт де факто. И поэтому он без проблем использует аппаратное ускорение на виндоус и виндоус пользователи даже не подозревают, что что-то может тормозить. Все just works. А вот эппл доступа не дала, то есть фактически лишила пользователя бепорблемной работы множества сценариев веба, и из-за этого адоб такие плохие, а флешь дерьмо.
Поле, искажающее реальность, уже давно искажает и чьи-то мозги. Причем, похоже, массово.
Вроде и под виндами у флеша глюков хватает. Технология, видимо, хреновая бай дизайн
Возможно и Apple такая плохая, возможно и Adobe, мне кажется правда где-то посередине. У Apple есть свое “правильное” видение ситуации и на то ее право. Но эффект будет, Apple сейчас достаточно в силе, чтобы влиять и будут изменения, уже исходя из того как растет статистика “серфинга инета” именно такими аппаратами как iPhone и соответственно делаем выводы, вообще, если у вас есть тот же iPhone, уже сейчас контент сети оптимизируется под сей аппарат, то ли еще будет, благо Apple сотрудничает и думает, чтобы их продукты не был тупиковыми. Еще немного и значительный контент инета будет оптимизирован под тот же iPad и iPhone. Нравится это или нет.
Flash на маке работает отвратительно, что говорить о том, что и не в “полном экране” он загружает годовалый MacBookPro так, что слышен шелест системы охлаждения. Иной раз просто просматривая страницы, ты начинаешь слышать, как поднимаются обороты вызванные “эффектами проявления” Flash. Поэтому я исключил совсем своевольное появление Flash в виде нежеланной рекламы путем установки в Safari плагина, а что хочу видеть, запускаю кликом.
К слову, Apple является некоторым, выразимся так, “изобретателем”, которые в свою очередь придумывает и предоставляет нам, потребителям свой продукт. И уже наше право одобрять или не одобрять, то есть целевая аудитория оценит. Ну а когда уже некий продукт завоевывает популярность на фоне других, пусть и со своими “недочетами” вроде отсутствия Flash, какие будут выводы? Будет ли рынок игнорировать сей факт? Нет конечно, он попадет под влияние и грубо говоря в некоторых проявлениях “прогнется”, вот скажем flash реклама, видео, перейдут в понимаемый формат для этих аппаратов. Apple пожалуй на это и рассчитывает сейчас.
Хех… история учит нас тому, что ничему не учит. Видимо, люди начали забывать про сайты с “для просмотра требуется браузер Internet Explorer”. С офисными форматами до сих пор беда – даже если у вас MSO, то проблемы начинаются при различных операциях (doc/xls/…) (doc/xls/…)x. Я очень надеюсь, что яблоки закопают флеш, потому как закрытой платформе, да еще и без стандарта не может быть места в web. Почему фирма Adobe, имеющая огромные человеческие и финансовые ресурсы уже столько лет не может выпустить 64-битную версию плеера? Почему я вынужден пользоваться 32-битным браузером на 64-битной системе только из-за отсутствия этого дурацкого плагина? Посмотрите вот это демо возможностей HTML5 – http://mugtug.com/sketchpad/
ЗЫ. Казуальщину пускай на JavaFX пишут 😉
Александр, небольшая поправка, если позволите. Человека зовут Бертран Серле — на французский манер. Он скорее всего француз, поскольку и говорит с французским акцентом, да и степень «доктора компьютерных наук» получил в университете «Париж IX».
Спасибо, подправлю. У меня было такое подозрение, что последние буквы у него традиционно нихт, но я решил не углубляться.
А тем временем с HTML5 все тоже не так просто.
Одни тянут одеяло в сторону ogg, а другие в сторону h.264
А еще подьехала инфа, что Adobe всячески тормозит принятие стандарта. Но им то понятно, он не выгоден.
Это каким боком HTML5 как стандарт не выгоден Эппл?
Ой, извиняюсь – неправильно прочитал. Вместо адоба прочитал эппл.
Сразу оговорюсь, я не поддерживаю флеш на айфоне, да и в принципе он мне не нравится. HTML5 + JS + SVG = широкие возможности и откртые технологии.
Но мне не нравится что автор пишет заведомо ложные факты о флеше.
Флеш не проприетарный (не закрытый) стандарт.
Adobe не открывает исходный код флеш-плеера. Но стандарт флеш-мувика открыт и описан от и до на сайте Adobe.
Что это значит? Это значит что любой вменяемый разработчик может написать свой фелш-плеер (флеш-плагин) с откртым кодом на любом языке.
Например проект Gordon реализует флеш-плеер на Javascript (!!).
Gnash и swfdec – два проекта открытой реализации флеш-плеера на Си.
И это значит что Apple может взять под опеку например Gnash или написать свою реализацию (используя документацию на стандарт) флеш-плагина.
Как в свое время Apple взяла под опеку проект KHTML и сделала на его основе Webkit.
Т.е многое из того что описано в статье не соответствует действительности. Но многое является правдой.
вопрос в том, скорее, нужно ли это Apple — брать кого-то под опеку, писать плеер? Конечно, не нужно, вот и не пишут.
У Вас там есть мысль о том что Apple хочет контролировать код MacOS целиком.
И я уверен что у нее в штате много (очень много) толковых разработчиков.
Так вот если она так хочет, то почему она до сих пор не занялась написанием своей реализации флеш-плеера?
Это кстати, вывело бы флеш на новый уровень.
вопрос в том, что Apple не нужен Flash ни на старом, ни на новом уровне. очень многого можно достичь на базе HTML5+JavaScript, а для всего остального, по мнению Apple, есть App Store.
А какже игрушечки фконтакте?;) Без них интернет-терминал не нужен гломурным кисам!
А Вы думаете по-прежнему, что Apple – это гламурно ? 🙂 Бедный Йорик….
Простой и понятный вопрос: а кто за это заплатит ? В долгосрочной и краткосрочной перспективе ?
Видимо, пора уже Эпплу купить Адоби. Может и остальные их продукты наконец-то допилят до вменяемого состояния. Чтобы хотя бы схожие команды фотошопа/люстры/индиза имели одинаковые шорткаты. А не этот зоопарк, что сейчас творится…