LINUX.ORG.RU

Mozilla и Samsung объявили о совместной работе над браузерным движком нового поколения

 , , ,


1

4

Mozilla и Samsung объявили о совместном проекте: разработке веб-движка «нового поколения», оптимизированного под будущие «более быстрые, многоядерные компьютерные архитектуры».

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

Движок Servo написан на языке Rust и отличается поддержкой многопоточного рендеринга web-страниц и возможностью параллельного выполнения операций с DOM в процессе обработки одной web-страницы. Использование Rust позволит разбить код DOM и рендеринга на более мелкие подзадачи, которые смогут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU.

Совместно с Samsung экспериментальный движок Servo уже портировали на платформу ARM и Android. По мнению Mozilla, это значительный шаг вперёд и для языка программирования Rust. Компания Samsung разработала ARM-бэкенд для Rust.

В течение ближайшего года Mozilla планирует закончить работу над первой мажорной версией Rust — задокументировать библиотеки, выпустить необходимый инструментарий и увеличить производительность. В то же время Mozilla обещает выделить больше ресурсов на доработку Servo для доказательства, что «можно создать быстрый веб-браузер с глубоким параллелизмом на безопасном, весёлом языке программирования».

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

Исходные коды на github

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: Klymedy (всего исправлений: 6)

А этот rust из этих всех Go/D самый интересный и адекватный получился.

r ★★★★★
()

Осталось дождаться, пока servo научится корректно рендерить html-страницу уровня «Hello World!».

shahid ★★★★★
()

Ээй, первое апреля прошло!

unt1tled ★★★★
()
Ответ на: комментарий от Suliman

Жалко что они не на D пишут. Мне он кажется более читабельным чем раст http://versusit.ru/rust-vs-d

Вот пример с главной страницы проекта

use core::rand::RngUtil;

fn main() {
    for ["Alice", "Bob", "Carol"].each |&name| {
        do spawn {
            let v = rand::Rng().shuffle([1, 2, 3]);
            for v.each |&num| {
                print(fmt!("%s says: '%d'\n", name, num))
            }
        }
    }
}

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

unt1tled ★★★★
()
Ответ на: комментарий от anonymous

Забавно. Ди фан написал гавно статью, а теперь другие ди фаны ссылаются на неё, как на истину

Напиши статью лучше.

Молодец. Сравнил ЯП общего назначения БЕЗ нитей из коробки с ЯП, ориентированным на агрессивный параллелизм, модель работы акторов и сопутствующую функциональщину.

Из коробки там нити есть и параллелизм есть и люди с реальными проектами есть. А на Rust есть только один единственный проект, да и то с сомнительными перспективами.

Suliman
()
Ответ на: комментарий от anonymous

(c) Мастер и Маргарита

так Маргарита тоже писателем была что ли?

Это пять!

andreyu ★★★★★
()
Ответ на: комментарий от sergey19622008

какие «умные» люди пишут комменты))) ведь они сделали продукт уровня огнелиса ну или принимали участие в разработке? нет! они только писать комменты умеют...

«Сперва добейся»? Необязательно жрать говно, что бы рассуждать о его вкусе.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Необязательно жрать говно, что бы рассуждать о его вкусе.

Большинство таких рассуждений яйца выеденного не стоит.

true_admin ★★★★★
()

оптимизированного под будущие «более быстрые, многоядерные компьютерные архитектуры»

Это обычно значит, что на быстродействие ложится большой и толстый. Железо-то все-равно быстрое и многоядерное ))

anonymous
()

Почему Rust? Почему нельзя было взять какой-нибудь ЯП попопулярней? А то получится как с OpenMW писали писали на D а потом решили что ну на фиг, будем писать на сях - они популярнее

anonymous
()
Ответ на: комментарий от anonymous

Почему Rust? Почему нельзя было взять какой-нибудь ЯП попопулярней? А то получится как с OpenMW писали писали на D а потом решили что ну на фиг, будем писать на сях - они популярнее

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

anonymous
()
Ответ на: комментарий от Suliman

И вообще там много чуши написано.

r ★★★★★
()
Ответ на: комментарий от anonymous

А в джаве с питоном нет паралелизма и защиты памяти?

