LINUX.ORG.RU

Вышел Rust 1.0

 , ,


12

10

15 мая 2015 года, в соответствии с планом, вышел публичный релиз Rust 1.0 - языка программирования общего назначения, разрабатываемого Mozilla совместно с сообществом. Язык ориентирован на разработку безопасных и эффективных приложений, имеет развитую систему типов, оптимизирующий кодогенератор на основе llvm и предоставляет расширенные гарантии потокобезопасности и безопасного доступа к памяти без использования сборщика мусора. В частности, Mozilla использует Rust для разработки браузерного движка следующего поколения servo.

Выход релиза 1.0 означает стабилизацию языка и стандартной библиотеки, их дальнейшее развитие будет происходить с сохранением обратной совместимости. В то же время, выход релиза не означает остановки развития языка - одновременно с релизом 1.0 разработчики выпустили бета-версию Rust 1.1, и в дальнейшем планируют выпускать новую версию каждые 6 недель. Среди ожидаемых изменений - заметное уменьшение времени компиляции и дальнейшее расширение стандартной библиотеки.

Перед релизом сообществом была проделана большая работа по обновлению пакетов в официальном репозитории crates.io , где подавляющее большинство из 2000 пакетов приведены в соответствие с версией 1.0. Онлайн-компилятор play.rust-lang.org претерпел редизайн и теперь позволяет выбирать между версиями компилятора. Менеджер пакетов и система сборки cargo так же получил ряд улучшений. Большинство популярных редакторов уже имеют полноценную поддержку языка, с подсветкой ошибок и автодополнением на основе racer, дополнительно вчера вышел Visual Rust 0.1 - расширение для поддержки Rust в Visual Studio. Официальная документация (The Book, The Rust Reference, Rust By Example и документация стандартной библиотеки) была приведена в соответствие со стабильным релизом, сегодня же стала доступна для предзаказа книга Programming Rust издательства O'Reilly, выход которой ожидается в ноябре 2015 года.

Некоторые изменения со времени альфа-версии, вышедшей в феврале:

Официальный сайт: http://rust-lang.org/.

Примечания к релизу: https://github.com/rust-lang/rust/blob/master/RELEASES.md.

Ссылка на скачивание: http://www.rust-lang.org/install.html.

Официальная документация: http://doc.rust-lang.org/stable/.

>>> Подробности



Проверено: maxcom ()
Последнее исправление: cetjs2 (всего исправлений: 14)

Ответ на: комментарий от Oxdeadbeef

Вот интересно, это какая-то дефективная особенность развития головного мозга делает всех Lisp-еров удивительно похожими?

eao197 ★★★★★
()

судя по комментариям, rust говно и никому не нужен :)

anonymous
()
Ответ на: комментарий от eao197

Почему ты везде видишь угрозу? Кто то мешает тебе работать/жить? Люди разные. Лисперы-Шисперы или кто-то другой тоже.

Oxdeadbeef ★★★
()
Ответ на: комментарий от Oxdeadbeef

Люди разные. Лисперы, почему-то, одинаковые.

В данном топике лисперы, включая вас с нафиг никому не упавшим сочувствием, мешают выяснить, где и как Rust способен потеснить конкретно C++.

Или специально для альтернативно одаренных, перефразируем: мешаете разобраться, в каких задачах использование Rust-а может быть выгоднее использования C++. Если не прямо сейчас, то в перспективе.

eao197 ★★★★★
()
Ответ на: комментарий от nezamudich

Так же, как и в С++ - структура, в поля которой по значению или по ссылке захватывается окружение и определяется operator(). Ты можешь сделать std::move (дефолт в Rust) локальной переменной в замыкание и потом передать замыкание в метод или вернуть по значению. Разница в том, что в С++ надо явно указывать, как ты захватываешь окружение ([=], [&], [x=std::move(x)] ), а Rust выводит это сам.

