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)

Тысячи языков появятся и исчезнут, а C++ останется еще на очень долго, может он и не идеальный, но идеального языка не будет никогда

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

C++ будет существовать ровно столько, сколько будет существовать C. Как самостоятельный язык C++ - отстой. Народ хавает его только из-за «СКОРОСТИ», и из-за того, что «ему нет альтернативы чтобы писать в стиле четырёх провокаторов», а не из-за того, что он элегантный и красивый. Ну вот вам и альтернатива - этот ваш Rust :-)

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

C++ будет существовать ровно столько, сколько будет существовать C. Как самостоятельный язык C++ - отстой

совместимость между ними уже давно миф

Народ хавает его только из-за «СКОРОСТИ»

изза гигантской инфраструктуры, которая уже выстроена вокруг него

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

Сразу видно, говорит некомпетентный фонат. Вот что пишет Страуструп в своей свеженькой книге A tour of C++: «С незначительными исключениями, C++ является надмножеством C (C11). Большинство различий происходит от того, что C++ делает больший упор на проверку типов. Хорошо написанные программы C являются программами на C++.» Учите мат. часть, анон.

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

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

читай дальше книжки и делись с нами своими знаниями

anonymous
()

Все бы ничего

Язык интересный, но синтаксис, это еще тот ужасъ.

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

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

MyTrooName ★★★★★
()

Не могли подождать еще лет 5 пока я сишечку нормально не освою

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

Редкая критика по существу, что скажут растоманы?

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

А чего уж там сильно проще, если использовать RAII? В плюсах нынче есть смартпоинтер с счетчиком ссылок (shared_ptr<T>) и auto_ptr<T> с человеческим лицом (unique_ptr<T>), причем с нулевым оверхедом в рантайме, даже weak_ptr<T> навострили. Более того, теперь есть нормальные фабрики make_*, так что new вообще ненужен.

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

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

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

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

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

Зато понадобится очень много убийц, чтобы ликвидировать погромистов на «сишечке с классами», которые из-за обратной совместимости ещё десятилетия будет клепать говнокод, который компилируется C++. Буэээ...

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

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

И всё это поверх синтаксиса C++14, который создан поверх c++11, который ... который нахлобучен на Си. Это тот исключительный случай, когда синтаксис языка решает

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

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

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

Обратная совместимость гарантируется (по крайней мере, для 1.х).

Так в чём проблема?

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

И всё это поверх синтаксиса C++14, который создан поверх c++11, который ... который нахлобучен на Си.

А чем там плох синтаксис? Он как раз хорош, не зря его во всякие Java и C# почти без изменений перенесли.

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

А чем там плох синтаксис?

Да он прекрасен. Синтаксис C++ прекрасен

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

Синтаксис, это не самое страшное, что может быть в языке. Хотя, конечно, я за новый синтаксис и переключатель «use c++17», чтобы всякое старое говно в ним переставало компилироваться.

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

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

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

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

Очевидно, потому что не всё можно (нормально) решить библиотеками?

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

Синтаксис непривычен потому, что семантика непривычна, тут ничего не сделаешь. Ну и после того, как liftime elision реализовали, они выводятся автоматом в большинстве случаев.

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

Вот настоящая проблема C/C++ - есть куча людей, который мечтают видеть их «у гробу у светлой обуви». И меньше их не становится.

На самом деле, всё немного не так. Большая часть орущих, что С++ не нужен с ним толком и не знакомы. Это я не к тому, что «неосилили», а просто язык модно ругать. Точно так же как модно ругать джаву за потребление памяти или лисп за «маргинальность». Такие люди на раст пересаживаться всё равно не будут. Посмотри - даже в этой теме появляются люди у которых задница горит от существования С++ при этом им «пофиг на раст». Логикой это не объясняется.

Ждали D - не взлетел, теперь ждут Rust. Не взлетит - неужели не переключатся на нового фаворита и перестанут ждать?

Я на это смотрю как на разные эксперименты, результаты которых могут попасть в новые (и существующие тоже) языки. Хотя взлёту раста был бы рад.

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

В расте есть только одна МАЛЕНЬКАЯ проблемка - любые структуры данных делаются с большим скрипом и кучей unsafe'ов.

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

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

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

Ну не любые, но в целом да, меня это тоже напрягает

А каких структур данных тебе не хватает в std?

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

А чего уж там сильно проще, если использовать RAII?

Не столько проще, сколько удобнее, рекомендую попробовать. В С++ тебе никто не запретит попытаться разыменовать пустой unique_ptr/shared_ptr, в расте без unsafe ты такого добиться не сможешь.

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

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

Покажите мне, пожалуйста, borrow checker и lifetime checker в виде библиотеки на C++

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

А каких структур данных тебе не хватает в std?

Дык, я ж уточнил, что беспокоит это больше «теоретически».

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

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

