Состоялся (http://blog.rust-lang.org/2015/05/15/Rust-1.0.html) первый стабильный выпуск развиваемого проектом Mozilla языка программирования Rust (http://www.rust-lang.org), который ознаменовал полную стабилизацию программных интерфейсов всех библиотек и языковых конструкций. Основной причиной подготовки Rust 1.0 является желание стабилизировать язык и сделать его пригодным для использования в реальных проектах. В процессе подготовки ветки Rust 1.0 программные интерфейсы и возможности языка подверглись значительной ревизии, после которой по умолчанию оставлены (http://blog.rust-lang.org/2015/01/09/Rust-1.0-alpha.html) только полностью готовые к применению возможности, реализация которых не будет изменяться в дальнейшем. Все остальные функции переведены в разряд экспериментальных и вынесены из поставки по умолчанию. Таким образом каждый следующий за Rust 1.0 стабильный выпуск будет полностью обратно совместим с предыдущим и будет гарантировать неизменность API. По мере доведения до готовности, экспериментальные возможности будут стабилизироваться и включаться в основные выпуски. Для использования экспериментальных возможностей следует использовать ночные сборки или явно разрешить данные возможности на этапе сборки, в противном случае обращение ко всем компонентам API, которые признаны нестабильными, будет приводить к выводу ошибки.
Язык Rust развивается проектом Mozilla и сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. Исходные тексты проекта распространяются (https://github.com/mozilla/rust/) под лицензией MIT. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (http://www.opennet.ru/opennews/art.shtml?num=36576), написанный (https://github.com/servo/servo/) на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).
По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.
URL: http://blog.rust-lang.org/2015/05/15/Rust-1.0.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=42241