Личный блог с мыслями и наблюдениями

Язык 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 он имеет гораздо большие шансы на то, чтобы изменить методы разработки клиент-серверного ПО для интернет.

30.07.2013   техническое   код   rust