так суть-то не в этом. Опытные С++ программисты вполне себе пишут надёжный код уже десятелетиями.
Все эти растовские компайл-тайм проверки не дадут всё равно взрывного эффекта появления сотен качественных библиотек и миллионов строк 'безопасного' кода. Т.е. язык-то хороший будет, а библиотек мало и/или все наколенные и/или 'небезопасные', написаные на всё тех же сях/++ используемые через ффи. Энтузиасты будут переизобретать на расте велосипеды с квадратными колёсами, вместо того чтобы, например, улучшать качество плюсовых библотек. Случится очередное разделение и размывание сил программистского сообщества и все останутся с низкокачественными/неполными библиотеками.

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

Элегантен и красив не язык, а код грамотного специалиста. Выпрямить руки никакой руст никогда не поможет. Си прост как молоток. Не можешь осилить даже молоток - вон из профессии.

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

Мне вот интересно, а многие здесь из кричащих «отстой» уже пишут на C++14?

Это не так просто как ты думаешь. Вот у нас писали сначала под мак/линукс и могли себе позволить на свежие версии компиляторов (gcc/clang) переходить. А потом возникла необходимость под винду «портировать» (код как бы кроссплатформенный). Плюс emscripten и tizen и всё становится сильно веселее. Даже с С++11 не всегда всё гладко. А сейчас 2015 год, если что.

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

В C++17 обещают

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

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

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

Как раз в погоне за обратной совместимости с C создатель C++ и сделал его тем «остоем», которой он из себя представляет. 2017 года ждать долго, дорогой анон. До того момента может либо «ишак сдохнуть, либо султан».

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

Ща наброшу... Дат ты просто старпер! Большинство необходиых библиотек в эпоху соверменного опенсорса появится в течении пары лет. Мы это видели на примере JavaScript и Go. Нужен лишь язык, на овладение которым не нужно 10 лет практики. Смирись, весь этот «опыт» программирования на С++ - это опыт борьбы с ветрянными лестницами, которым гордятся только старперы, которые потратили свою жизнь на заудрачивание того, как писать безопасный код, вместо того, что бы получать результат.

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

Попробовать надо безусловно, стану умнее полюбому. Насчет пустого unique_ptr<>, так это его надо специально освободить сначала, да и в этом случае, может быть, варнинг будет. По крайней мере, я с удовольствием заметил на той неделе, что gcc 5.1 предупреждает, когда ты пытаешься использовать пустой boost::optional<>.

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

Опытные С++ программисты вполне себе пишут надёжный код уже десятелетиями.

Пишут-то пишут... Но вот у нас «джуниоров» нет, обязательное ревью, тесты, статические анализаторы и валгринд. И тем не менее, пролезают баги (и не только в логике, разумеется).

Опять же, некоторые вещи средствами С++ делаются сложно и неудобно. Как пример буст (который я, в общем-то, люблю). А если вдруг что, то в недрах буста не каждый программист разберётся. Так что более удобные и безопасные языки нужны.

Случится очередное разделение и размывание сил программистского сообщества и все останутся с низкокачественными/неполными библиотеками.

Так, наверняка, говорили и про С++ (против С) и т.д. Имхо, развивать языки всё-таки надо. Опять же, раст предоставляет сишный интерфейс, если надо, так что растовые библиотеки можно использовать из других языков.

Ну и что-то я сомневаюсь, что вот все сидели и «улучшали качество плюсовых библиотек». Этим занимается небольшой процент людей. Велосипедить своё проще, чем часто и занимаются. С таким же успехом можно предложить, например, выкинуть все ГУИ-библиотеки и освободившихся людей кинуть на Qt. Но это нереально. И более того - не всегда хорошо.

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

Элегантен и красив не язык, а код грамотного специалиста.

«Синтаксических сахар» всё-таки делает код проще.

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

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

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

А вот уже комментарий по существу и справдливый. Пятёрочка тебе, коллега! ;-) Действительно, всё дело-то в языке.

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

Большинство необходиых библиотек в эпоху соверменного опенсорса появится в течении пары лет.

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

Мы это видели на примере JavaScript

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

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

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

А вообще количество упоминаний C++ в новости про Rust улыбает. Язык выпустили специально для того, чтобы плюсовиков на форумах потролить?

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

Насчет пустого unique_ptr<>, так это его надо специально освободить сначала, да и в этом случае, может быть, варнинг будет.

Он может прийти из функции.

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

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

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

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

/fixed

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

Я бы не смог забыть об этом, даже если бы хотел - я программирую на Си %)

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

Большинство необходиых библиотек в эпоху соверменного опенсорса появится в течении пары лет. Мы это видели на примере JavaScript и Go.

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

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

Так, наверняка, говорили и про С++ (против С) и т.д.

Касательно C++ против C сильно сомневаюсь. В свое время C++ и Eiffel дали разработчикам возможность использования ООП без лишних тормозов. Для того времени это был существенный шаг вперед.

А вот Вирт по поводу Java негодовал, это было. Мол, украли все лучшие идеи из Oberon-а, а выпустили какую-то какашечку :)

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

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

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

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