nonimous
() автор топика
Ответ на: комментарий от Oxdeadbeef

Ага, за 20 лет использования /только/ цепепе можно стать задротом с синдромом цепепе головного мозга. Джон Кармак, например, это уже понял и учит себя и сына Lisp (Racket).

anonymous
()
Ответ на: комментарий от eao197

мешаете разобраться

где я мешал кому-то?

в каких задачах использование Rust-а может быть выгоднее использования C++

Почему ты хочешь обсуждать C++ в топике про Rust? Это оффтопик. Мне Rust тоже интересен, но плюсофилы почему то решили, что только они могут здесь обсуждать.

Oxdeadbeef ★★★
()
Ответ на: комментарий от Oxdeadbeef

где я мешал кому-то?

Здесь. Нафига здесь был этот комментарий не понятно.

Почему ты хочешь обсуждать C++ в топике про Rust?

Блин, lisp головного мозга не позволяет прочесть написанное по-русски? Это уже объяснялось, минимум, дважды:

Первый раз: «Мой интерес участия в обсуждениях языков вроде D, Go и Rust в том, чтобы понять, действительно ли появилось что-то заслуживающее внимания и реально устраняющее имеющиеся в C++ проблемы.»

Второй раз: «разобраться, в каких задачах использование Rust-а может быть выгоднее использования C++. Если не прямо сейчас, то в перспективе.»

У вас свой интерес к Rust-у, у меня свой.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Что ты то заладил лисп да лисп. Я здесь его вообще не упоминал.

У вас свой интерес к Rust-у, у меня свой.

Вот и ладушки: создавай тему в девелопмент Rust vs C++ pros and cons, а не жалуйся что тебе здесь не дают дискутировать о C++ в топике про новость о Rust. Заодно по тегу подтянешь интересующихся.

Oxdeadbeef ★★★
()
Ответ на: комментарий от Oxdeadbeef

Обсуждение С++ в топике про Rust гораздо уместнее обсуждения лиспа в топике про Rust. Но кого когда это останавливало.

nonimous
() автор топика
Ответ на: комментарий от nonimous

Обсуждение С++ в топике про Rust гораздо уместнее обсуждения лиспа в топике про Rust.

Ага, парочка упоминаний про про лисп от анонимных троллей, и 16 страниц про C++. На HN и то интереснее.

Oxdeadbeef ★★★
()
Ответ на: комментарий от Oxdeadbeef

Вот и ладушки: создавай тему в девелопмент

Вы сами поймете куда пойти с такими указаниями или подсказать?

Ваш анонимный коллега по lisp-о-цеху завел речь о том, что метапрограммирование способно более эффективно избавлять разработчика от рутинных задач, чем шаблоны и пр. возможности C++. Поскольку рутины в C++ достаточно, то было интересно выяснить, что именно подразумевает аноним. Может быть, макросы Rust-а смогли бы помочь.

Ан нет, все оказалось предсказуемо. Речь зашла о макросах Lisp-а и о каких-то выдуманных проблемах C++.

eao197 ★★★★★
()
Ответ на: комментарий от nezamudich

Секундочку, так в Rust и полноценных замыканий нет что ли? Как их без GC реализовать-то?

В плюсах лямбды видел? Тут так же только с гарантией, что не захватишь ссылку на объект, который умрёт до использования. Ну и объекты могут «перемещаться» в замыкание, если надо.

DarkEld3r ★★★★★
()
Ответ на: комментарий от Oxdeadbeef

А что ты хотел? Раст позиционируется как системный язык с упрощением работы с памятью и попыткой избавления от совсем явных багов допускаемых на си. Вот лисперы тут как-то сбоку бантик, на макры повыделываться. А у плюсовиков вполне себе понятный интерес к инструменту который может и не настолько мощный как плюсы, но который позволит сильно упростить написание кода при этоми не слишком просаживая его по производительности.

