top
logo


Выпуск языка программирования Rust 0.11, развиваемого проектом Mozilla PDF Печать E-mail
03.07.14 07:33

Проект Mozilla анонсировал выпуск экспериментального языка программирования Rust 0.11.0, сфокусированного на безопасной работе с памятью и обеспечению высокого параллелизма выполнения заданий (возможность порождать тысячи и даже миллионы подпроцессов). Исходные тексты проекта распространяются под лицензией MIT. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

С момента прошлого выпуска внесено около 1700 изменений, основная работа была связана с оттачиванием качества библиотек и системы типизации. В частности, представлена новая инфраструктура для использования типов динамического размера. Проведён рефакторинг стандартной библиотеки - монолитная libstd разделена на несколько отдельных библиотек - libcore, liblibc, liballoc, libcollections, librustrt, libsyn и librand (libstd теперь выступает в роли надстройки над этими библиотеками). Прекращена поддержка синтаксических конструкций "~" и "@", вместо которых следует использовать библиотечные типы "Box" и "Gc".

По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики, а также ориентацией на блочную организацию структуры кода, которая позволяет реализовать задачи в виде легковесных сопрограмм. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.

Базовые возможности языка:

  • Ориентация на безопасность:
    • Аккуратная работа с памятью - никаких нулевых и потерянных указателей. Автоматическое управление памятью;
    • Контроль изменчивости. Объекты неизменяемы (Immutable) по умолчанию;
    • Безопасность динамического выполнения: обработка сбоев, исключения, ведение лога, RAII / dtors;
    • Typestate: возможность определения сложных инвариантов, контролирующих структуры данных.
  • Ориентация на параллельность и эффективность кода:
    • Явный контроль памяти, контролирование схемы распределения памяти;
    • Крайне лёгкие задачи, формируемые в виде сопрограмм. Лёгкость в порождении тысяч и миллионов подпроцессов;
    • Итераторы в стэке (фактически лямбда-блоки без распределения кучи);
    • Статическая, нативная компиляция с созданием исполняемых файлов ELF, PE, Mach-o;
    • Прямой и простой интерфейс для кода на языке Си;
  • Ориентация на практическое применение:
    • Мультипарадигмальный, функциональный, императивно-процедурный, объектно-ориентированный, поддерживающий параллельную actor-модель;
    • Функции высшего порядка с биндингами;
    • Нет номинальных типов или иерархии типов;
    • Мультиплатформенный, поддерживается Windows, Linux, Mac OS X, *BSD;
    • Хранение строк в UTF-8, разнообразие низкоуровневых типов;
    • Работает с существующими нативными наборами инструментов: GDB, Valgrind, Shark и т.д.;
    • Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать.
  1. Главная ссылка к новости (https://mail.mozilla.org/pipermail/rust-...)
  2. OpenNews: Подготовлен вариант GNU Coreutils, переписанный на языке Rust
  3. OpenNews: Выпуск языка программирования Rust 0.10, развиваемого проектом Mozilla
  4. OpenNews: Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla
  5. OpenNews: Для GCC подготовлен фронтэнд с поддержкой языка Rust, развиваемого проектом Mozilla
  6. OpenNews: Выпуск языка программирования Rust 0.8, развиваемого проектом Mozilla
Тип: Программы
Ключевые слова: rust, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
id=adv>
  1.1, softfire, 10:48, 03/07/2014 [ответить] [смотреть все] –11 +/
Зачем нужны Раст и Го, когда есть Эрланг ... весь текст скрыт [показать]
 
  2.3, Аноним, 10:57, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  –2 +/
 
  3.8, rob pike, 12:01, 03/07/2014 [^] [ответить] [смотреть все]  +3 +/
Только OOCobol
только хардкор
 
3.21, Crazy Alex, 14:48, 03/07/2014 [^] [ответить] [смотреть все]  
+1 +/
Эрланг, при всех его плюсах, далеко не самый удобный язык. Одни строки чего стоят. Плюс эрланг - это, факьтически, только одна парадигма, а их часто удобно смешать.
 
2.11, Аноним, 12:13, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  –1 +/
Go не нужен, потому что gc Эрланг вообще убогая помойка А вот Rust перспективы... весь текст скрыт [показать] [показать ветку]
 
  3.22, Crazy Alex, 14:51, 03/07/2014 [^] [ответить] [смотреть все]  –4 +/
Rust тоже gc, вообще-то А что Go не нужен - согласен, если хочется бедный возмо... весь текст скрыт [показать]
 
  4.27, Аноним, 19:05, 03/07/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Вы путаете gc и автоматическое управление памятью ... весь текст скрыт [показать]
 
2.13, rshadow, 12:20, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  +/ Правильный вопрос: зачем нужен rust, go, erlang, ...
 2.14, vitalif, 12:39, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  +1 +/ Чтобы мазиле было чем заняться...
 2.19, qqq, 14:11, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  +1 +/ не, Раст очень интересен - симбиоз ФП и ООП, чего мало в эрланге. Эрланг тоже крут, но нет пространств имен и полезных возможностей ООП: наследование, виртуальные методы, полиморфизм. Надо, чтобы разработчики Раста еще более пристально взглянули на эрланг и позаимствовали еще больше отдельных фич и парадигм таких как матчинг, хвостовая, атомы, ноды, реализации модели "акторов"... Но в целом все довольно шикарно - главное выйти за пределы традиционных сопрограмм.
 
  3.29, Kuku, 20:59, 03/07/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
> не, Раст очень интересен - симбиоз ФП и ООП, чего мало в
> эрланге. Эрланг тоже крут, но нет пространств имен и полезных возможностей
> ООП: наследование, виртуальные методы, полиморфизм. Надо, чтобы разработчики Раста еще
> более пристально взглянули на эрланг и позаимствовали еще больше отдельных фич
> и парадигм таких как матчинг, хвостовая, атомы, ноды, реализации модели "акторов"...
> Но в целом все довольно шикарно - главное выйти за пределы
> традиционных сопрограмм.

Насколько я знаю, в Rust есть и матчинг, и модель акторов (о ней и в тексте статьи сказано). Относительно остального надо поинтересоваться

 
1.2, Аноним, 10:56, 03/07/2014 [ответить] [смотреть все]  –1 +/
зачем нужны Раст, Го, Эрланг, Си, когда есть ассемблер ... весь текст скрыт [показать]
 
  2.5, ivn, 11:05, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  +3 +/
зачем нужны компьютеры, когда есть человеческий мозг?
 
  3.7, rob pike, 11:39, 03/07/2014 [^] [ответить] [смотреть все]  +1 +/
Мозг - это мракобесие же, непрогрессивно, мэйнфрейм практически.
Сейчас модно распределенность, чтоб много дешевых взаимозаменяемых нейронов, shared nothing, message passing - как у медузы.
 
  4.18, Аноним, 13:30, 03/07/2014 [^] [ответить] [смотреть все]  +/
 
3.20, burjui, 14:13, 03/07/2014 [^] [ответить] [смотреть все]  +4 +/ Зачем нужен мозг, если многие прекрасно живут, по всей видимости, без него?
image  3.24, Димон, 15:39, 03/07/2014 [^] [ответить] [смотреть все]  +2 +/ Говорят, что человеческий мозг способен распознать сарказм. Врут.
 
  4.25, rob pike, 16:23, 03/07/2014 [^] [ответить] [смотреть все]  +1 +/
Иногда способен. Но только человеческий же сарказм.
Сарказм медузы нам не распознать. Что подтверждает нашу уверенность в превосходстве безмозговой модели.
 
1.4, Аноний, 11:01, 03/07/2014 [ответить] [смотреть все]  +2 +/ Если сравнивать Erlang и Rust то:
Динимическая типизация - Статическая типизация
Нет прямой работы с памятью - Есть (как прямамя так и GC)
Функциональное программирование - ООП
То есть совершенно разные ЯП.  
  2.6, tratata, 11:19, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  +1 +/
В rust ООП ровно такое же как в haskell -- тот же самый вид полиморфизма и нет наследования. А erlang куда больше ООП язык, чем многие другие.
 
  3.9, Crazy Programmer, 12:03, 03/07/2014 [^] [ответить] [смотреть все]  +/
Зачем Вам ООП?
 
  4.12, anonymous, 12:17, 03/07/2014 [^] [ответить] [смотреть все]  +2 +/
Что бы - ООП! Нанай-на!
 
2.10, анон, 12:12, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]  +2 +/ > Функциональное программирование - ООП

