URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 96630
[ Назад ]

Исходное сообщение
"Выпуск языка программирования Rust 0.11, развиваемого проект..."

Отправлено opennews , 03-Июл-14 10:48 
Проект Mozilla анонсировал (https://mail.mozilla.org/pipermail/rust-dev/2014-July/010655... выпуск экспериментального языка программирования Rust 0.11.0 (http://www.rust-lang.org/), сфокусированного на безопасной работе с памятью и обеспечению высокого параллелизма выполнения заданий (возможность порождать тысячи и даже миллионы подпроцессов). Исходные тексты проекта распространяются (https://github.com/mozilla/rust/) под лицензией MIT.  Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (http://www.opennet.me/opennews/art.shtml?num=36576), написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

С момента прошлого выпуска внесено около 1700 изменений (https://github.com/rust-lang/rust/wiki/Doc-detailed-release-... основная работа была связана с оттачиванием качества библиотек и системы типизации. В частности, представлена новая инфраструктура для использования типов динамического размера (http://smallcultfollowing.com/babysteps/blog/2014/01/05/dst-...Проведён рефакторинг (https://github.com/rust-lang/rfcs/blob/master/complete/0012-... стандартной библиотеки - монолитная libstd разделена на несколько отдельных библиотек - libcore, liblibc, liballoc, libcollections, librustrt, libsyn и librand (libstd теперь выступает в роли надстройки над этими библиотеками). Прекращена поддержка синтаксических конструкций "~" и "@", вместо которых следует использовать библиотечные типы "Box" и "Gc".

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


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


-  Ориентация на безопасность:


-  Аккуратная работа с памятью - никаких нулевых и потерянных указателей. Автоматическое управление памятью;

-  Контроль изменчивости. Объекты неизменяемы (Immutable) по умолчанию;

-  Безопасность динамического выполнения: обработка сбоев, исключения, ведение лога, RAII / dtors;

-  Typestate: возможность определения сложных инвариантов, контролирующих структуры данных.

-  Ориентация на параллельность и эффективность кода:


-  Явный контроль памяти, контролирование схемы распределения памяти;

-  Крайне лёгкие задачи, формируемые в виде сопрограмм. Лёгкость в порождении тысяч и миллионов подпроцессов;

-  Итераторы стека (фактически лямбда-блоки без распределения кучи);

-  Статическая, нативная компиляция с созданием исполняемых файлов ELF, PE, Mach-o;

-  Прямой и простой интерфейс для кода на языке Си;

-  Ориентация на практическое применение:


-   Мультипарадигмальный, функциональный, императивно-процедурный, объектно-ориентированный, поддерживающий параллельную actor-модель;

-  Функции  высшего порядка с биндингами;

-  Нет номинальных типов (http://en.wikipedia.org/wiki/Nominative_type_system) или иерархии типов;

-  Мультиплатформенный, поддерживается Windows, Linux, Mac OS X, *BSD;

-  Хранение строк в UTF-8, разнообразие низкоуровневых типов;

-  Работает с существующими нативными наборами инструментов: GDB, Valgrind, Shark и т.д.;

-  Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать.


URL: https://mail.mozilla.org/pipermail/rust-dev/2014-July/010655...
Новость: http://www.opennet.me/opennews/art.shtml?num=40125


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено softfire , 03-Июл-14 10:48 
Зачем нужны Раст и Го, когда есть Эрланг?

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 10:57 
Надо же людям чем-то заниматься. Вот и Эрланг тоже нинужно.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено rob pike , 03-Июл-14 12:01 
Только OOCobol
только хардкор

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Crazy Alex , 03-Июл-14 14:48 
Эрланг, при всех его плюсах, далеко не самый удобный язык. Одни строки чего стоят. Плюс эрланг - это, факьтически, только одна парадигма, а их часто удобно смешать.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 12:13 
Go не нужен, потому что gc. Эрланг вообще убогая помойка. А вот Rust перспективы умеет.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Crazy Alex , 03-Июл-14 14:51 
Rust тоже gc, вообще-то. А что Go не нужен - согласен, если хочется бедный возможностями язык - есть си с паскалем и прочая древность.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 19:05 
Вы путаете gc и автоматическое управление памятью.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 08-Июл-14 04:40 
В расте в стандартной библиотеке гц тоже есть.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено rshadow , 03-Июл-14 12:20 
Правильный вопрос: зачем нужен rust, go, erlang, ...

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено vitalif , 03-Июл-14 12:39 
Чтобы мазиле было чем заняться...

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено qqq , 03-Июл-14 14:11 
не, Раст очень интересен - симбиоз ФП и ООП, чего мало в эрланге. Эрланг тоже крут, но нет пространств имен и полезных возможностей ООП: наследование, виртуальные методы, полиморфизм. Надо, чтобы разработчики Раста еще более пристально взглянули на эрланг и позаимствовали еще больше отдельных фич и парадигм таких как матчинг, хвостовая, атомы, ноды, реализации модели "акторов"... Но в целом все довольно шикарно - главное выйти за пределы традиционных сопрограмм.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Kuku , 03-Июл-14 20:59 
> не, Раст очень интересен - симбиоз ФП и ООП, чего мало в
> эрланге. Эрланг тоже крут, но нет пространств имен и полезных возможностей
> ООП: наследование, виртуальные методы, полиморфизм. Надо, чтобы разработчики Раста еще
> более пристально взглянули на эрланг и позаимствовали еще больше отдельных фич
> и парадигм таких как матчинг, хвостовая, атомы, ноды, реализации модели "акторов"...
> Но в целом все довольно шикарно - главное выйти за пределы
> традиционных сопрограмм.

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



"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 10:56 
зачем нужны Раст, Го, Эрланг, Си, когда есть ассемблер?

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено ivn , 03-Июл-14 11:05 
зачем нужны компьютеры, когда есть человеческий мозг?

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено rob pike , 03-Июл-14 11:39 
Мозг - это мракобесие же, непрогрессивно, мэйнфрейм практически.
Сейчас модно распределенность, чтоб много дешевых взаимозаменяемых нейронов, shared nothing, message passing - как у медузы.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 13:30 
Gray goo.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено burjui , 03-Июл-14 14:13 
Зачем нужен мозг, если многие прекрасно живут, по всей видимости, без него?

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Димон , 03-Июл-14 15:39 
Говорят, что человеческий мозг способен распознать сарказм. Врут.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено rob pike , 03-Июл-14 16:23 
Иногда способен. Но только человеческий же сарказм.
Сарказм медузы нам не распознать. Что подтверждает нашу уверенность в превосходстве безмозговой модели.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноний , 03-Июл-14 11:01 
Если сравнивать Erlang и Rust то:
Динимическая типизация - Статическая типизация
Нет прямой работы с памятью - Есть (как прямамя так и GC)
Функциональное программирование - ООП
То есть совершенно разные ЯП.


"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено tratata , 03-Июл-14 11:19 
В rust ООП ровно такое же как в haskell -- тот же самый вид полиморфизма и нет наследования. А erlang куда больше ООП язык, чем многие другие.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Crazy Programmer , 03-Июл-14 12:03 
Зачем Вам ООП?

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено anonymous , 03-Июл-14 12:17 
Что бы - ООП! Нанай-на!

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено анон , 03-Июл-14 12:12 
> Функциональное программирование - ООП

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


"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Crazy Alex , 03-Июл-14 14:54 
ООП - да. А вот насчет натуральности я бы поспорил. На редкость неестественно оно выглядит. Прнимерно как метапрограммирование, прибитое к старым плюсам.  И работает, и мощное донельзя, и используется повсеместно - но совершенно очевидно, что это насилие над языком. Благо, в С++11 подправили, осталось концептов дождаться.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 13:01 
ну, когда там уже появится стабильный rust 1.0

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 13:05 
http://www.opennet.me/openforum/vsluhforumID3/95231.html#18

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 16:55 
Дональд Кнут одобрил ???
значит паскаль и Си, остальное сжечь, еретики

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Mirraz , 03-Июл-14 20:06 
Очень похоже на торт! Раньше всё надеялся на D, но GC убивает все преимущества, Go как-то мимо меня прошёл, а вот Rust как раз может стать той серебряной пулей.

"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Отправлено Аноним , 03-Июл-14 21:36 
Go полностью завязан на GC, так что вам он понравится видимо еще меньше чем D :) А еще там нет дженериков