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)
Ответ на: комментарий от I-Love-Microsoft

Почему у тебя аватарка такая? :-)

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

Отсюда следует, что для того, чтобы сделать что-то годное на этом вашем C++

Для того, чтобы сделать что-то годное на Java, например, работают еще большие коллективы, труд которых оплачивается не меньше, если не больше, чем труд C++ников.

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

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

Хороший синтаксис: простой, ясный, не содержит чего-то, вроде «val nums = 1 :: (2 :: (3 :: (4 :: Nil)))»

Каждая путанная конструкция отнимает внимание, оно быстро кончается и середине дня человек никакой. Это не продуктивно, в конце концов.

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

Не думаю. Java лучше C++ в плане простоты. Потому то для Java давно уже есть хорошие IDE, которые реально делают работу приятнее и продуктивнее. Поэтому и разработка ведётся проще и быстрее. Страуструп писал, что задумывал C++ для того, чтобы «сделать работу программиста приятной». Но это его такой оксюморон, ага. Ведь всем приятно писать на C++, особенно в vim, и запускать gdb в консоли. :-)

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

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

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

Онанировать в потный кулачёк, гулять на свежем воздухе, общаться с живыми людьми намного приятнее, чем писать C++-код в vim, а потом компилить и запускать в gdb очередной высер :-) Ты не отвлекайся, пиши код :-)

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

Не думаю.

И не начинайте.

Java лучше C++ в плане простоты.

В определенных областях эта простота хуже воровства. Поэтому многие вещи до сих пор пишут на C++. А там, где Java лучше, уже очень и очень давно пишут на Java. А так же на куче других безопасных языков с GC.

Потому то для Java давно уже есть хорошие IDE, которые реально делают работу приятнее и продуктивнее.

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

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

Почему каждый третий вываливает настроение своей левой пятки, как некий веский аргумент?

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

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

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

Просто интересно, когда же они успели столько всего работающего на плюсах написать, если вся жизнь на «заудрачивание» ушла?

Да нихрена они на фоне того же JavaScript не написали.

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

Ты еще с его семантикой работы с памятью не сталкивался)

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

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

Я говорю про инструмент программиста, а не про бизнес-аналитиков с их опечатками. Не надо большого ума, чтобы понять, что чем качественнее инструменты, тем качественнее и быстрее будет выполненная работа. Это не только в разработке софта, это везде так. Если бизнес-оналитегу не дать ничего, кроме калькулятора с бумагой и карандашом, то понятно чем закончатся его анализы. :-)

все разговоры о конкретном языке реализации — это вообще ни о чем

А вот ряд компетентных гуру, включая Брукса, говорили и говорят, что стремиться нужно использовать как можно более высокоуровневые языки, чем C++ похвастаться не может ну никак. Что там, классы, говорите, есть? Хехе. :-)

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

Я говорю про инструмент программиста

Вам не мешало бы понять, что инструменты программиста на общем фоне затрат на разработку софта имеют совсем небольшое влияние. Будет ли код писаться в vim, в NetBeans, CLion или VisualStudio — на общую скорость разработки это не повлияет.

Повлияет выбор правильной платформы для разработки: скажем C++ или Java, или С#. Но при принятии таких решений в больших проектах проблемы vim vs IDEA не играют вообще никакой роли.

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

Ну тогда почему нет массовой разработки софта на Haskell-е?

Что там, классы, говорите, есть?

Вы вообще C++ когда-нибудь в глаза видели?

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

Покажи аналог Qt на джаваскрипте/Gо.

ОK, покажи мне надежный web сервер на Qt. Десктопные приложения это лишь малая часть от всего того кода что сейчас пишут люди. и c каждым годом его доля становится все меньше.

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

Лучше покажи чудика, которому в эпоху веба эта рухлять нужна.

Какая? Десктопные приложения? Ну откажись от них совсем.

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

Да нихрена они на фоне того же JavaScript не написали.

А на JavaScript уже написали что-то более толковое, чем GMail и Google Docs?

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

ОK, покажи мне надежный web сервер на Qt.

А зачем тебе web сервер на Qt?

Я вообще-то о том, что некоторые масштабные вещи требуют вливания кучи денег, а не появляются сами собой «в течении пары лет».

Десктопные приложения

Кстати, зачем противопоставлять «десктопные приложения» языкам? На том же С++ и для мобильных устройств пишут. А ещё есть такая штука как еmscripten.

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

Вам не мешало бы понять, что инструменты программиста на общем фоне затрат на разработку софта имеют совсем небольшое влияние. Будет ли код писаться в vim, в NetBeans, CLion или VisualStudio — на общую скорость разработки это не повлияет.
Повлияет выбор правильной платформы для разработки: скажем C++ или Java, или С#. Но при принятии таких решений в больших проектах проблемы vim vs IDEA не играют вообще никакой роли.

А Вам не мешало бы понять, что в силу своей гиперсложности, для C++ до сих пор нет нормального инструмента. (Это такого, с помощью которого программист бы получал удовольствие от своей работы, как мечтал Страуструп.) В отличии от Java, ну или упомянутого C#.

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

Что же касается vim + C++ vs IDEA + Java, то я думаю, что любой вменяемый программист хотел бы использовать второе. :-)

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

ОK, покажи мне надежный web сервер на Qt. Десктопные приложения это лишь малая часть от всего того кода что сейчас пишут люди

web server на С++:

https://en.wikipedia.org/wiki/Internet_Information_Services

Всего лишь процентов 13% от всего кол-ва серверов.

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

Это, как раз, едва ли не единственная годнота для C++.

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

