Язык Rust
Rust — это экспериментальный язык программирования, разрабатываемый Mozilla Research. Основная задача Rust — быть удобным языком для написания больших клиент-серверных приложений, работающих в сети Интернет. Такое позиционирование привело к возникновению набора функциональности с акцентом на безопасность, контролем за использованием памяти и параллельным выполнением задач. Производительность приложения на Rust должна быть сравнимой с производительностью C++ приложений. Выдержка из Википедии
Синтаксис Rust похож на C/C++ с блоками разделенными фигурными скобками и операторами такими как if, else, do, while и for.
А теперь вольный перевод хорошей, хотя и немного старой статьи A Quick Look at the Rust Programming Language.
Язык Rust включает в себя следующие особенности:
- Безопасное управление памятью. Нет Null pointer, wild pointer и т.д. автоматическое управление памятью.
- Контроль за мутабельностью. Объекты неизменяемые по умолчанию. Нет общих изменяемым состояний между задачами.
- Динамическая безопасность выполнения.
- Явное управление памятью.
- Очень легкие задачи (сопрограммы) как в Erlang, таски общаются передавая сообщения друг другу, передача данных возможна без копирования.
- Стек итераторы (фактически лямбда-блоки без выделения памяти в куче).
- Статические, родные компиляции (ELF / PE / Mach-O).
- Простой интерфейс для кода на C (переключатель стеков и вызовов).
- Multi-парадигмы. Чисто функциональный, императивно-процедурный.
- Функции первого класса с динамическим связываением
- Структурно-типизированные объекты (без номинальных типов или иерархии типов).
- Multi-платформенный(Windows, Linux, OSX).
- Поддержка UTF8.
- Работает с существующими тулчейнами (GDB / Valgrind / Shark / и т.д.).
Реализация Rust и библиотек для него пока что находится в процессе разработки.
Есть два Rust компилятора в различных стадиях развития:
rustboot — написан на O’Caml со своим собственным x86 бэкендом генерации кода.
rustc — компилятор, написанный на Rust и запускается при помощи rustboot. Генерация кода осуществляется с использованием LLVM. rustboot может быть использован для написания программ на Rust. rustc все еще находится в интенсивной разработке, и только самые основные вещи работают.
Заключение
Rust интересный и многообещающий язык с большими планами на будущее. В отличие от NodeJS он имеет гораздо большие шансы на то, чтобы изменить методы разработки клиент-серверного ПО для интернет.