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)

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

Ага, именно, как в говноРуби, например.

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

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

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

Но снаружи же он не торчит? Я бы посмотрел на замыкания на голых трейтах без сахарка в расте))

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

для голубых есть уже даже не библиотека а целый язык. С++ называется, да

anonymous
()

я с rust не знаком, хипстеров/фанатиков/хейтеров не слушал

кто-то может рассказать что оно из себя представляет? вдруг заинтересуюсь

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

Если в реальных программах чаще, то ок. Просто rust-book местами странен.

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

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

Может, конечно. Но ты же читать не станешь.

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

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

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

кто-то может рассказать что оно из себя представляет? вдруг заинтересуюсь

Вкратце:

  • zero-cost abstractions
  • move semantics
  • guaranteed memory safety
  • threads without data races
  • trait-based generics
  • pattern matching
  • type inference
  • minimal runtime
  • efficient C bindings
anonymous
()
Ответ на: комментарий от eao197

Не раньше, чем софт на JS перестанет тормозить и жрать память/гигагерцы.

В криокамере не самое новое железо, понимаю, понимаю...

Как будто в этом есть что-то хорошее.

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

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

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

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

Часть из этого лозунги, часть - доступна в крестах. По настоящему стоящего тут немного.

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

не самое новое железо

Каждый раз удивляюсь. Дело ведь не в том, нисколько железо новое. А в том, сколько из этого железа(пусть и самого новейшего) можно выжать. И каков для нашей задачи компромисс со скоростью разработки.

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

для большинства приложений просто работают

А потом удевляются, почему с таким подходом большинство приложений иногда «просо текут» или «просто падают».

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

В любом случае, тут с памятью всяко проще чем в c++

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

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

Ты ведь понимаешь, что разница в производительности это разница в реальных деньгах, которые ты отдаешь за сервера/облако? Вопрос в том, как эта разница сравнивается с расходами на разработку. При определенном размере проекта профиты от быстрой разработки и дешевой рабочей силы нивелируются расходами на железо, поэтому Twitter переписался с Ruby на Scala, а Google работает на С++.

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

Смысл в том что Qt чисто десктопная технология

QtNetwork, QtConcurrent, QtScript, QtSQL и куча классов QtCore от контейнеров до XML-парсеров и конечных автоматов вот прям дофига десктопные, дааааа.

Jabber-бот gluxi, например, весьма интенсивно использует Qt. Становится ли такой бот чисто десктопным приложением?

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

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

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

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

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

Десятилетиями пишут, а глюкам конца и края не видно :-) Опытные погромисты :-)

Не, это индусы. А они тебе и на расте глюков понаделают, не переживай.

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

В других языках есть библиотеки, которые все это делают (и гораздо лучше) без такого огромного монстра, как Qt. Да, «аналогов» Qt в других языках нет, потому там он нафиг не сдался и в них есть лучшие инструменты, пусть и другие.

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

Да, «аналогов» Qt в других языках нет, потому там он нафиг не сдался и в них есть лучшие инструменты, пусть и другие.

Имя, сестра, имя. Что это за языки такие? Неужели что-то кроме Java и C#?

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

Замес в том, что порог вхождения определяется даже не столько сложностью технологии, сколько гибкостью мозгов и способностью переваривать инфу, да отлаживать усвоенное путём тренировки.
Поэтому вопли про порог вхождения – это фуфло чаще всего. Орут, что в Эмаксе писать очень тяжело, что Хаскель полон матана и нереально труден в освоении, и вообще secret alien technology. Нифига подобного.

Hertz ★★★★★
()

Рустосрачи не умолкают. Rust взлетит уже хотя бы потому, что его хорошо распиарили. Хотя и представляет он собой жуткую мешанину из годных ML языков и C-подобной параши. Вероятно, последняя просто необходимое зло.

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

А зачем они?

Это компромисс между опасным С и безопасным GC. Ты сам себе связываешь руки, пишешь больше малочитабельного текста, усложняешь код и свою жизнь, но говоришь себе - зато это безопасно и нет оверхеда как в этих ваших Go или Java!

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

