Договорный матч, или История одного обмана

Эта новость состояла из двух частей. Из громкого сенсационного заявления, которое охотно опубликовали российские СМИ, даже непрофильные. Снабдив ее яркими заголовками: «Nexus S загружает веб-страницы быстрее, чем iPhone 4», «Андроид положил iOS на обе лопатки», «Apple проиграла». Поместив ее на самые видные места.

У новости было продолжение. Продолжение убивало сенсацию насмерть, ставило источник сенсации в дурацкое положение... СМИ предпочли это продолжение не заметить. Мало ли других тем?

Помимо собственно «новости с продолжением», обратите внимание: вот так они и рождаются, мифы...

Сенсация

Малоизвестная компания Blaze задалась вопросом: какая из мобильных платформ, iPhone 4 с iOS 4.3 или Nexus S с Android OS 2.3, быстрее загружает web-ресурсы.

Blaze объявила стандартные бенчмарки, наподобие SunSpider, далекими от реалий жизни. Вместо «солнечного паука», сотрудники Blaze использовали собственную методику. Более корректную, адекватную и честную.

Они сравнили, по своей вновь изобретенной методике, время загрузки 45 тысяч веб-сайтов на iPhone 4 с iOS 4.3 и на Nexus S с Android OS 2.3.

Для тех, кто не в курсе: в браузере Safari, встроенном в iOS 4.3, использован новый высокоскоростной JavaScript-движок Nitro. Этот движок разбирает и отрабатывает скрипты, в среднем, раза в два-три быстрее, чем его предшественник.

Скрипты, написанные на Java-Script, встречаются практически на каждой странице Всемирной паутины, и от эффективности их обработки зависит очень многое. По данным независимых исследований (проведенных с помощью SunSpider), новая версия Safari ускорила загрузку веб-ресурсов (в частности, веб-сайтов) примерно в два раза, по сравнению с предыдущей версией, на том же оборудовании.

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

По сравнению с iPhone 4/iOS 4.3, Nexus S/Android OS 2.3 оказался «BLAZING fast». В 84 процентах случаев Nexus S загружал сайты быстрее. В среднем, iPhone 4 c iOS 4.3, и с тем самым движком Nitro, грузил сайты за 3.254 секунды. Его сопернику, Nexus S с Android OS 2.3, для этого потребовалось всего 2.144 секунды. Другими словами, на 52% меньше!

Nexus S/Android OS 2.3 опередил iPhone 4/iOS 4.3 и по скорости загрузки сайтов, оптимизированных для работы с мобильными устройствами. Среднее время у Nexus S — 2.024 секунды, у iPhone 4 — 2.085.

Публикация не осталась незамеченной. Ее перепечатали сотни самых разных СМИ, некоторые из которых пустили ее на первые полосы. Подвиг крохотной компании сделал ее знаменитой. ради такого эффекта стоило потрудиться. Замерить время загрузки 45 тысяч веб-сайтов, да еще и на двух разных смартфонах — адский труд.

Реакция СМИ, в том числе и российских, показательна: о том, что Google «надрала уши» Apple сообщили почти все. Даже Lenta.ru. Читателей сетевых СМИ эта новость сильно обрадовала.

Между тем, компания Blaze и ее соучредитель Гай Поджарни (Guy Podjarny) вовсе не собирались становиться жертвой транснациональной корпорации Apple, поэтому, подождав пока достаточное число читателей запомнило «имена и явки», компания раскрыла подробности совершенного ее сотрудниками подвига.

Продолжение

На мостике дредноута Apple очень удивились, и выразили недоумение. Ответ Blaze последовал незамедлительно: компания вдруг признала, что SunSpider все-таки ближе к реальной жизни, чем ее собственные средства. Результаты тестирования с помощью SunSpider совпадают с ожидаемыми: по скорости загрузки веб-сайтов Nexus S с Android OS 2.3 и iPhone 4 с iOS 4.3 практически одинаковы.

Чуть позже выяснилась еще одна интересная подробность: Blaze использовала для испытаний самодельные приложения для Android OS и для iOS. Не браузеры!

