LINUX.ORG.RU

Rust 1.34

 ,


2

11
  • cargo теперь умеет в сторонние репозитории

  • оператор ? теперь может использоваться в доктестах

  • стабилизированы трейты TryFrom и TryInto

  • стабилизированы типы AtomicU8AtomicU64 и AtomicI8AtomicI64 в дополнение к имевшимся ранее Atomic{Bool,Ptr,USize,ISize}

  • стабилизированы типы NonZeroI8NonZeroI128 и NonZeroISize в дополнение к имевшимся ранее беззнаковым аналогам

https://blog.rust-lang.org/2019/04/11/Rust-1.34.0.html

★★★★★

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

И это не часть хороших практик плюсов, например.

В плюсах считается хорошей практикой изменять память на которую висят ссылки бесконтрольно?

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

Кстати, в C++20 можно написать assert axiom, и тогда даже оверхед от at() может быть оптимизирован. А в Rust так можно?

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

Если нужны просто прикладные либы/проги, то тут Rust без вариантов. Смысла использовать C++ не вижу.

Десктоп прикладные проги могут и не иметь граф. интерфейс.

Я буду рад видеть студента, который начнёт сам что-нибудь писать на rust в рамках дипломного проекта (гуй ему совершенно не нужен для этого). В выборе языка никаких ограничений в этом плане нет, лишь бы писал и оно работало, если соберётся.

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

Если нужны просто прикладные либы/проги, то тут Rust без вариантов.

Что для вас «просто прикладные либы/проги»? А то ведь есть подозрение, что именно для «прикладных» прог языки вроде Java/Kotlin/C# и даже 1C, гораздо более оправданный выбор, чем претендующий на системщину Rust.

Смысла использовать C++ не вижу.

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

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

Не всем же борщехлебами быть! %)

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

Я слабо себе представляю студента, который выберет C++.

Любители преодолевать трудности всегда найдутся.

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

Что для вас «просто прикладные либы/проги»?

Это к grem. Ну и спор был про C++ vs Rust.

претендующий на системщину Rust

Лично я выбрал Rust не из-за системщины, а из-за фич. cargo, ADT, pattern matching, traits и прочие ништяки. Других языков (из топ 50 хотя бы), дающих подобные возможности - я не знаю.

Qt и его экосистема, за пределами которой вы вряд ли что-то знаете и умеете, это лишь одна сторона C++.

Унижай и властвуй. Покажите же мне эту прекрасную строну C++. Какую-либо FOSS прикладную прогу, которую начали писать после выхода rust.

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

и прочие ништяки

Внатуре, братан. Rust — язык для норм пацанов.

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

Это к grem.

Фраза «Если нужны просто прикладные либы/проги, то тут Rust без вариантов» принадлежит вам. Соответственно, к вам и вопрос: что в вашем понимании «прикладное».

Других языков (из топ 50 хотя бы), дающих подобные возможности - я не знаю.

Haskell?

Какую-либо FOSS прикладную прогу, которую начали писать после выхода rust.

Прошу прощения, забыл, что разговариваю с человеком с особенностями мышления. Из того, что Qt и его экосистема «не самая лучшая и не самая современная» сторона C++ вовсе не означает, что я вам должен показывать какую-либо «FOSS прикладную прогу, которую начали писать после выхода rust».

Тем более, что вы не можете сформулировать само понятие «прикладная прога».

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

Фраза ... принадлежит вам.

Вырвали из контекста и довольны.

Haskell

В планах.

вовсе не означает, что я вам должен

Аналогично.

Тем более, что вы не можете сформулировать само понятие «прикладная прога».

Я и не пытался.

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

Я и не пытался.

Т.е. вы говорите о «прикладных либах/прогах», но даже не пытаетсь сформулировать для самого себя что это такое?

Ахринеть.

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

не пытаетсь сформулировать для самого себя что это такое?

Для вас. Ибо бессмысленно.

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

Ещё только среда, а ты уже до белочки напился.

Какую-либо FOSS прикладную прогу, которую начали писать после выхода rust.

nomacs, notepadqq, kube

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

Как нет?

https://github.com/KDE/rust-qt-binding-generator

https://github.com/rust-qt

https://github.com/White-Oak/qml-rust

https://github.com/flanfly/qmlrs

На последние 3 ссылки с https://wiki.qt.io/Language_Bindings

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

