Рубрика «Rust» - 40

Основы Rust – Глава 2. Использование переменных и типов - 1

В предыдущем главе было много косяков с переводом. Спасибо всем за указания недочетов, текст был полностью переделан. Надеюсь эта глава получилась более «вменяемой» с моей стороны, старался как мог.

В этой главе будут рассмотрены основные строительные материалы Rust программ: переменные и их типы. Мы обсудим такие вопросы, как переменные с базовыми типами, явное указание типа и область видимости переменных. Так же, мы обсудим один из краеугольных камней в стратегии безопасности Rust — неизменяемость.
Читать полностью »

Rust начинался как проект, решающий две трудные проблемы:

  • Как обеспечить безопасность (работы с памятью) в системном программровании?
  • Как сделать многопоточное программирование безболезненным?

Изначально эти проблемы казались не связанными друг с другом, но к нашему удивлению, их решение оказалось одинаковым — проблемы с многопоточностью решают те же самые инструменты, которые обеспечивают безопасность.

Ошибки работы с памятью и ошибки при работе с несколькими потоками частно сводятся к тому, что код обращается к некоторым данным вопреки тому, что он не должен этого делать. Секретное оружие Rust против этого — концепция владения данными, способ управления доступом к данным, которого системные программисты стараются придерживаться самостоятельно, но который Rust проверяет статически.

С точки зрения безопасности работы с памятью это означает, что вы можете не использовать сборщик мусора и в то же время не опасаться сегфолтов, потому что Rust не даст вам совершить ошибку.

С точки зрения многопоточности это означает, что вы можете пользоваться различными парадигмами (передача сообщений, разделяемое состояние, lock-free-структуры данных, чистое функциональное программирование), и Rust позволит избежать наиболее распространённых подводных камней.

Вот какие особенности у многопоточного программирования в Rust:

Читать полностью »

Сегодня мы рады представить релиз Rust 1.0 Beta! Бета-релиз является очень важным звеном на пути к финальному релизу 1.0. В частности, в бета-релизе все библиотеки и элементы языка, которые мы собирались сделать стабильными в 1.0, отмечены как стабильные. Поэтому по бета-релизу можно весьма точно представить, что вас будет ожидать в Rust 1.0.

Читать полностью »

Rust logo
Прошло пять недель с тех пор как вышла альфа версия Rust 1.0! До того как выйдет следующая предварительная версия Rust, мы хотели бы рассказать о текущем состоянии языка и о том, что мы еще намерены сделать по пути к стабильной версии 1.0.

TL;DR: Rust 1.0 выйдет 15 мая 2015 года
Читать полностью »

В комментариях к одной из ссылок на Hacker News некто утверждал, что использование Rust предотвратило бы Heartlbeed, что код бы даже не скомпилировался. Это прозвучало как вызов!

Тред начинается вот здесь. Я не собирался ни к кому придираться, но утверждение о предотвращении Heartbleed оказалось удачно сформулировано. В отличие от расплывчатых заявлений о безопасности работы с памятью в целом, конкретно данное утверждение можно протестировать.
Читать полностью »

С удивлением обнаружил, что это ожидаемое многими событие почему-то обошло Хабр стороной. Думаю, что для многих программистов, следящих за этим языком программирования, будет полезно узнать, что тот самый релиз версии Rust 1.0.0 состоялся 9 января. В этой версии наконец-то стабилизировали ядро языка и большую часть стандартной библиотеки, так что теперь можно начинать писать на Rust'е программы не боясь, что через неделю что-то сломается после обновления компилятора.

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

Читать полностью »

Привет.

В прошлую субботу я выступал с докладом на очередном митапе Saratov Open-IT, где я рассказал про Rust — многообещающий системный язык программирования, разрабатываемый Mozilla Research и сообществом, и про то, какие проблемы он решает и какие у него есть особенности и инфраструктура. Надеюсь, что моё выступление будет интересно сообществу, поэтому выкладываю его здесь.

(видео не вставлено в пост через тег <video> потому что он не работает с конкретной временной меткой; длительность — примерно полтора часа)
http://www.youtube.com/watch?v=lmauAUF823k#t=2583

Читать полностью »

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

Замечания к переводу прошу слать в личку.


Много важного несёт с собой предстоящий релиз Rust 1.0, но самым главным в нём являются наши усилия по обеспечению стабильности, аналогичные нашей постоянной ориентации на безопасность.

Начиная с версии 1.0, мы перейдём на шестинедельный цикл релизов и к набору «каналов». Канал стабильных релизов обеспечит безболезненные обновления, а канал ночных сборок предоставит первопроходцам доступ к тому функционалу, над которым в данным момент ведётся работа.

Читать полностью »

Rust LogoСегодня Аарон Тюрон — разработчик, недавно присоединившийся к разработке Rust в Mozilla — объявил об отсрочке реализации какого-либо механизма исключений, кроме уже существующего макроса try! и типа Result, до неопределённого момента после первого релиза языка программирования Rust.

Это означает, что в Rust 1.0 будут отсутствовать исключения первого класса — то есть, полностью интегрированные с другими фичами языка.

Для обработки ошибок в данной момент в Rust существует тип Result { Ok(value), Err(why) } и макрос try!. Тип Result представляет из себя перечисление (enum), похожее на Option { Some(value), None } и связанное с ним по смыслу. Вариант None типа Option говорит об отстутствии значения, а вариант Err(why) типа Result уточняет, почему значение отсутствует.

Rust предлагает возвращать тип Result из функций, чтобы передавать значение возврата или причину, по которой значение вернуть не удалось. Макрос try! в свою очередь позволяет автоматически возвращать Err(why) из текущей функции, если вызов другой функции не удался (применяется к объекту типа Result).
Читать полностью »

Привет. Этим постом мы начинаем наши пятничные новостные выпуски, в которых будем рассказывать о новых технологиях, поддержку которых мы внедрили в наш проект, а также о фичах, которые сделают работу с Vexor максимально продуктивной. Наша команда учитывает пожелания пользователей, и постепенно мы расширяем наш функционал.
Напомним, что Vexor CI – облачный continuous integration сервис для разработчиков с неограниченными ресурсами и поминутной оплатой, позволяющий эффективно тестировать проекты.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js