Apple, adobe і flash

Post navigation

Почнемо тиждень з многабукаф про практично вічної (в розрізі гаджетів Apple) темі - підтримки Flash. Цю технологію, як відомо, Apple проігнорувала на iPhone і, схоже, буде ігнорувати і далі на iPad, навіть незважаючи на те, що багатьом хотілося б, щоб було навпаки.







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

Про FLASH І креш ДОДАТКІВ MAC OS X

Два тижні тому я написав:

Наскільки я знаю, Apple контролює весь вихідний код iPhone OS. Не в тому сенсі, що вони написали її повністю з нуля. Багато низькорівневі компоненти ОС доступні у відкритому вигляді. Але у них є код. Якщо там знаходиться помилка, вони можуть її виправити. Якщо щось працює повільно, вони можуть це оптимізувати або переписати. Це не так у випадку з Mac OS X, і Flash - основний приклад. Єдиний провідний джерело падінь додатків в Mac OS X - це компонент, який Apple не може виправити.

Кілька читачів попросили у мене джерело цієї інформації зі звинуваченням з останнього речення, де сказано, що Flash - "основне джерело падінь додатків на Mac OS X". (І добре, що запитали - я не знаю, про що я думав, написавши такого без посилання).

Apple зробила це з двох причин. За словами Серлет, це було зроблено для "зміцнення надійності", як говорилося вище. А на питання, навіщо потрібно впроваджувати таку систему, Серлет пояснив, що, грунтуючись на даних від програми Crash Reporter, яке вбудовано в Mac OS X - та штука, що запитує у вас, чи не хочете ви відправити дані про збої додатки в Apple - найбільш часто зустрічається причиною збоїв додатків в Mac OS X, є (або, принаймні, були до виходу Snow Leopard) "модулі".

Серлет не назвав конкретний "винний" модуль. Просто "модулі". Але за тиждень конференції, я отримав підтвердження від декількох джерел, які стикалися з даними від Crash Reporter, що "модулі" було заміною для слова "Flash".

Іншими словами, у величезній купі звіти про аварійне, яка зібралася у Apple - з усіх збоїв додатків, на всіх Маках, від усіх користувачів, які натиснули кнопку про відправку звітів в Apple - 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. Можу тільки підтвердити свою думку.

Apple не намагається замінити Flash виконувати власну. Вони замінюють її за допомогою H.264 і HTML5. Це добре для всіх, крім Adobe.

Ось лист, який я отримав від одного читача:

Я стояв в черзі за кавою в перший день Різдва. Переді мною була дитина 9-10 років, у якого був iPhone. Він явно отримав його в цей же день. Він люто тиснув в білий квадрат на веб-сторінці з картинкою непрацюючого модуля. Він натискав її, проводив по ній пальцем. Він був розгублений і на межі сказу від своєї нової іграшки. Схоже, що він намагався зайти на сторінку онлайн-ігри, можливо, тієї, в яку він грав на домашньому ПК. У підсумку, я не витримав. Я нахилився і сказав "Він не завантажує Flash. Воно не буде грати твої Flash-гри ". Його мама, игнорировавшая його до цього моменту, відреагувала на те, що з дитиною говорить чужою. "Все добре, дорогий", сказала вона, "Ми купимо тобі іграшку в App Store". Його реакція? Він став мучити пристрій ще сильніше. Він не хотів гру з App Store, він хотів свою Flash-іграшку. І iPhone в його очах раптово дуже втратив у цінності.

Подобається вам це чи ні, але Apple доводиться з таким стикатися. І не тільки у випадку з дітьми.
Я думаю, що ця історія і висновки читача точно відображають той настрій, який присутній у багатьох з цього приводу - "Apple доведеться в підсумку прогнутися".

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

І хоча Apple може діяти недоброзичливо, собі зла вони не бажають. Відсутність Flash на iPhone йому анітрохи не шкодить. Можливо, це зміниться в майбутньому, якщо Flash раптом виявиться популярним на інших мобільних платформах, але я б особливо на це не розраховував.

Згідно Adobe, однак, так йдуть справи, тому що вони не можуть використовувати апаратне прискорення. Ось пояснення з Flash Player FAQ:

Питання: Чому я апаратне прискорення H.264 є тільки на платформі Windows?

Євангеліст платформи Adobe Лі Браймлоу (Lee Brimelow) недавно писав у своєму блозі з цього приводу:

У мене немає причин сперечатися з цим. 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 і контролюється нею.







Схожі статті