Перейти к публикации
Форум - ComputerCraft

IncluderWorld

  • записей
    12
  • комментариев
    60
  • просмотров
    28 387

Ржавеем по полному! #0. Что за зверь Rust этот?

LeshaInc

1 953 просмотра

XK893iv.pngRust


Не так давно появился язык программирования Rust. В этой записи я расскажу вам, чем так примечателен Rust (раст) и почему всем стоит на него переходить.
На главной странице раста написано, что он – системный язык программирования, который работает быстро, предотвращает вылеты и гарантирует безопасность.

Не стоит прямо сейчас закрывать страницу из-за непонятных слов. Сейчас во всем разберемся.



Rust – системный ЯП

Это значит что на нем можно писать программы любой сложности и их можно будет запустить везде, от тостера до компьютера Васи Пупкина, без необходимости скачивать интерпретаторы/виртуальные машины (как в случае с
Java
и
Lua
).

 

Например, Си – системный, а Java – нет. :P
Попробуйте написать на Java ядро ОС. У вас ничего не выйдет, так как что бы запустить Java нужна виртуальная машина (да-да, то самое "скачать жаву" это и есть "скачать виртуальную машину Java =) )
Совсем другое дело обстоит с Си.

 

Например, следующий код можно запустить абсолютно на любом компьютере.

int main() {    int a = 1;  a++;  return 0;}


Эквивалентный код на расте тоже будет работать везде. Вот он:

fn main() {  let mut a = 1;  a += 1;}



Эта фича позволит нам писать на расте программы любой сложности, от hello-world'ов, до операционных систем.
Пойдем дальше.

Rust – быстрый ЯП

Раст
– быстрый ЯП, и с этим не поспоришь. Он компилируется в машинный код что позволяет ему так быстро работать. Работает не хуже
Си.


Rust – безопасный ЯП

 

Безопасность
раста
проявляется во всем. От I/O до потоков, от указателей до типов данных. В этом можно убедиться самому.


Например следующий код на Си
int main(){  int x = 10;  int *px = &x;    px = 0;  *px = 3;}


Вполне скомпилируется, но работать не будет. Программа с подобным кодом упадет. Дебаг таких программ всегда сложен.

Аналогичный код на расте:

fn main() {  let ref mut p = 10;  p = 0;  *p = 3;}


Компилироваться он не будет, следовательно программист заметит (скорее всего) ошибку и исправит ее. Убедитесь сами.

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


Из фич этого языка я бы выделил:

  • "Бесплатные" абстракции. Когда в Java абстракции достигаются путем уменьшения качества выходного кода, в расте все бесплатно, как и в C++.
  • Гарантированная безопасность. Когда в других языках гарантия безопасности обеспечивается программистом, в расте компилятор сам позаботится о безопасности кода. Он делает это всегда, но мы вполне можем попросить его не проверять код. Для этого используются unsafe блоки кода (поговорим еще о них).
  • Многопоточность без гонок (англ. data-race). Все кто писал многопоточный код на языках вроде C++ или Java знают как не просто достигнуть безопасности таких потоков. В расте же такой код делается очень просто, сам убеждался не раз.
  • Трэйты. Разработчики раста решили отказаться от стандартной концепции классов и интерфейсов.
    Но на расте вполне можно писать в объектном стиле (поговорим еще об этом). Все решать вам.
     

    Я придумал термин «объектно-ориентированный», и я уверяю вас, что не имел в виду C++


Фич куда больше, это только малая часть.

О самой работе с растом будет написано в следующей серии. =)

 

Да Здравствует Rust!

  • Like 4


11 комментариев


Рекомендованные комментарии

Давай, давай, мочи! =)

Пока ты меня не убедил. Scala рулит. :P

Поделиться комментарием


Ссылка на комментарий

Вопрос нуба))

Если эти языки такие универсальные, тогда почему они не так популярны как Си?

Поделиться комментарием


Ссылка на комментарий
Вопрос нуба))

Если эти языки такие универсальные, тогда почему они не так популярны как Си?

 

Все просто, Си появился в 1972, 44 года назад. Раст же в 2010, 6 лет назад. В общем то за такое время у Си набралось много учебных материалов, вакансий, примерных проектов. Что у раста за 6? Мощное сообщество (Mozilla), немного проектов, большинство из которых еще на ранних стадиях. Вакансий нет.

 

Стоит подождать лет эдак 10 раст станет более популярным, не то что скала (привет, @Totoro), которая за 13 лет набрала 276 контрибьюторов всего. Для сравнения, в гитхабе раста 1427 контрибьюторов.

  • Like 2

Поделиться комментарием


Ссылка на комментарий

На вкус и цвет, все фломастеры разные.

Но Раст интересный язык. Стоит того, чтобы присмотреться.

  • Like 2

Поделиться комментарием


Ссылка на комментарий

На вкус и цвет, все фломастеры разные.

Но Раст интересный язык. Стоит того, чтобы присмотреться.

Но C++ лучший из фломастеров.

Поделиться комментарием


Ссылка на комментарий

А вот это уже субъективность чистой воды.

Твои слова тоже субъективность чистой воды.

Поделиться комментарием


Ссылка на комментарий

По сути каждое мнение субъективное, каким бы объективным оно не казалось)

  • Like 2

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×