Mozilla заручилась поддержкой Samsung для создания нового движка браузера, который использует преимущества многоядерных процессоров. Похоже, что у Gecko нет долгосрочного будущего.
Внезапно все в мире браузеров кажется намного менее стабильным, чем было — но прогресс всегда хорош? Помимо отделения Google и Opera от WebKit для разработки своей собственной многоядерной оптимизированной версии (разделение браузера — Google и Opera Fork WebKit To Blink), Mozilla объявила о сотрудничестве с Samsung, проект Servo Parallel Browser Project, для разработки собственного многоядерного движка. .
Как пишет в своем блоге технический директор Mozilla Брендан Эйх:
«Сервопривод — это попытка перестроить веб-браузер с нуля на современном оборудовании, попутно переосмысливая старые предположения. Это означает устранение причин уязвимостей системы безопасности при разработке платформы, которая может полностью использовать производительность завтрашнего массового параллельного оборудования для обеспечения новые и более богатые возможности в Интернете. Для этих целей Servo написан на Rust, новом безопасном системном языке, разработанном Mozilla вместе с растущим сообществом энтузиастов ».
Если вам интересно, почему Mozilla увлеклась языковым дизайном, то причина появления Rust теперь становится намного яснее. Rust — это язык, в котором многозадачность улучшена по сравнению с такими языками, как C, но он по-прежнему компилируется в собственный код, что в принципе означает, что он должен быть таким же быстрым. Текущий движок рендеринга Mozilla, Gecko, написан на C, и, хотя переход на Rust имеет смысл, это все еще большая авантюра. Создание нового языка программирования только потому, что вам нужно написать новый механизм рендеринга, можно рассматривать как крайность.
Похоже, что роль Samsung в этой сделке заключается в том, чтобы донести свои знания о процессоре ARM до Rust и Servo и, в частности, заставить вещи работать на Android. Что от этого получает Самсунг? Может быть, еще больше контроля над Android или альтернативная мобильная операционная система, готовая ослабить контроль Google?
Mozilla поставила на карту больше, чем просто Firefox, работающий на мобильных телефонах. Firefox OS представляет собой смесь браузера Firefox и Linux, предназначенную для работы в качестве родной среды на мобильных телефонах низкого уровня. То есть пользовательский интерфейс и приложения, работающие в Firefox OS, представляют собой приложения HTML5, использующие JavaScript. Даже в недорогих телефонах в ближайшем будущем будет больше ядер, чем они знают, что с ними делать, и, следовательно, один из способов повысить производительность Firefox OS — сделать механизм компоновки многозадачным. Это также сделало бы эту ОС более привлекательной для телефонов и планшетов высокого класса, где еще больше ядер ждут своей работы.
Ключом ко всему этому является язык Rust, используемый для реализации Servo. Он только что достиг версии 0.6 и, имея за плечами такой крупный проект, как Servo, теперь больше похож на интересный язык, чем раньше.
Еще раз процитирую Эйха:
«Rust, который сегодня достиг версии 0.6, находится в разработке в течение нескольких лет и быстро приближается к стабильности. Он предназначен для заполнения многих из тех же ниш, которые C ++ занимал в последние десятилетия, с помощью эффективной высокоуровневой мультипарадигмы. абстракции и предлагает точный контроль над аппаратными ресурсами. Но помимо этого, он * безопасен по умолчанию *, предотвращая целые классы ошибок управления памятью, которые приводят к сбоям и уязвимостям безопасности. Rust также содержит легкие примитивы параллелизма, которые упрощают программистам использовать мощность многих ядер ЦП, доступных на нынешних и будущих вычислительных платформах ».
Однако, если вы думаете, что дни Геккона сочтены, то стоит отметить, что все несколько более условно, чем вы думаете:
«В наступающем году мы стремимся завершить первую крупную ревизию Rust — очистить, расширить и документировать библиотеки, создать наши инструменты для улучшения взаимодействия с пользователем и повысить производительность. В то же время мы будем вкладывая больше ресурсов в Servo, пытаясь доказать, что мы можем создать быстрый веб-браузер с всеобъемлющим параллелизмом и на безопасном, увлекательном языке. Мы вместе с нашими друзьями из Samsung будем все больше искать возможности на мобильных платформах. усилия все еще находятся на ранней стадии, и предстоит еще многое сделать, так что сейчас хорошее время для участия ».
На данный момент это действительно похоже на исследовательский проект, но реализация многоядерного движка рендеринга кажется правильным, а не невыполнимой задачей. Выбор пути «изобрести язык», возможно, заходит слишком далеко в идее предметно-ориентированного языка, но будет интересно посмотреть, как все это обернется.
Я, со своей стороны, обязательно дам более глубокий взгляд на Rust в ближайшем будущем — так что ищите статью, описывающую то, что я узнаю.