Qt != C++

Ну так это ты наркоман с наркоманскими запросами. На Qt пишут и веб сервера, но учитывая специфику тулкита - это частные решения под небольшие задачи, а не унивесральный веб сервер.

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

А зачем тебе web сервер на Qt?

А зачем тебе аналог Qt на Go?

Кстати, зачем противопоставлять «десктопные приложения» языкам?

Смысл в том что Qt чисто десктопная технология, и то что для какого-то из языков нет Qt не означает что эти языки не нужны.

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

А Вам не мешало бы понять, что в силу своей гиперсложности, для C++ до сих пор нет нормального инструмента.

Я это прекрасно понимаю. Взять даже C++ные шаблоны, из-за которых практически невозможно создать инструменты для рефакторинга, сравнимые с таковыми для Java/C#. Да, продвинутую IDE поэтому не создашь. А вот разработку на C++ шаблоны очень сильно упрощают.

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

C++ - это монстрик, в плохом смысле этого слова.

Так когда вы в последний раз C++ видели?

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

Например, CodeMirror.

О да, это ушло намного дальше Google Docs.

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

А вот разработку на C++ шаблоны очень сильно упрощают.

Не так сильно, как хотелось бы. Они бы её действительно упрощали, если бы язык шаблонов не был бы столь убогим — нельзя использовать сам C++ для для продвинутой кодогенерации. Ну, например, можете ли Вы сгенерировать строку SQL-запроса во время компиляции программы, в зависимости от того, сколько было задано параметров variadic template'а с помощью шаблонов? Максимум, что Вы сделаете, это кодогенерацию множества ф-ий с разным числом параметров из шаблона, которые будут вызывать друг друга до тех пор, пока не вызовут ф-ию без параметров. (А-ля, операция ...). Ещё приходится применять такие методы как «использование параметра шаблона для выбора алгоритма», всякие «списки параметров» от Александреску. Язык шаблонов в C++ очень-очень ограничен, хотя и полон по Тьюрингу. Но от этого не лехше.

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

сгенерировать строку SQL-запроса во время компиляции программы

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

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

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

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

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

Кто это такой вообще, чем знаменит и с каких пор мы должны считать его гуру?

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

Да уж, такая, оказывается, тут бублика. Надо сваливать :-)

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

Ну и раст, благодаря Option/Result типам «заставляет» обрабатывать ошибки, ну или явно выбирать возможность паники.

Кстати, я во многих случаях, когда операция может и не удаться не из-за каких-то исключительных причин (типа закончилась память, и т.п.), а по логике, возвращаю boost::optional<T>, и потом явно проверяю, заполнен он или нет. К большому сожалению, std::experimental::optional<T> не умеет reference types, и непонятно, заумеет ли или нет.

Надо посмотреть что из себя представляют эти Option/Result типы...

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

В C++17 обещают модули вместо унылого инклюдного говна, поддержку концептов для метапрограммирования, расширение стандартной библиотеки (один filesystem чего стоит), и много чего ещё.

Модули и концепты — это, конечно, хорошо, за 30 лет додумались, наконец. Но лично я смогу назвать кресты достойным языков только после появления pattern matching, пускай и такого убогого, как предложил Бьёрн.

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

как предложил Бьёрн.

Так это, он Бьерн, Бьярн, Бьёрн, Бьярне или Бьёрне? А то переводчики по-разному пишут :-)

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

Что ааа? Фредерик Брукс?

«АААА» - это то, что человек, не знающий о Бруксе, высказывает свое мнение о языке программирования.

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

Достойный язык, это скажем Haskell, а я вообще к тому, что скоро, судя по всему, C++ вообще можно будет пользоваться нормально без большой боли как высокоуровневым языком. Отсутствие pattern matching, это, к сожалению, далеко не первоочередная и единственная практическая проблема C++.

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

«АААА» - это то, что человек, не знающий о Бруксе, высказывает свое мнение о языке программирования.

Когда это незнание чего либо мешало на ЛОР высказать свое «ненужно»?

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

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

К тому времени, пожалуй, JavaScript уже будет работать так быстро, что C++ придётся забыть :-)

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

он Bjarne

а переводчики могут переводить как Bjarne на душу положит

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

Понятия не имею, написал, как в википедии. Для меня он всегда был Bjarne.

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

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

Ну чего сказать, грустно у вас, или может быть это мне повезло, что у нас такая халява: я свой проект перевел на gcc 5.1 через два дня после его выпуска ;-), правда, разумеется, он не кросс-платформенный и достаточно, чтобы он работал в нашем продакшоне, хотя специально на это я стараюсь не завязываться.

Это всё здорово (без сарказма). Вот только принятия стандарта мало, надо чтобы реализации подтянулись.

Так получается, что это скорее проблема вашей политики. Упомянутый gcc 5.1 полностью поддерживает C++14, и уже имеет кое-что из C++17 (тот же std::experimental::optional, и т.п.), clang вроде бы тоже не сильно отстает. Так что когда C++17 утрясут, реализации будут уже почти готовы.

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

Конечно долго, а, с другой стороны, я вот, например, уже третий или четвертый год новости про Rust на ЛОРе читаю, так с тех пор C++11 поддерживается уже почти всеми живыми компиляторами, а C++14 как минимум несколькими. До 2017 года по сути осталось ещё года два, ну ты понел...

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

К тому времени, пожалуй, JavaScript уже будет работать так быстро, что C++ придётся забыть :-)

Он и сейчас достаточно шустр, вот только «Script» в названии не зря упомянут.

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