Аха, браузер на яве ггг, oracle укусил?

питон

питон = слив, никакой нормальный проект его себе не возьмет, темболее браузер на нем клепать

anonymous
()
Ответ на: комментарий от unt1tled

Вот пример с главной страницы проекта

Ого, статический руби со скобочками... Variables are immutable by default. Local type inference. Pattern matching. Type parameterization with type classes. Чёрт, это ж язык моей мечты.

только кейворд let раздражает

Почему? Мне кажется наоборот - лютый вин.

nikodymus
()
Ответ на: комментарий от nikodymus

Ого, статический

статический всмысле вызов стат. методов с помощью :: ?

Это да, стремно.

только кейворд let раздражает

Я думаю это у меня из детства - отвращение к хацкелю.

unt1tled ★★★★
()
Ответ на: комментарий от Karapuz

жава и питон NIH, поэтому их нужно изобрести заново и назвать Rust

Даже при беглом взгляде и близко не лежало.

nikodymus
()
Ответ на: комментарий от unt1tled

статический всмысле вызов стат. методов с помощью :: ?

Хм... Я что то не так понял? Type inference. Type annotations on local variable declarations are optional. Статически типизирован?? Или это у них игра словами?

nikodymus
()
Ответ на: комментарий от nikodymus

Статически типизирован??

А, вы в этом смысле..

Type system	static, nominal, linear, algebraic, locally inferred

Мне кажется это они еще не решили, язык-то альфа-бета-сырость

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

Мне кажется это они еще не решили

Они решили как минимум о static, linear, algebraic, locally inferred - это есть и останется (насчет nominal - я просто не знаю, что это такое).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Они решили как минимум о static, linear, algebraic, locally inferred - это есть и останется (насчет nominal - я просто не знаю, что это такое).

Можно объяснить как сочетаются static и inferred?

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

язык-то альфа-бета-сырость

Может это вау-эффект, но судя по туториалу язык просто офигенный. И синтаксис приятный. Хотелось бы, чтобы взлетело.

nikodymus
()
Ответ на: комментарий от anonymous

Меж тем весь уеб у мозиллы на питоне.

zz ★★★★
()
Ответ на: комментарий от unt1tled

Можно объяснить как сочетаются static и inferred?

Эээ... нет. Пришлось бы объяснять, что такое type inference и почему он делается только для статической типизации. Посмотри в Вики.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от unt1tled

как сочетаются static и inferred

Типы выводятся при компиляции без аннотаций, как в функциональщине. Я так это понимаю.

nikodymus
()
Ответ на: комментарий от tailgunner

Дважды нерелевантная демагогия.

Подробнее что именно там демагогия и почему оно дважды нерелевантно если аффтар назвал более читабельным индексный обход в отличии от foreach.

r ★★★★★
()
Ответ на: комментарий от unt1tled

Можно объяснить как сочетаются static и inferred?

ТАк и сочетаются. Не сочетаются manifest и inferred. А static обозначает проверка времени компиляции. А откуда взялся тип - манифестирован юзером или выведен компилятором не имеет значения.

r ★★★★★
()

Движок Servo написан на языке Rust

Да, у него теперь точно будет много фанатов...

Sharezil
()
Ответ на: комментарий от r

А этот rust из этих всех Go/D самый интересный и адекватный получился.

плюсую

gensym ★★
()
Ответ на: комментарий от r

Подробнее что именно там демагогия

Подразумевать под for именно индексный обход - демагогия; противопоставлять for использованию closures - тоже демагогия.

аффтар назвал более читабельным индексный обход в отличии от foreach.

Где? O_o

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Подразумевать под for именно индексный подход - демагогия;

Демагогия это этот твой коментарий. Там под for подразумевается именно использование for с индексным обходом для решения fold/map/filter задачи, что текущий автар поста и продемонстрировал.

Где? O_o

http://versusit.ru/rust-vs-d

Код на Ди выглядит более лаконично и читается значительно проще.

Посмотрим теперь, как будет выглядеть код, выводящий числа от 0 до 10. На Rust это будет так:

fn main() {
   for100.times {
     io::println("Hello");
   }
}

