The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Выпуск языка программирования Rust 0.11, развиваемого проект..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от opennews on 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  –12 +/
Сообщение от softfire email on 03-Июл-14, 10:48 
Зачем нужны Раст и Го, когда есть Эрланг?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  –3 +/
Сообщение от Аноним (??) on 03-Июл-14, 10:57 
Надо же людям чем-то заниматься. Вот и Эрланг тоже нинужно.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

8. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +4 +/
Сообщение от rob pike on 03-Июл-14, 12:01 
Только OOCobol
только хардкор
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

21. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +2 +/
Сообщение от Crazy Alex (ok) on 03-Июл-14, 14:48 
Эрланг, при всех его плюсах, далеко не самый удобный язык. Одни строки чего стоят. Плюс эрланг - это, факьтически, только одна парадигма, а их часто удобно смешать.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

11. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Аноним (??) on 03-Июл-14, 12:13 
Go не нужен, потому что gc. Эрланг вообще убогая помойка. А вот Rust перспективы умеет.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

22. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  –4 +/
Сообщение от Crazy Alex (ok) on 03-Июл-14, 14:51 
Rust тоже gc, вообще-то. А что Go не нужен - согласен, если хочется бедный возможностями язык - есть си с паскалем и прочая древность.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

27. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Аноним (??) on 03-Июл-14, 19:05 
Вы путаете gc и автоматическое управление памятью.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

32. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Аноним (??) on 08-Июл-14, 04:40 
В расте в стандартной библиотеке гц тоже есть.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

13. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от rshadow (ok) on 03-Июл-14, 12:20 
Правильный вопрос: зачем нужен rust, go, erlang, ...
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

14. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +1 +/
Сообщение от vitalif (ok) on 03-Июл-14, 12:39 
Чтобы мазиле было чем заняться...
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

19. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +2 +/
Сообщение от qqq (??) on 03-Июл-14, 14:11 
не, Раст очень интересен - симбиоз ФП и ООП, чего мало в эрланге. Эрланг тоже крут, но нет пространств имен и полезных возможностей ООП: наследование, виртуальные методы, полиморфизм. Надо, чтобы разработчики Раста еще более пристально взглянули на эрланг и позаимствовали еще больше отдельных фич и парадигм таких как матчинг, хвостовая, атомы, ноды, реализации модели "акторов"... Но в целом все довольно шикарно - главное выйти за пределы традиционных сопрограмм.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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


Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

2. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  –1 +/
Сообщение от Аноним (??) on 03-Июл-14, 10:56 
зачем нужны Раст, Го, Эрланг, Си, когда есть ассемблер?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +3 +/
Сообщение от ivn on 03-Июл-14, 11:05 
зачем нужны компьютеры, когда есть человеческий мозг?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +1 +/
Сообщение от rob pike on 03-Июл-14, 11:39 
Мозг - это мракобесие же, непрогрессивно, мэйнфрейм практически.
Сейчас модно распределенность, чтоб много дешевых взаимозаменяемых нейронов, shared nothing, message passing - как у медузы.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

18. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Аноним (??) on 03-Июл-14, 13:30 
Gray goo.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

20. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +4 +/
Сообщение от burjui (ok) on 03-Июл-14, 14:13 
Зачем нужен мозг, если многие прекрасно живут, по всей видимости, без него?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

24. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +2 +/
Сообщение от Димон (??) on 03-Июл-14, 15:39 
Говорят, что человеческий мозг способен распознать сарказм. Врут.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

25. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +2 +/
Сообщение от rob pike on 03-Июл-14, 16:23 
Иногда способен. Но только человеческий же сарказм.
Сарказм медузы нам не распознать. Что подтверждает нашу уверенность в превосходстве безмозговой модели.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +1 +/
Сообщение от tratata on 03-Июл-14, 11:19 
В rust ООП ровно такое же как в haskell -- тот же самый вид полиморфизма и нет наследования. А erlang куда больше ООП язык, чем многие другие.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Crazy Programmer on 03-Июл-14, 12:03 
Зачем Вам ООП?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +2 +/
Сообщение от anonymous (??) on 03-Июл-14, 12:17 
Что бы - ООП! Нанай-на!
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

23. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  –1 +/
Сообщение от Crazy Alex (ok) on 03-Июл-14, 14:54 
ООП - да. А вот насчет натуральности я бы поспорил. На редкость неестественно оно выглядит. Прнимерно как метапрограммирование, прибитое к старым плюсам.  И работает, и мощное донельзя, и используется повсеместно - но совершенно очевидно, что это насилие над языком. Благо, в С++11 подправили, осталось концептов дождаться.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +1 +/
Сообщение от Аноним (??) on 03-Июл-14, 13:01 
ну, когда там уже появится стабильный rust 1.0
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Аноним (??) on 03-Июл-14, 13:05 
http://www.opennet.me/openforum/vsluhforumID3/95231.html#18
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

26. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  –1 +/
Сообщение от Аноним (??) on 03-Июл-14, 16:55 
Дональд Кнут одобрил ???
значит паскаль и Си, остальное сжечь, еретики
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

28. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Mirraz (ok) on 03-Июл-14, 20:06 
Очень похоже на торт! Раньше всё надеялся на D, но GC убивает все преимущества, Go как-то мимо меня прошёл, а вот Rust как раз может стать той серебряной пулей.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Выпуск языка программирования Rust 0.11, развиваемого проект..."  +/
Сообщение от Аноним (??) on 03-Июл-14, 21:36 
Go полностью завязан на GC, так что вам он понравится видимо еще меньше чем D :) А еще там нет дженериков
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру