LINUX.ORG.RU

Rust 0.11

 , ,


1

6

Спустя несколько месяцев разработки тихо и незаметно вышла новая версия Rust — языка программирования, разрабатываемого Mozilla и нацеленного на безопасность, производительность и параллелизм.

В данном релизе усилия разработчиков были главном образом сосредоточены на доведение до ума системы типов и стандартной библиотеки. Так, одной из основных задач являлось введение инфраструктуры для типов переменного размера. Также, как и обещано, был полностью удалён ~ и @ синтаксис в пользу использования стандартных типов Box и Gc.

Основные изменения:

  • Синтаксис ~[T] был удален из языка, вместо него используется Vec<T>;
  • Синтаксис ~str был удален из языка, вместо него используется String;
  • Синтаксис ~T был удален из языка, вместо него используется Box<T>;
  • Синтаксис @T был удален из языка, вместо него используется std::gc::Gc<T>;
  • Байтовые символы, строки и сырые строки теперь предваряются префиксом b;
  • Изменился синтаксис для указания времени жизни замыканий: <'a>|A, B|: 'b + K -> T;
  • Модульная арифметика для вещественных типов была убрана из языка;
  • Синтаксис use foo, bar, baz; был удален из языка;
  • Ключевое слово priv было удалено из языка;
  • Поля структур стали по умолчанию приватными;
  • Приватные перечислимые типы теперь запрещены;
  • Замыкание более не может быть вызвано через &-указатель;
  • Индекс вектора и размер битового сдвига теперь может быть представлен только в виде uint;
  • Стандартная библиотека теперь являет собой один унифицированный интерфейс к набору нижлежащих библиотек;
  • Добавлена новая библиотека libcore, призванная облегчить разработку встраиваемого программного обеспечения;
  • Был добавлен модуль regex, также включающий в себя набор статически скомпилированных регулярных выражений;
  • Набор I/O примитивов получил возможность прерывать операции по таймауту;
  • Добавлен макрос bitflags! для упрощения работы с битовыми флагами.

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

★★★★★

Проверено: fallout4all ()
Последнее исправление: CYB3R (всего исправлений: 2)
Ответ на: комментарий от tailgunner

Умные пацаны говорили, что хаскель это по сути лямбда исчисление во плоти с Хинди-Милнером впридачу. И всё! Просто как апельсин.

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

Умные пацаны говорили, что хаскель это [...]

Не вздумай играть в карты с этими пацанами.

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

Не мог бы ты скинуть ссылки на инфу по созданию GUI на Расте? //желательно для совсем нубов Поиск сам не осилил(

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

Смотря о каком GUI ты говоришь.

В https://github.com/rust-lang/rust/wiki/Community-libraries#gui есть, допустим, ссылка на привязки к gtk. Насчет qt5 видел как-то вот эту статейку - http://endl.ch/content/cxx2rust-pains-wrapping-c-rust-example-qt5 . Хз насколько оно все живое и удобное, не пробовал сам.

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

Лично мне для своей игры пока нужны простые кнопки да текстовые поля в OpenGL, так что я это дело на коленке написал просто. Для отображения текста использовал stb_truetype, для которой написал простенькую обертку: https://github.com/ozkriff/stb-tt-rs .

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

по сравнению со смолтоком, в котором всего 5 кейвордов, по-моему, хаскель слегка монструозно выглядит в таком предложении, только и всего )

Virtuos86 ★★★★★
()
Ответ на: комментарий от A-234

Хочешь сказать что в C++ передача this прозрачна? Давно std::bind юзал?

Kuzy ★★★
()

А для него не надо скачивать отдельную утилиты удаления rust removal или прямые руки, прокуренный ман и менеджер пакетов справлятся!?

Woofywoof
()
Ответ на: Вся суть хруста от CARS

http://www.reddit.com/r/programming/comments/29o446/rust_0110_released/cinhddx

Один из ответов на подобное высказывание:

I can't bring myself to care about a language that changes that much that quickly out in the open. I get that it's still early in development, but honestly, why even bother sharing it with the world at this point?

Because it's an open source project. A real open source project, with open design and open contributions. This is exactly how it is supposed to work. You're supposed to care because you want to help develop a cutting-edge language to solve real world problems. If that is not your cup of tea, that's fine, just wait for 1.0, but open development is a good thing. We've tend to expect projects to be released fully formed, but that's just because we're used to open source as corporate PR. This is how a community run project works.

Так настоящий open source и должен делаться. А то всяким пропиерастам только всякие свифты готовые подавай.

ozkriff
()
Ответ на: комментарий от A-234

Нет, это не вкусовщина и сравнения некорректные. Сравнивать надо с комментариями в фортране, например, или с синтаксисом make. Оба являют собой примеры устаревшего, неудобного синтаксиса.

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

У программистов-не-студентов сегфолтов в С++ не происходит и память не течет?

lol. Дело не в течет-не течет, а в том сколько времени тратится на их поиск и устранение. Разница в проектировании и подходах к анализу кода, опыт позволяет не впадать в уныние при сегфолтах а оперативно их устранять, даже в чужом коде.

Эм, ну логично, конечно, что у опытного программиста поиск и исправление ошибок займет меньше времени. Только причем это тут? Я говорил о том, что Ржавчина предлагает способ очень значительно сократить количество ошибок работы с памятью, независимо от опыта разработчика, и что никакой дикой сложности и переусложений в работе с памятью, особенно сравнивая с современным С++, я не вижу.

Вынос сущностей языка, которым не нужна прямая поддержка компилятора,...

Вот не надо. Изначально прямая поддержка была нужна, это потом все начали выносить в библиотеки. Это и есть движение в сторону плюсов. Осталось не много ;)

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

В общем, если под «движением в сторону плюсов» понимать только вынос всего возможного из языка в библиотеки - то ок, согласен. Хотя тогда я не вижу смысла упоминать именно С++.

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

Да при чем тут эргономика? Мы ведь не велосипедное седло обсуждаем. Я говорю о том что почему-то программист на объектно-ориентированном языке должен программировать как на C с объектами. Как передавать this должен заботиться компилятор а не программист. Программисту нужно находиться в рамках ООП парадигмы и оперировать абстракциями типа const, static и т.п., дело компилятора разруливать эти абстракции.

A-234 ★★★★★
()
Ответ на: комментарий от Xroft

Кому как. Лично я для себя ничего сверх сложного в Расте не наблюдал.

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