Мне в одном сайд-проекте плюсы приходится использовать просто потому что всё остальное ещё хуже. На си писать слишком много boilerplate, питоны и прочая лиспота-скриптота не устраивает производительностью, жаба не устраивает тем что я в неё не умею толком, потреблением памяти и сложным FFI. Благо сейчас когда часть работы сгрузилась на реалтайм контроллер, стало попроще с требованиями к производительности, но они никуда не делись. До недавнего времени раст не устраивал тем, что он в бете и периодически ломался.

Вот, как говорится, и выбирай на вкус из плюсов и плюсов.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от eao197

Да вот я с себя тоже удивляюсь. По своей глупости, наивности и неопытности у меня был реальный опыт использования C++. Сотни часов, дней и ночей были посвящены ему. И мне он даже нравился, потому что я не знал, что бывают на свете и другие, лучшие, более свободные и действительно красивые возможности формализации своих идей для создания программ. А потом произошёл небольшой фэйл. И стало понятно, почему - был выбран C++. По большому счёту, знание этого языка означает знание бесконечных ловушек и препятствий, сложностей, которые программист создаёт сам себе и должен постоянно преодолевать. Ну и ещё, знание тонны библиотек с из различных источников, с различной семантикой и различными багами, потому что без библиотек C++ ничего из себя не представляет вообще. На всё это уходит время, а как говорил гуру Брукс, недостаток времени - главная причина фэйла проектов. Вот C, например, знать обязан любой профессиональный программист, потому что он учит работе с памятью, позволяет лучше понять, как работает машина, его функциями представлен API ОС, на нём написано множество годных рантаймов и ядер, и, наконец, на нём можно без головняка с extern «C» переписывать узкие места. Кроме того, C, в отличии от C++, имеет ясную семантику. Лично я для себя сделал вывод, что C++ можно знать либо для общего развития (чтобы держаться от него подальше, если возможно), либо, если хочется работать в конторе, которая его использует, т.е., за деньги, либо, учитывая его популярность, пытаться писать какие-нибудь библиотеки, чтобы произвести на кого-то впечатление, дабы стать известным в цепепе-коммунити (если хватит сил, терпения и мозгосилы родить годноту на цепепе, как, например, Qt). Для быстрого создания софта цепепе негоден, для развития мышления - тоже, а уж если рассматривать программирование, как искусство, то и подавно.

anonymous
()
Ответ на: комментарий от Dark_SavanT

питоны и прочая лиспота-скриптота не устраивает производительностью

Лисп давным-давно уже компилируются в машинный код, и сравнивать его с каким-то питоном очень некорректно.

anonymous
()
Ответ на: комментарий от Dark_SavanT

Не знаю, попробуй посмотри на Gambit Scheme.

anonymous
()
Ответ на: комментарий от nonimous

Спасибо за объяснение, конечно, но ЯННП. Придётся туториалы курить, похоже.

nezamudich ★★
()
Ответ на: комментарий от nonimous

Разница в том, что в С++ надо явно указывать, как ты захватываешь окружение

Уже даже этого достаточно, чтобы плеваться. :-)

anonymous
()
Ответ на: комментарий от eao197

Ан нет, все оказалось предсказуемо. Речь зашла о макросах Lisp-а и о каких-то выдуманных проблемах C++.

Ан нет, все оказалось предсказуемо

о макросах Lisp-а

Что-то непонятное или плохое в этом контексте?

Любое упоминание лиспа, его фич и его использование, как альтернативы, (да-да, в том числе и C++) для сложных проектов, почему то вызывает негативную реакцию именно у пользователей сиплюсплюс на лоре (да, да). Поэтому что-либо доказывать вам, пользователям C++, со стажем более 10 лет не имеет смысла, все равно не поверите либо просто отвергните факт. Поэтому можно понять эту ксенофобию. Мне то все равно, но просто забавно. Больше спорить не буду.

Oxdeadbeef ★★★
()
Ответ на: комментарий от Oxdeadbeef

все не так. просто бывают такие утырки, который даже в посты, не относящиеся к лиспу суют его не к месту. отсюда можно сделать вывод о неуверености лисперов в себе, в своем инструменте, в своем будущем. от так вот

anonymous
()
Ответ на: комментарий от anonymous

подергайте себя за конец и расслабьтесь уже. этот топик про rust, а не про ваш скрытый эдипов комплекс к крестам.

anonymous
()
Ответ на: комментарий от Oxdeadbeef

Негативную реакцию вызывает в основном то, что лисперы носятся со своим «ко-ко-ко Лисп! ко-ко-ко Макросы! ко-ко-ко Метапрограммирование!» и при этом внятных примеров превосходства лиспа над теми же плюсами принести не могут. Как впрочем и примеров современных больших проектов где бы использование лиспа вместо X наглядно показывало преимущества лиспа.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

Также, как и бывают утырки, которые даже в посты про лисп, суют свои толстые тролль-посты про фэйл лиспа. Отсюда можно сделать вывод о, как ты там сказал, скрытом эдитовом комплексте стада крестофилов к лиспу. :-)

anonymous
()
Ответ на: комментарий от Oxdeadbeef

Любое упоминание лиспа, его фич и его использование, как альтернативы, (да-да, в том числе и C++) для сложных проектов, почему то вызывает негативную реакцию именно у пользователей сиплюсплюс на лоре (да, да).

Уверяю вас, не только на LOR-е. И не только у пользователей C++. Но и у пользователей любого другого мейнстримового ЯП.

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

По своей глупости, наивности и неопытности у меня был реальный опыт использования C++.

И поэтому вы не допускаете мысли о том, что кто-то может использовать C++ не из-за своей глупости, наивности и неопытности?

Как раз в современных условиях для выбора C++ нужно иметь достаточно приличный кругозор и опыт, а так же отсутствие наивных иллюзий.

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

Прикиньте, а ведь многие знают. И свободно пользуются, когда это позволяют условия.

А потом произошёл небольшой фэйл. И стало понятно, почему - был выбран C++.

Ага, ага. Когда кто-то начинает расказывать, что фэйл софтверного проекта произошел из-за неверного выбора языка реализации, то в подавляющем большинстве случаев это говорит о крайней неопытности рассказчика подобных баек.

Для быстрого создания софта цепепе негоден,

Смотря какого софта. Вот эти товарищи вполне себе решали вычислительные задачи на C++ и нашли это удобным, причем возможности современного C++ там использовались в полный рост: https://github.com/boostcon/cppnow_presentations_2015/raw/master/files/boost-...

Кстати, вопрос к Rust-оманам: а что-то подобное Rust позволяет изобразить?

а уж если рассматривать программирование, как искусство, то и подавно.

Скажите честно, вы когда-нибудь разработкой софта себе на жизнь зарабатывали?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Для быстрого создания софта цепепе негоден

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

Dark_SavanT ★★★★★
()
Ответ на: комментарий от eao197

Кстати, вопрос к Rust-оманам: а что-то подобное Rust позволяет изобразить?

Сейчас - нет, конечно. Но матричная акробатика, при всей ее эффектности, не нужна как минимум 99% целевой аудитории.

tailgunner ★★★★★
()
Ответ на: комментарий от Dark_SavanT

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

Имею как бы противоположный опыт. Правда тогда прототип собирался из уже имеющихся готовых кусков, благо используемые фреймворки как раз были заточены под сборку приложений из отдельных «кирпичиков».

Если же делать что-то с нуля для новой предметной области, то да.

Но, имхо, что C++, что Rust не подходят для таких фокусов. Разве что предметная область связана с высокими требованиями по производительности, ресурсоемкости и предсказуемости.

eao197 ★★★★★
()
Ответ на: комментарий от Oxdeadbeef

