Последние полтора года я уделял все больше времени работе над новым проектом Mozilla — Firefox OS. За это время я буквально влюбился в него и в его идею, испытав то, чего не испытывал прежде.
Скриншот Firefox OS
Буду откровенен, Firefox OS является началом чего-то невероятного. Это ожидающего своего пробуждения революция. Глоток свежего воздуха. Кульминация новейших технологий. Оно волшебно и оно изменит все.
Что такое Firefox OS?
Для тех, кто не знает о чем я говорю, вот короткое описание.
Firefox OS — это новая мобильная операционная система разработанная Mozilla в рамках проекта Boot to Gecko (B2G). ОС использует ядро Linux и загружается в Gecko — веб-движок, который позволяет пользователям запускать приложения созданные на HTML, JS и любых других Open Web API приложений.
—Mozilla Developer Network
Короче говоря, проект Firefox OS собрал в себе все веб-технологии для создания полноценной мобильной операционной системы. Остановитесь на секунду и задумайтесь — это мобильная ОС созданная на JavaScript!
Для этого был модифицирован Gecko (движок Firefox), который предоставляет набор новых JavaScript APIs необходимых для создания функционала подобного существующему в современных мобильных ОС. WebTelephony для телефонных звонков, WebSMS для отправки текстовых сообщений и Vibration API для, хм… для того чтобы вибрировать.
Firefox OS — это гораздо больше, чем затея использовать последние веб-технологии так, как этого никто не делал прежде. Это так же и сочетание многих других проектов Mozilla как единственное виденье — Web как платформа. Open Web Apps initiative и Persona являются одними из таких проектов, нашим решением в области идентификации и авторизации в интернете (известным под официальным именем как BrowserID). Удивительно наблюдать, как большое количество проектов от Mozilla сливаются в одно целое.
Я больше не буду вдаваться в мелкие подробности, больше информации вы можете найти на страницах MDN о Firefox OS. Очень рекомендую почитать.
Почему Firefox OS?
Вы наверняка думаете: «Звучит отлично, но почему именно JavaScript?» Это действительно хороший вопрос. Существует множество причин по которым лучшим решением стала разработка мобильной ОС на JavaScript
Две основных причины заключаются в том, что Firefox OS заполняет пробел и создает альтернативу текущей проприетарности и ограничениям на рынке мобильных платформ.
Заполнение пробела на рынке мобильных платформ
Ни для кого не секрет, что смартфоны часто просто до смешного дорогие, даже в тех странах, где уровень дохода достаточно высок. Но если вы думаете, что такие цены существуют только в богатых странах, то вы глубоко ошибаетесь. 16GB iPhone 4S в Бразилии стоит около 615 фунтов стерлингов, что на 100 фунтов дороже чем такой же телефон в Англии!
Такие цены в Бразилии обусловлены высоким налогом на импорт. Судя по всему, Apple уже работает над устранением этой проблемы планируя построить местные производственные линии в стране. Не смотря на это, данный случай прекрасно дает понять, что хороший смартфон многим не по карману. Не говоря уже о том, что в некоторых странах вам лучше не размахивать смартфоном, стоимость которого равна стоимости небольшого автомобиля.
Так что же делать, если вы хотите получить хороший смартфон и при этом не тратить на него огромную сумму? Можете купить дешевый смартфон на Android, но такие как правило работают плохо и постоянно тормозят.
К счастью, теперь у нас есть Firefox OS…
Цель Firefox OS заключается не в создании конкуренции high-end устройствам, а в том, чтобы предложить смартфоны начального и среднего уровня по цене обычного мобильного телефона.
—Bonnie Cha
Firefox OS прекрасно подходит для этого. Эта ОС может предложить вам полноценный смартфон на основе устройства с низкой производительностью, что сравнимо с Android на устройстве среднего класса. И это не шутка.
Для примера, в настоящее время я тестирую JavaScript игры на телефоне за 50 фунтов. От устройства по такой цене многого ожидать не стоит, но на самом деле эти игры не только работают быстрее, чем на таком же телефоне с Android запущенные в браузере (Firefox или Chrome), но и так же быстро, если не быстрее, чем на Android устройствах цена которых в 4-5 раз больше.
Почему же происходит такой прирост производительности в сравнении с результатами работы в браузере Android на одинаковых устройствах? Секрет в быстром обмене данных между Gecko и железом, что дает возможность JavaScript работать очень быстро.
Высокая производительность JavaScript на дешевых устройствах стало для меня одной из причин, по которой я уверен, что Firefox OS — это начало чего-то огромного.
Должен отметить, что Mozilla не обязательно будет запускать ОС с телефонами стоимостью в 50 фунтов, это устройство мы используем для разработки и тестирования.
Альтернатива и открытая платформа
Вторая причина «Почему Firefox OS?» — это попытка не только создать альтернативную и открытую мобильную платформу, но и противостоять и попытаться повлиять на крупных игроков рынка.
С момента основания Mozilla в 1998 как разработчика ПО и позже как компании и организации, нашей миссией было создание открытых технологий, которые могут соревноваться с доминирующими корпоративными продуктами.
—Steve Lohr
Mozilla пытается повторить свой успех с Firefox, который буквально ворвался на рынок браузеров и показал пользователям, что существует альтернатива, что они могут контролировать то, как они используют веб.
Теперь это мобильный веб, который находится под угрозой. И угроза исходит не от Microsoft, но от Apple и Google, производителей ведущих мобильных платформ. Их приложения, закрытые платформы, проприетарные магазины приложений и весьма капризные правила для разработчиков. Apple и Google только усугубляют положение веб-технологии.
—Thomas Claburn
Одна из главных областей, которая нуждается в развитии — портативность приложений…
Весь ажиотаж вокруг мобильных приложений в некотором смысле есть шагом назад: они приковывают пользователей к определенной ОС и устройствам, что ее поддерживают. Веб эволюционировал и пришел к тому, что на любом железе он может восприниматься одинаково.
Mozilla, создатель веб-браузера Firefox, полна решимость сделать то же самое и для мобильных устройств.
—Don Clark
Firefox OS стремится использовать вездесущность веб-технологий, чтобы дать возможность пользоваться теми же приложениями в вашем смартфоне, на десктопе и в планшете или на любом другом устройстве имея доступ к браузеру. Разве не хотели бы вы иметь возможность продолжить игру в Angry Birds на десктопе с того места, где закончили ее на своем смартфоне? Я бы очень этого хотел!
Мечта разработчика
Еще одна причина, почему нам нужна Firefox OS — в данный момент не существует ОС, которую можно было бы легко редактировать (можно немного изменить Android, но это сделать не так просто).
Firefox OS построена целиком и полностью на HTML, JavaScript и CSS. Имея базовые навыки веб-разработки, вы можете полностью изменить всю ОС. Редактирование одной строки CSS может повлиять на способ расположения иконок или их форму, или же вы можете изменить JS, который обрабатывает телефонные звонки.
Эта платформа уникальна для разработчиков, и мне очень интересно знать, что они сделают с ней и к чему это приведет.
Удачный момент
Работая вот уже полтора года в Mozilla, я осознал, как мне повезло оказаться именно в момент рождения Firefox OS. Если я все правильно помню, то проект был анонсирован (как Boot to Gecko) в первые несколько недель моей работы в компании.
Все было восхитительно, но со времен стало еще более восхитительно. Firefox OS — приоритет номер один в моей работе на данный момент, и честно говоря, мне это нравится. Это большая честь быть частью такого проекта.
Я много раз задавался вопросом, это восхитительное чувство, похоже ли оно на то, что испытываешь работая в Mozilla во время запуска Firefox. Волнение, страсть, нервозность и неспособность объяснить, на сколько все это удивительно, и почему кого-то это должно волновать.
Честно говоря, я не думаю, что многие до конца понимают, что на самом деле значит для всех запуск Firefox OS. Так же, как и Firefox, я полагаю.
В данный момент я счастлив работать в Mozilla, в столь интересный период в жизни компании.
Восхищенные
Люди, которые осознали всю важность этого проекта — разработчики. Они держали в руках демо-устройства сотрудников Mozilla на наших ивентах. И мало что может быть так захватывающе, как возможность наблюдать за этими людьми пока они исследуют устройство и переживают различные эмоции…
- Все начинается с легкой растерянности — «Вы дали мне Android? Это очень похоже на Android.»
- Далее приходит внезапное осознание того, что это не Android и что система построена на JS.
- После небольшой паузы следует что-то вроде «Твою ж мать!»
- Еще немного и человек полностью погружается в систему, изучая все ее углы.
- Последняя стадия — нежелание расставаться с устройством, когда я прошу его обратно и финальное «Это очень неплохо, я удивлен!»
Вы можете подумать, что я лишь расхваливаю проект, чтобы всем казалось, будто это очень захватывающе. Но на самом деле так реагировали многие. Забавно было за этим наблюдать.
Из того, что я видел, как люди реагировали на Firefox OS, я понял, что она изменит многое. Все настолько восхищены, что мне кажется никому, ничего и не нужно объяснять.
Проблемы
Было бы несправедливо все время хвалить Firefox OS, не упомянув о некоторых проблемах, которые нам нужно решить.
С одной стороны существуют общие вопросы, такие как создание открытой экосистемы приложений или фрагментация устройств, что происходит с Android. Это важно, но в конечном итоге совершенно мне не интересно.
Больше всего меня интересует проблема HTML5 игр на мобильных устройствах — восприятие и производительность, на что разработчики часто жалуются. Эта проблема не принадлежит сугубо Firefox OS (Android и iOS так же плохи в этом) но сейчас я целиком сосредоточен на ней и на проблеме производительности.
Большинство ранее созданных мобильных HTML5 игр работают очень медленно (0—20FPS), или чуть быстрее (20—30FPS). Часто эти игры имеют нестабильный FPS, что заметно ухудшает игровой процесс.
Интересно, что многие проблемы не обязательно связаны с устройством или JavaScript. Есть несколько тяжелых игр, таких как Biolab Disaster. Эта игра идет отлично даже на том же телефоне за 50 фунтов (40—60FPS).
Для меня совершенно ясно, что иногда устройство и платформа могут быть причиной низкой производительности в играх (не так часто, как некоторые думают). Мы можем почерпнуть многое из игр, которые отлично работают на слабых устройствах. Изучить техники и приемы, которые использовали разработчики, и рассказать о них тем, кто собирается работать с HTML5 играми для мобильной платформы.
Я искренне верю, что тяжелые HTML5 игры могут отлично работать на любых устройствах, даже на самых слабых. Почему я так уверен? Потому что люди уже сегодня делают такие игры. Есть две вещи, которым я доверяю больше всего в своей жизни… мои глаза.
Не только мобильные телефоны
Больше всего я взволнован не тем фактом, что Firefox OS будет установлена на мобильном устройстве, которое мы выпустим в следующем году, а тем, что будет в будущем. Я затронул эту тему ранее, когда говорил о «мечте разработчика», как другие могут расширить границы использования ОС.
И это происходит уже сегодня. У нас уже есть Firefox OS портированная на Raspberry Pi и Pandaboard. Они не идеальны, но что круто (я очень старался избежать этого слова), так это то, что все это происходит за долго до первого релиза.
Уже есть возможность опробовать Firefox OS на Mac, Windows и Linux. Конечно же, у вас не будет доступа ко всем функциям, которые есть в смартфоне, но все же вы сможете кое-что попробовать (например, приложения, работающие параллельно). Установка системы довольно проста.
Я могу только представить тот недалекий день, когда Gamepad API появится в Gecko и будет доступен на десктопном клиенте Firefox OS. Что в этом такого? Ну, не так уж сложно представить себе устройство, подключенное к телевизору, с ОС настроенной для работы с геймпадом вместо мыши или сенсора (и это все JavaScript, помните).
Это послужит началом эры консолей для HTML5 игр, и это то, над чем я работаю в свое «свободное» время за пределами Mozilla.
Я хочу сказать, что мы подходим к тому моменту, когда многие устройства смогут работать на тех же технологиях, что мы обычно используем для создания веб-сайтов. Так что же мы можем сделать с миром полным устройств работающих на базе технологий, которые везде могут получить доступ и обмениваться данными, используя те же API?
Я отчаянно хочу увидеть этот мир!
Переведено и опубликовано с разрешения автора.
Автор: roman01la