Зачем мне то? Ну раз их минимум 3 человека пишущих на раст пишет, то должны же они как-то работать? Или на rust все проекты на гитхабе нерабочие?

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

после выхода rust

Это 2015-й, если что.

nomacs

Первый релиз в 2011-м.

notepadqq

Первый релиз в 2013-м.

kube

KDE прога. У них выбора нет. Только C++/Qt.

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

должны же они как-то работать

Плохо. Почему - писал выше.

Или на rust все проекты на гитхабе нерабочие?

На github, 95% проектов нерабочие.

RazrFalcon ★★★★★
()

Кто не понял, тот поймёт

Потому что кутэшечка - прошлый век. ООП-гуи себя тупо изживают. Обозримое будущее и настоящее - за реактивностью, иммутабильностью, функциональщиной. Даже до жс-макак уже дошло, скоро и до плюсовиков дойдёт. А на Расте уже пилят в полный рост. Особенно Azul - это как электрон без жабоскрипта и электрона.

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

такие оптимизации выполняются на уровне LLVM, так что rust и C++ (clang) тут на одном уровне.

fn f(n: usize, a: &[u8]) -> u8 {
    assert!(n < a.len());
    a[n]
}
char f(const size_t n, const std::vector<char>& a) {
    assert(n < a.size());
    return a.at(n);
}
в обоих случаях компилятор уберет проверку на границы при наличии assert. Про контракты в C++20 читал только статью на cppreference. Как я понял они не гарантируют отсутствие UB, т.ч. вряд ли появятся в rust.

anonymous
()
Ответ на: Кто не понял, тот поймёт от Pacmu3ka

Проблема современных недотулкитов в отсутствии нормальной поддержки текста. Его кроме CoreText вообще мало кто умеет.

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

До 1.0, который вышел в 2015-м, - это был совсем другой язык. Начало отсчёта - 2015-й.

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

И никому уже почти 4 не нужен. Ок.

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

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)

Уже очень скоро смогу переписать своего единственного друга с Си на Rust. А то у него крыша течет во время особенно длинных партий в покер.

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

Так вы и C++-то не видели

Ну конечно, цэпэпэ же никто кроме вас и не видел никогда :) корона не жмёт?

P.S. На Царя тут плюетесь, а ведёте себя почти так же. Только тот буйный, а у вас «снисходительность к ламеркам». На пенсию вам пора, однако :)

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

Лучше риичи-маджонг напиши с ботами. Был какой-то на питоне, в целом играбелен, но там не было реализовано правило «фуритен».

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

В плюсах считается хорошей практикой изменять память на которую висят ссылки бесконтрольно?

Нет. А как это связано с количеством ссылок?

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

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

Остальное не знаю, но могу с уверенностью утверждать что ничего на этом не написать сложнее калькулятора. Писать на расте с QML это разве что для острых ощущений и преодолевания трудностей, если нужен гуй — берите нативный фреймворк своей ос и нативный для него язык. В расте нет GUI.

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

В плюсах считается хорошей практикой изменять память на которую висят ссылки?

Нет. Как это связано с количеством ссылок?

Серьезно надо пояснять?

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

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

У тебя run-time значения.

В смысле? Я создал массив (вроде бы с константным размером) и нигде его размер не меняю. В чем проблема отследить?

Размер массива и нельзя изменить, это не вектор.

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

чувак хрен с ним с растом
покажи реально крутую программу которую ты написал на нём
а то прочие ништяки (с) нахер никому не нужны
если вся сила раста это пиписько мерка

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

«Святая толстота» это сначала писать, что 95% проектов с github не работают, а потом про 24,783 Crates in stock.

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

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

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

Кстати, в раст лучше бы назвали такие ссылки не mut, а uniq, поскольку это ближе к тому, что происходит. Дело-то не в изменении.

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

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

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

Тогда, если и azul не очень, остаётся ждать подобное, но официальное решение от Mozilla на основе всё того же webrender (от них же). Что-то другое они всё равно не создадут.

grem ★★★★★
()

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

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

Про инфраструктуру разработки я молчу. Все так же автокомплит не работает на больших сторонних проектах типа sdl

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

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

На том же python с миллионами строк кода оно вполне себе работает и вроде не сильно жрет (если не использовать PyCharm конечно). А в том же Rust просто добавление sdl в зависимости вешает на несколько минут rls и все, ждешь сборки. Это не нормальное поведение я считаю.

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