Сам по себе Erlang это безусловно функциональщина, но т.к. пишут чаще всего не на Erlang, а Erlang/OTP, то можно говорить, что Erlang самый натуральный ООП.

 
  3.23, Crazy Alex, 14:54, 03/07/2014 [^] [ответить] [смотреть все]  –1 +/
ООП - да. А вот насчет натуральности я бы поспорил. На редкость неестественно оно выглядит. Прнимерно как метапрограммирование, прибитое к старым плюсам.  И работает, и мощное донельзя, и используется повсеместно - но совершенно очевидно, что это насилие над языком. Благо, в С++11 подправили, осталось концептов дождаться.
 
1.15, Аноним, 13:01, 03/07/2014 [ответить] [смотреть все]  +1 +/
ну, когда там уже появится стабильный rust 1 0... весь текст скрыт [показать]
  1.16, Аноним, 13:05, 03/07/2014 [ответить] [смотреть все]  +/
http www opennet ru openforum vsluhforumID3 95231 html 18 ... весь текст скрыт [показать]
  1.26, Аноним, 16:55, 03/07/2014 [ответить] [смотреть все]  –1 +/
Дональд Кнут одобрил значит паскаль и Си, остальное сжечь, еретики... весь текст скрыт [показать]
  1.28, Mirraz, 20:06, 03/07/2014 [ответить] [смотреть все]    [к модератору]  +/ Очень похоже на торт! Раньше всё надеялся на D, но GC убивает все преимущества, Go как-то мимо меня прошёл, а вот Rust как раз может стать той серебряной пулей.
 
  2.30, Аноним, 21:36, 03/07/2014 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  +/
Go полностью завязан на GC, так что вам он понравится видимо еще меньше чем D ... весь текст скрыт [показать] [показать ветку]
 

Ваш комментарий  

Read more http://www.opennet.ru/opennews/art.shtml?num=40125

 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика