The OpenNET Project / Index page

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

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

"Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от opennews (??) on 04-Апр-14, 11:10 
Проект Mozilla представил (https://mail.mozilla.org/pipermail/rust-dev/2014-April/00938...) выпуск Rust 0.10 (http://www.rust-lang.org/), экспериментального языка программирования со строгой типизацией, сфокусированного на безопасной работе с памятью и обеспечению высокого параллелизма выполнения заданий (возможность порождать тысячи и даже миллионы подпроцессов). Исходные тексты проекта распространяются (https://github.com/mozilla/rust/) под лицензией MIT.  Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (https://www.opennet.ru/opennews/art.shtml?num=36576), написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

С момента прошлого выпуска внесено около 1500 изменений (https://github.com/mozilla/rust/wiki/Doc-detailed-release-notes). В дополнение к архивам с исходными текстами для Linux и OS X началось формирование бинарных сборок. Из состава удалена библиотека libextra, которая разделена на серию мелких модулей. Добавлены атрибуты "#[macro_export]" и "#[phase(syntax)]", дающие возможность задания макросов и расширений синтаксиса, не привязанных к контейнерам, в которых они определены. В систему умных указателей добавлены две новые языковые конструкции Deref и DerefMut, позволяющие управлять разыменованием указателей. Улучшены средства обработки ошибок ввода/вывода.


По структуре язык  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-April/00938...
Новость: https://www.opennet.ru/opennews/art.shtml?num=39490

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

Оглавление

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


1. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +6 +/
Сообщение от Аноним (??) on 04-Апр-14, 11:10 
Когда я искал что-нибудь новенькое для изучения выбор был между Go и Rust.
К счастью я выбрал Go...

PS. Ничего не имею против Rust, но мне кажется, что они слишком часто ломают API.

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

11. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +4 +/
Сообщение от Хрен с горы on 04-Апр-14, 11:53 
http://jaredly.github.io/2014/03/22/rust-vs-go/index.html
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

28. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Пользователь Дебиан on 04-Апр-14, 13:33 
Я бы также посоветовал прочитать "Go and Rust — objects without class": http://lwn.net/Articles/548560/
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +5 +/
Сообщение от Аноним (??) on 04-Апр-14, 12:02 
> PS. Ничего не имею против Rust, но мне кажется, что они слишком часто ломают API.

То что вы ничего не имеете против, это конечно хорошо, но только сразу видно, что сами вы ничего никогда не создавали.

Посмотрите внимательно на номер версии. На этой стадии "слишком часто ломать API" не только можно, но и нужно.

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

P.S. Однако добавлю свое "не против".
Зачем они его назвали "Rust"? Что они имели в виду?
Rust - означает "ржавчина", в лучшем случае "окисление". По крайней мере других значений я не нашел.
Как корабль назовешь, так оно и полетит...

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

17. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +1 +/
Сообщение от Анонимоус on 04-Апр-14, 12:21 
>Как корабль назовешь, так оно и полетит...

Матиас Руст в свое время до Красной площади вполне успешно долетел ;)

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

22. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от zserge on 04-Апр-14, 12:45 
В Go на ранних версиях сделали gofix, который автоматически фиксил изменения в апи и в языке. Т.е. с выходом новой несовместимой версии просто обрабатываешь исходники с gofmt - и получаешь поддержку новых апи.
А насчет версий и циферок: проекты Go и Rust - ровесники, оба с 2009 года, не важно какие цифры в версиях ставить - все равно у Rust темпы развития заметно ниже.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

25. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +1 +/
Сообщение от Аноним (??) on 04-Апр-14, 12:50 
Go развивает Google, Rust - Mozilla и сообщество. Естественно, у первых больше ресурсов и темпы развития выше.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

32. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +3 +/
Сообщение от Пользователь Дебиан on 04-Апр-14, 13:41 
> Go развивает Google, Rust - Mozilla и сообщество. Естественно, у первых больше
> ресурсов и темпы развития выше.

Не говорите, если не знаете: в Google над Go работает пять-шесть человек, и из них не все делают это фулл-тайм. Основной мейнтейнер Windows-порта не работает в Google. И т.п.

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

26. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +2 +/
Сообщение от Аноним (??) on 04-Апр-14, 13:24 
это не более чем видимость. Синтаксис Go давно стабилизирован из-за своей чрезвычайной простоты, но под капотом там надо еще очень много чего сделать.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

24. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  –1 +/
Сообщение от Аноним (??) on 04-Апр-14, 12:48 
Лучше сначала план действий построить, потом пачку прототипов для тестирования и уже потом продукт. Но тут решили пойти по пути без промежуточных прототипов, что в свою очередь заставляет их до сих пор API ломать и ломать...
Повторюсь, я ничего не имею против Rust если будет свободное время то даже посмотрю как он поведет себя на небольшой реальной задачке(но это будет не скоро), а пока мне более интересен Go.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

47. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +2 +/
Сообщение от Аноним (??) on 05-Апр-14, 08:00 
> а пока мне более интересен Go

Всем нам очень интересно, что там интересно тебе. На это раз говорю за всех, да.

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

30. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +1 +/
Сообщение от Пользователь Дебиан on 04-Апр-14, 13:37 
>> PS. Ничего не имею против Rust, но мне кажется, что они слишком часто ломают API.
> То что вы ничего не имеете против, это конечно хорошо, но только
> сразу видно, что сами вы ничего никогда не создавали.
> Посмотрите внимательно на номер версии. На этой стадии "слишком часто ломать API"
> не только можно, но и нужно.
> Лучше в начале хорошенько поломать, чтобы потом ломать можно было как можно
> меньше ради всяких там обратных совместимостей.

Вы правы, но есть одна "тонкость": иногда хочется/требуется, изучая новое, всё же писать код, у которого хорошие шансы *выжить,* и тогда нужна какая-то стабильность.
Go со своим API Compatibility Promise для 1.x вполне это обеспечивает: я знаю, что мой код, написанный для Go 1.1 будет компилироваться Go 1.9, а также это относится ко всем пакетам, которые мой код использует.

Поэтому "на поиграться" Rust безусловно интересен. Но если мы говорим о коде, который собирается где-то работать, то пока что Rust подходит только для Servo, так как по-сути это такой большой красивый набор юниттестов для Rust, который пишут разработчики Rust (я упрощаю, но думаю, моя идея понятна).

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

46. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 05-Апр-14, 02:44 
> Посмотрите внимательно на номер версии. На этой стадии "слишком часто ломать API" не только можно, но и нужно.

Посмотрите внимательно на номер версии Firefox. А API как начали регулярно ломать с 4-й версии, так и продолжают. Особенно интересно будет, если Electrolysis (выделение вкладок в отдельные процессы) все-таки запилят, то авторам всех расширений, хоть как-то взаимодействующих с содержимым страниц, придется все переписать. Ну, или сменить браузер. :)

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

2. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 11:12 
А что это такое?

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

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

10. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 11:53 
пишешь unsafe и шпаришь на "сях" -- круши-ломай, память вся твоя
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

36. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  –1 +/
Сообщение от Гость on 04-Апр-14, 15:25 
> пишешь unsafe и шпаришь на "сях" -- круши-ломай, память вся твоя

Воспитанные на сишке и плюсах так и будут писать, поэтому толку от безопастности Rustа будет мало.


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

23. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от zserge on 04-Апр-14, 12:46 
> А что это такое?
>>>Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать

Около 30% кода компилятора Rust обернуто в блоки "unsafe". Т.е. язык настолько безопасен что сколь-либо полезную программу без unsafe не написать.

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

37. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Гость on 04-Апр-14, 15:28 
>Т.е. язык настолько безопасен что сколь-либо полезную программу без unsafe не написать.

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


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

40. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от zserge on 04-Апр-14, 16:25 
>>Т.е. язык настолько безопасен что сколь-либо полезную программу без unsafe не написать.
> Просто программисты раньше писали на си и плюсах и привыкли к ним
> до такой степени, что перестроиться под безопасный Rust не смогли.

Мне кажется что компилятор Rust пишут разработчики, знающие Rust и понимающие как его применять

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

43. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от тоже Аноним email(ok) on 04-Апр-14, 16:41 
Господа теоретики, а вам не кажется, что наличие чего бы то ни было в компиляторе отнюдь не означает нужду в этом в прикладном коде?
Сколько процентов макросов и шаблонов в коде GCC?
А STL и Boost, например, все из шаблонов - специально для того, чтобы уже пользователю с ними не париться, а спокойно использовать вылизанные решения на более высоком уровне.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

12. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Хрен с горы on 04-Апр-14, 11:55 
Кстати, недавно Servo прошел Acid2
http://i.imgur.com/CsLkgLl.png
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 12:32 
А вот как это развивалось http://imgur.com/a/O667X
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

21. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +1 +/
Сообщение от Аноним (??) on 04-Апр-14, 12:43 
Кроме этого, недавно его запустили на контроллере: http://i.imgur.com/I6yDNjz.jpg
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

15. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 12:19 
Я уже достаточно пообсуждал этот язык с профи.
Они говорят, что когда есть C++, от Rust пользы никакой, а только дополнительная головная боль из-за ограничений, которые присутствуют в Rust, вследствие того, что это "безопасный язык".

Так что, если не хотите ерундой лишний раз страдать и терять попусту время, тогда учите C++.
И это не говоря уже о том, что для C++ есть уже всё и больше чем всё во всех сферах и моментах, а для раст инраструктура до такой степени разовьётся лет через 15-20. И то при условии, что все массово начнут отказываться от C/C++.

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

20. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 12:41 
Никто не планирует внедрять Rust, язык не рекомендуется использовать в production на данный момент.
C++ - мощнейший инструмент, позволяющий использовать различные парадигмы и технологии программирования. Кроме того, обладающий отличной производительностью. Безопасность - единственное слабое место языка. Писать безопасно на C++ можно, но нужно быть очень осторожным.
Mozilla создаёт язык, который по её мнению сможет стать безопасной заменой C++. Писать на нём не сложнее, а вот выстрелить себе в ногу - гораздо сложнее. Вместе с тем, Rust остаётся производительным, что немаловажно для системного ПО. На мой взгляд, за этим языком будущее.

P.S. John Regehr не так давно говорил, что пора уйти от небезопасных моментов C, создав новый язык. Современные мощности позволяют утратить незначительную долю производительности, получая взамен безопасность. Большой специалист по Си. Как фамилии ваших профи, не поделитесь?

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

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

31. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 13:37 
Лажа полная.
C++ и больше ничего не нужно.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  –1 +/
Сообщение от Аноним (??) on 04-Апр-14, 13:36 
Я Вам что, стукач что ли? Это Михаил Шигорин сливает личную переписку, и вообще всех сливает.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

34. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от ... on 04-Апр-14, 14:46 
Второй абзац и ниже - можно смело заменять нпример "Mozilla"->"Gnome" и "Rust"->"Vala".
Да, конечно, Rust != Vala, но:

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

кричат на каждом углу Java, Ruby, Python да и все кто медленнее С  и имеет сборщик мусора.

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

42. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 16:33 
Зачем, когда давно есть Objective-C?
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

35. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Гость on 04-Апр-14, 14:47 
>P.S. John Regehr не так давно говорил, что пора уйти от небезопасных моментов C, создав новый язык.

Зачем? Когда уже давно существует безопасная сишка Cyclone и виртовские обероны?

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

38. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Гость on 04-Апр-14, 16:10 
Добавлю: таже Ada ещё например.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

41. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 16:31 
А я добавлю LLVM бит код.
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

50. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от цуауца on 10-Апр-14, 01:49 
> Добавлю: таже Ada ещё например.

синтаксис ады, несмотря на наличие неплохих мыслей, явно переусложнен, причем с бессмысленной ломкой многих моментов совместимости с алголом/паскалем в простых вещах

if Ada.Command_Line.Argument_Count /= 1 then
  Ada.Text_Io.Put_Line (File => Ada.Text_Io.Standard_Error,
                        Item => "USAGE: " & Ada.Command_Line.Command_Name & "<input-file-name>");
end if;

впорочем синтаксис раста вообще создан больными на голову программистами (впрочем а бывают ли другие то) - сократить привычное, полезное и заметное ключевое слово function до непонятного и незаметного fn, но зато всюду пихать бессмысленное let, поменять привычный и безвредный switch/case  на match, но оставить бессмысленные и плохо читаемые ц сокращения типа += и т.п.

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

33. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +1 +/
Сообщение от Хрен с горы on 04-Апр-14, 13:54 
>Я уже достаточно пообсуждал этот язык с профи.

На ЛОРе. :)

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

45. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 05-Апр-14, 00:26 
Нет :)
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

49. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от цуауца on 10-Апр-14, 00:33 
> то при условии, что все массово начнут отказываться от C/C++.

От ц++ уже массово отказались все (и везде) кто-только мог. Правда новые языки тоже изрядное гуано.

>C++ Безопасность - единственное слабое место языка.

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

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

18. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 04-Апр-14, 12:26 
>Нет номинальных типов

A structure is a nominal structure type defined with the keyword struct.
An enumeration is a simultaneous definition of a nominal enumerated type as well as a set of constructors.

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

48. "Выпуск языка программирования Rust 0.10, развиваемого проект..."  +/
Сообщение от Аноним (??) on 05-Апр-14, 22:34 
> #!/bin/sh
> local V=$1

https://github.com/mozilla/rust/blob/master/configure

вот как так?

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

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

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




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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