Для доступа к веб-ресурсам обе платформы используют один и тот же интернет-движок — WebKit. Теоретически, подход Blaze к испытаниям имеет право на жизнь. Но это нельзя назвать «гонкой браузеров». Обычные пользователи не пишут свои собственные приложения для доступа к сетевым ресурсам.

Обычные программы (легальные, принятые в App Store) используют для загрузки веб-ресурсов тот же самый движок, но другие методы. Даже в испытаниях Blaze, скорость загрузки мобильных веб-страниц (веб-ресурсов, адаптированных к особенностям мобильных операционных сетей) оказалась примерно равной у обеих платформ. Даже при загрузке веб-сайтов.

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

Представитель Blaze признал и это: да, использовалось собственное приложение. Да, в реальной жизни все по другому. Сами удивились, поспешили с информацией об открытии, не выяснив причину неожиданности.

Инцидент закрыт? Сенсации больше нет?

Но это, по мнению редакторов СМИ, уже никому неинтересно. В таком сообщении не было бы никакого «мессиджа». Читатель, сообразивший было, что ему покупать, был бы снова ввергнут в полное недоумение, стер бы закладку, приводившую его ранее на страницу этого СМИ, а потом и само СМИ пришлось бы закрывать.

Поэтому, опубликовав сенсационное разоблачение Apple, СМИ перешли к другим новостям.

Рациональное зерно

Инцидент исчерпан. Выявленные Blaze недостатки в iOS и iPhone 4 ни коим образом не скажутся на жизни 99.9% пользователей этого устройства.

Представитель Apple, Труди Мюллер, отмечает: «даже в некорректно проведенных тестах iPhone оказался, в среднем, всего на секунду медленнее». Разница в одну секунду почти неуловима в реальной жизни. Но...

Но причина, по которой появилась эта секунда, заставляет задуматься.

Секунда эта появляется из-за того, что в программном интерфейсе к движку WebKit, предлагаемом сторонним разработчикам для iOS 4.3, нет никакой возможности использовать преимущества новой версии движка.

Этот интерфейс предельно упрощен. В первых версиях системы, на iPhone и iPod touch первых моделей, из-за запредельной тесноты и дефицита ресурсов, движок удавалось эффективно использовать только «спрятав» под капот многочисленные инженерные ухищрения и тонкости. UIWebView — и все.

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

Сегодня первые модели «айДивайсов» уже в прошлом. И вторые — тоже. На них даже не устанавливается новая версия операционной системы. Многое из того, что было бы вредно и опасно открывать широким программистским массам в iOS, уже можно было бы осторожненько и по-умному приоткрыть.

От версии к версии, постепенно, именно это и происходит. Тайное становится явным. Но не само по себе. Для этого нужен... повод.

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

А остальные, хотя каждая из них, рассматриваемая в отдельности, нестерпимо важна, увы — ждут лучших времен.

А еще: считается, что Apple, высокомерно и презрительно, игнорирует желания клиентов и сторонних разработчиков. Сомневающимся предлагается эксперимент: предложите Стиву (адрес его электронной почты можно найти в сети) открыть сторонним разработчикам более детальный доступ к WebKit. В лучшем случае вам просто не ответят.

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

Канал спрятан в «баг-рипортере» (https://developer.apple.com/bugreporter/), где помимо информации о проблемах, обнаруженных в операционных системах или программах от Apple, можно официально попросить об «улучшении» (enhancement) существующих систем, программ, документации или программных интерфейсов, или о новых «features» — программах, функционале программ, и т.п.

К Apple можно относиться по разному, но относиться к работающим в компании инженерам как к идиотам не стоит. Они точно не идиоты.

Естественно, принимается не каждое предложение. У сложных изделий, помимо пожеланий клиентов, есть еще и внутренняя логика развития. Да и желания со стороны часто противоречат одно другому.

Но запросы на открытие более детального доступа к закрытым частям iPhone SDK, составленные и отправленные грамотно и с соблюдением правил, особенно если число запрашивающих превышает какой-то неизвестный порог, чаще всего имеют успех.

Это утверждение основано на личном опыте...

Функционал же UIWebView, на практике, более чем достаточен — поэтому он до сих пор, в точности, такой же, как и в самой первой бета-версии iPhone SDK.

Олег Свиргстин
Software Director
iPhone Developers EAST

Источник: Олег Свиргстин