- PVSM.RU - https://www.pvsm.ru -
Организация Mozilla вышла на финишную прямую в подготовке языка программирования Rust 1.0. Разработчики говорят [1], что это торжественное событие состоится примерно в конце года. После бета-тестирования выйдет финальный релиз. С этого момента перспективный язык программирования можно использовать в боевых условиях: код гарантированно будет компилироваться в следующих версиях.
Дело не только в компиляции. Mozilla считает, что дизайн Rust наконец-то приобретает желаемую минималистичную форму. К примеру, раньше было несколько типов указателей, сейчас остались только &T
, и &mut T
. Упрощение затронуло и другие аспекты, в том числе замыкания, которые вызывали много споров.
Rust сочетает в себе эффективность С и С++ с безопасностью Java.
Весь дизайн построен на концепции «владения и заимствования» (ownership and borrowing). Изначально предполагалось использовать механизм владения для быстрого и безопасного переноса данных между процессами. Но потом пришло понимание, что этот же механизм можно использовать для передачи значительной части функций в библиотеки. В итоге, Rust получился даже более низкоуровневым, чем разработчики предполагали, и без ущерба для безопасности. На минимальной конфигурации Rust можно даже написать ядро операционной системы (примеры: 1 [2], 2 [3], 3 [4])!
Разработчики также опубликовали список функций, которые надо реализовать до официального релиза. Вот над чем сейчас идёт работа:
Параллельно создаётся пакетный менеджер Cargo [9] и будет организован центральный репозиторий ПО.
Из лекции Степана Кольцова [10], которую недавно публиковали на Хабре:
«Rust решает проблемы Java и C++: программы, написанные на Rust, одновременно быстрые и безопасные. Rust является таким же низкоуровневым (в смысле close-to-metal) языком программирования, как и C++, однако в язык встроены конструкции, позволяющие на этапе компиляции доказывать, что в программе не случатся ошибки работы с памятью, как то обращение после использования, двойное удаление, использование неинициализированной памяти и т.п.
Кроме того, Rust исправляет многие ошибки, допущенные при проектировании C++ и Java. Например, шаблоны в Rust, в отличие от C++, статически типизированы, а вместо дженериков Java используется механизм, похожий на тайпклассы Haskell».
Примеры кода на Rust см. на официальном сайте [11].
Автор: alizar
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/69724
Ссылки в тексте:
[1] говорят: http://blog.rust-lang.org/2014/09/15/Rust-1.0.html
[2] 1: https://github.com/charliesome/rustboot
[3] 2: https://github.com/ryanra/RustOS
[4] 3: https://github.com/jvns/puddle
[5] хитроумный указатель: https://github.com/rust-lang/rust/commit/7932b719ec2b65acfa8c3e74aad29346d47ee992
[6] дизайне замыканий: https://github.com/rust-lang/rfcs/blob/master/active/0044-closures.md
[7] первая реализация: https://github.com/rust-lang/rfcs/pull/195
[8] этой функцией: https://github.com/rust-lang/rfcs/pull/135
[9] Cargo: http://crates.io/
[10] лекции Степана Кольцова: http://habrahabr.ru/company/yandex/blog/235789/
[11] официальном сайте: http://www.rust-lang.org/
[12] Источник: http://habrahabr.ru/post/237059/
Нажмите здесь для печати.