Любой нормальный человек при упоминании говна испытывает рвотные позывы. Это нормально. Говноедам не понять.

anonymous
()
Ответ на: комментарий от eao197

Именно область применения? Системное программирование, как и пишут авторы. Лично мне хотелось бы, чтобы Rust стал заменой Си.

Но пока, насколько я могу судить по Reddit, Rust воспринимается как C++ lite. Что, наверное, неплохо.

tailgunner ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Dark_SavanT, tailgunner — ну вот у меня тоже ощущение, что Rust является заменой C. Тогда как у Rust-а не будет такой же масштабируемости между областями использования, как у C++. И Rust может подвинуть C++ там, где C++ сейчас бодается с C. Т.е. где-то в системном программировании. И, отчасти, в ПО промежуточного уровня (вроде СУБД, MQ, компиляторов и т.д.).

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Тогда как у Rust-а не будет такой же масштабируемости между областями использования, как у C++.

А почему бы и нет, собственно?

DarkEld3r ★★★★★
()
Ответ на: комментарий от DarkEld3r

А почему бы и нет, собственно?

Я пока недостаточно знаю Rust, чтобы аргументировать это субъективное ощущение :(

eao197 ★★★★★
()
Ответ на: комментарий от eao197

А в чём состоит «масштабируемость между областями использования»? Я наоборот считаю, что у плюсов очень узкая область где им действительно сложно подобрать подходящую замену. Это области типа геймдева, где требуется структурирование множества сущностей с минимальным оверхедом на процессор/память или разработка для встраиваемых систем, где опять таки требования к использованию ресурсов сильно жёстче чем на серверах/десктопах.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Dark_SavanT

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

Выше я уже давал ссылку на вычислительные задачи, которые решаются с помощью C++.

Пакеты вроде Photoshop/Lightroom разрабатываются на C++. Серьезные CAD-системы.

Телеком. Там так же требования к производительности. Плюс байты в каналах на C++ удобнее перепаковывать, чем на Java.

Компиляторы.

Ядра СУБД.

И все это один и тот же язык.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Выше я уже давал ссылку на вычислительные задачи, которые решаются с помощью C++.

Акробатика это. Там есть примечательный пункт - «наша работа доказывает, что Си++ является хорошей альтернативой Фортрану».

Пакеты вроде Photoshop/Lightroom разрабатываются на C++. Серьезные CAD-системы.

Телеком. Там так же требования к производительности. Плюс байты в каналах на C++ удобнее перепаковывать, чем на Java.

Компиляторы.

Ядра СУБД.

Всё это писалось на Си++ только потому, что из двух распространенных нативных языков один (Си) был совсем убогим. И для Rust главная опасность (если можно это назвать так) в том, что всё ПО такого уровня уже написано, и Rust просто негде применить.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ага, поэтому в цепепе пионэры наплодили 100500 разных, глючных либ.

Их не наплодили только на мёртвых(ну или полуживых) языках. Как ты людям запретишь делать либы?

anonymous
()
Ответ на: комментарий от anonymous

Презервативы тоже просто используют. Потом их выбрасывают. :-)

Именно. Понадобился C++ - воспользовался. В чем проблема-то? Ну не на си же писать.

anonymous
()
Ответ на: комментарий от tailgunner

Всё это писалось на Си++ только потому, что из двух распространенных нативных языков один (Си) был совсем убогим.

Не совсем так. Кроме C и C++ были еще и Ada, различные варианты Pascal, Modula-2 и Objective-C. Все они паслись на одной поляне.

По поводу Ada несколько лет назад попалась на глаза статья про разработку софта для авиации. Там говорилось, что до начала 2000-х софт для бортовых компьютеров самолетов разрешалось писать только на Ada (вроде как речь шла о европейских производителях самолетов). Но затем в список разрешенных языков добавили так же C++ и Java.

eao197 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.