Выжать и компромис - это разные вещи. И важен как раз компромисс, и сейчас он таков, что для текущего уровнят железа JS - примелимая технология, таков рынок. Если твое железо слабее, то это уже не проблемы рынка.

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

Конечно понимаю, но JS это как раз таки довольно «облак-френдли» технология: есть JIT, есть всякие трансляторы-оптимизаторы. Конечно штука не идеальная в этом плане, и с развитием облаков JS-а будет не хватать. Но тут на очереди есть как раз Go.

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

которое по шустрости сливает даже пистону и годно только для локалхоста:)

Странное заявление.

А вдруг правда.

Озвучь источник информации, пожалуйста.

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

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

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

Не так радикально. Я не исключаю того, что сложность влияет на порог вхождения, я хотел сказать, что последний индивидуален.
Да и вдогонку, – по хорошему, сложная технология сложна внутри, но достаточно проста снаружи, простой интерфейс. Со сложным человеком легко общаться, потому что он гибок, с простым - тяжело, потому что он не адаптивен к собеседнику. То же самое можно применить к ЯП и прочему. На простых языках сложно писать, на сложных – относительно просто.

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

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

Программы со сборкой мусора для своей работы требуют в 4-6 раз больше памяти по сравнению с ручным удалением объектов, иначе они тормозят. От сборки мусора даже Apple отказались, у них теперь рулят умные указатели, а циклические зависимости управляются с помощью слабых ссылок (в новых MacOS и iOS GC deprecated, в Swift его вообще нет, используется ARC https://en.wikipedia.org/wiki/Automatic_Reference_Counting).

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

Спасибо, просветил. Я же сказал, если бы ... «с невероятной производительностью», было бы интересно, а то в умные указатели теперь даже кресты умеют, дожили.

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

Странное заявление.
А вдруг правда.

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

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

С++ ниразу не «сложная технология с простым интерфейсом». Это сложная технология со сложным интерфейсом. Вот Rust как раз сложная технология с довольно человечным интерфейсом.

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

Синтаксис, это не самое страшное, что может быть в языке.

Хорошему программисту синтаксис не мешает!

А если серьезно, то у C++ не самый лучший синтаксис, но очень мощная и понятная семантика. И если бы кому-то захотелось эту ситуацию разрешить, то написали бы компилятор, который переводит из языка с простым и понятным синтаксисом в C++. В результате и человеку было бы проще и разным IDE парсить и анализировать новый код и обратная совместимость не пострадала бы и, даже, время компиляции могло бы уменьшится (если генерировать более простой для компиляции код). При этом из нового языка использовать конструкции C++ можно было бы так же легко. В общем новый C++ с полной обратной совместимостью только лучше.

Ты знаешь хоть один сколько нибудь серьезный проект, который пытался сделать что-то похожее?

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

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

double_facepalm.jpg

tailgunner ★★★★★
()

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

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

После c++ хочется идти мыть руки.
Мне по душе семейство ML и лиспы.
Насчёт Rust поддержу, имеет потенциал.

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

После c++ хочется идти мыть руки.
Мне по душе семейство ML и лиспы.

Это как строительство домов. Нельзя построить большой и уютный дом не запачкав руки. Сам процесс сложен и даже опасен. Кроме того у кого-то получаются дома кривые и разваливающиеся, у кого-то начинает течь крыша во время дождя и т.д. но большинство вполне себе пригодны для жилья. Это как С и С++. А ML и лиспы - это:

http://naidimastera.ru/uploads/3bc5c52d68fc4d5d4cdfdf1803d9a7e4.jpg

Т.е. что-то на них делают, но пользуются этим немногие.

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

Дважды связный список всегда доставляет проблем, когда не предъявлено чётких требований по мутабельности. Звучит смешно, но это так.

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

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

Ну давай будем выпускать новый стандарт С каждые шесть недель.

Вангую жуткую кашу в головах программеров на этом по итогу.

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

«От сборки мусора даже Apple отказались»

Кто-то еще отказался? Похоже только Apple.

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

Вангую жуткую кашу в головах программеров на этом по итогу.

Есть программисты на С, которые даже не в курсе, что есть С11. И это не преувеличение.

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

не зря его во всякие Java и C# почти без изменений перенесли

Только чтобы кодеров не спугнуть.

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