На D аналогичный код бы выглядел следующим образом:
void main() {
  for (int i = 0; i < 10; i++) {
      writeln("Hello");
 }  
} 

r ★★★★★
()
Ответ на: комментарий от r

Демагогия это этот твой коментарий.

Как скажешь.

Там под for подразумевается именно использование for с индексным обходом

Ну да, а про другие for аффтар не знает, так?

аффтар назвал более читабельным индексный обход в отличии от foreach.

Где? O_o

http://versusit.ru/rust-vs-d

То есть Adam Turoff, автор статьи «What's Wrong with the For Loop », размещенной по URL http://notes-on-haskell.blogspot.com/2007/02/whats-wrong-with-for-loop.html, не называл индексный объод более читабельным? Понятно.

tailgunner ★★★★★
()
Ответ на: комментарий от r

Код на Ди выглядит более лаконично и читается значительно проще.

Это же к другому абзацу относится. Хотя в целом по ссылке вкусовщина и странные выводы. И да, пожалуй в лаконичности Ди ни в одном примере не выиграл.

nikodymus
()
Ответ на: комментарий от tailgunner

Ну да, а про другие for аффтар не знает, так?

При чем тут его знания? Он напиасл статью о том как некоторые боятся замыканий и гвозями прибили мозг к индекстому обходу для решения fold/map/filter пролемы. Аффтар rust-vs-d написал про нипанятные замыкания и тут же проиндексировал хеловолды. Статья нашла своего читателя.

не называл индексный объод более читабельным? Понятно.

Я нигде и не говорил что называл - я ее привел как раз как контр статью.

r ★★★★★
()
Ответ на: комментарий от r

Он напиасл статью о том как некоторые боятся замыканий и гвозями прибили мозг к индекстому обходу

При том, что for - это не обязательно индексный обход, но замыкания вполне могут использооваться с индексным обходом.

Я нигде и не говорил что называл

То есть в фразе

r> Подробнее что именно там демагогия и почему оно дважды нерелевантно если аффтар назвал

ты неявно обращаешься к сразу двум статьям. Всегда так делай.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

При том, что for - это не обязательно индексный обход

И?

ты неявно обращаешься к сразу двум статьям. Всегда так делай.

Я к одной обращался - rust-vs-d - по причине в том что именно в ней афтар так сказал. Во второй автра высказывал противоположное мнение. Я думал кто девочка а кто мальчик было ясно.

r ★★★★★
()

Rust интересный язык.
Ничего не слышно о компиляторе в java байткод или CIL(.net, mono)?

grim ★★☆☆
()
Ответ на: комментарий от grim

Он интересен именно нативной компиляцией.

И скорее всего такое в принципе не возможно/невозможно с достаточной эффективностью: они там сделали достаточно танцев с бубнами чтобы сделать очень специализированное управление памятью, и компилять его в тотальный хип jvm и хип+стек clr нету никакого смысла.

А под JVM он по сравнению со скалой не интересен - в нем ничего нет.

r ★★★★★
()
Последнее исправление: r (всего исправлений: 1)
Ответ на: комментарий от Suliman

Из коробки там нити есть и параллелизм есть и люди с реальными проектами есть.

Есть, но не легковесные ни разу, а обычные. В D вообще всё обычное. Тот же c++, только с более привлекательным синтаксисом и парой дополнительный фич. Обычно с проектами на D — это те, кто не осилили кресты и собираются туда сваливать, ибо задолбало писать биндинги к сишным либам и искать программеров-маргиналов.

shahid ★★★★★
()
Ответ на: комментарий от r

Он интересен именно нативной компиляцией.

Мне интересен как ЯП с нормальным, читаемым синтаксисом и некоторыми идеями которые было-бы интересно увидеть в применении на практике.
А нативную компиляцию mono умеет. Могли-бы использовать если им это так упёрлось.

А под JVM он по сравнению со скалой не интересен - в нем ничего нет.

Скала, несмотря на возраст и интересные идеи, имеет неприятный мне синтаксис и, по моему личному мнению, никогда не взлетит несмотря на большое количество шума.

grim ★★☆☆
()
Последнее исправление: grim (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

OMG!
Ещё один Верующий в Спасительный Язык Программирования!

grim ★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.