Size: a a a

2021 December 25

SS

Steel Sword in pro.vim
Владение и заимствование - это разные вещи. Владение вернуть можно (как раз через move), но речь то о заимствовании. А её вернуть или сохранить... тоже можно, но только если докажешь, что время жизни заимствования соответствует времени жизни того места, куда ты собираешься вернуть. Вот и выходит, что раз функция владеет значением, то значение умрёт в конце области видимости, и вернуть заимствование нельзя, потому что значение мертво.


Чё вы злые такие, у вас что, работу Rust отбирает... Чуть что - обвинение в фанатизме, подмене понятий, высокомерном взгяде.
Я тоже могу тебя обвинить в фанатизме и подмене понятий.

Автор сказал:
при выходе из функции заимствование теряется, его нельзя никуда сохранить или даже вернуть.
А ты сказал:
"Сохранить/вернуть владение" - вовсе не то же самое, что "вернуть указатель на локальную переменную"
Подменил владение на заимствование!
Конечно вернуть владение и вернуть заимствование это не одно и тоже, потому что первое - это возврат значения, а второе - возврат ссылки.

И кто здесь фанатичен?
источник

Pavel ×.× in pro.vim
Вовремя я зашёл почитать
источник

GK

Georgy Komarov in pro.vim
Мне вот понравилась недавняя статья со сравнением популярности раста с джавой 20 лет назад https://thenewwazoo.github.io/whining.html :)
источник

A

Alexander. in pro.vim
Я бы не стал тратить время на столько букаф темболее где васяны спорят друг с другом
источник

A

Andrew in pro.vim
Библиотека настолько неотделима, что можно получить бинарник без неё, чем и пользуются при работе с embedded с Rust? Ну и нет, даже если бы она была неотделима, если без явного использования программистом не получается ни одна сущность под счетчиком ссылок, то и какая разница, что там можно при желании получить.
Фанатиком или жирным троллем пока тут выглядит кроме автора статьи кое-кто другой, фанатики любят навешивать раздувать любой спор до священной принципиальной войны с адептами лжи.
источник

A

Andrew in pro.vim
Вообще, это, конечно дикий оффтоп, но, с другой стороны, вбросил ведь админ. 🤔
источник

Pavel ×.× in pro.vim
А что там у раста по тулингу? Есть какие-то штуки а-ля тулсета llvm?
источник

GK

Georgy Komarov in pro.vim
cranelift? Или ты о чём?
источник

SS

Steel Sword in pro.vim
В Rust есть core и std. В core объявлены базовые типы (bool, u8, f64 и т.д.) и интерфейсы (Copy, Clone, Iterator и т.д.) и core не отключается. В std лежит всё остальное, что завязано на ОС, файловой системе, сети, аллокации памяти... И std легко отключается.

Так вот Rc и Arc лежат в std, а не в core, соответственно заявление автора статьи неверно.
источник

Pavel ×.× in pro.vim
Меня интересует альтернативный компилятор, сервер а-ля clangd для работы с любой IDE и нормальный дебагер
источник

Pavel ×.× in pro.vim
Ну на уши натянуто. Там написано, что при большом желании это можно сделать, но это ж шляпа, все зависимости юзают std небось
источник

GK

Georgy Komarov in pro.vim
У них хороший LSP сервер, очень фичастый. Про компиляторы не знаю, видел реализацию фронтенда для gcc.
источник

A

Andrew in pro.vim
Тут ещё проблема в том, что человек сам не разбирался в Расте, и поэтому принимает риторику статьи как адекватную. И при этом спорит с людьми, которые ознакомились с предметом обсуждения чуть больше, чем по этой одной этой статье; но, в силу ограниченности кругозора, он не понимает, что на большую часть риторических вопросов в статье ответ "Ну, оно так и планировалось, и что? В чем проблема кроме шашечек?".
источник

A

Andrew in pro.vim
Ладно, справедливости ради, после Хаскеля учить Раст стоит, кажется, только ради возможности писать приложения для более контролируемого времени выполнения отдельных частей и расхода памяти. Иронично, что именно для этого и нужна концепция владения. Если это не нужно, то проще и приятнее взять Хаскель.
источник

SS

Steel Sword in pro.vim
Не "при большом желании", там одну команду написать нужно. Он сравнивал с D, типа там в ЯП встроен сборщик мусора, как в голанг, можно писать код без него, но он всегда есть.

В Rust сборщика мусора нет, есть обычный счётчик ссылок Rc<T>, просто структура, которая импортируется, и если std нет, то и счётчика нет. Т.е. это не синтаксис или механизм языка, это структурка, написанная с помощью самого языка. Как shared_ptr в С++.

И... Какие зависимости? Web, GUI, CLI? Они конечно по определению завязаны на ОС, и юзают std. Но ты и не сможешь ими воспользоваться без ОС, а отсутствие ОС - вроде бы единственная причина отказываться от std. Придётся качать библиотеки для embedded-разработки, там всё норм.

В принципе ситуация не отличается от С. Там тоже в стандартной библиотеке лежит malloc и free, поди куча зависимостей используют malloc и free, что же теперь делать 😱

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

VG

Vadim Goncharov in pro.vim
> Владение и заимствование - это разные вещи [...] А ты сказал:

Мне можно путаться в терминах, я не знаю Rust. Однако я прекрасно вижу на примере кода показанную проблему, и как она могла бы быть легко решена "верни caller'у при выходе из меня". Поэтому поинт по-прежнему валиден, более чем валиден.
источник

VG

Vadim Goncharov in pro.vim
> Everyone complains about them all the time, but there’s no solution to all of them. With Rust, you’re hearing about a technology that can solve all of them

вот именно за это вранье мы и не любим
источник

VG

Vadim Goncharov in pro.vim
> настолько неотделима, что можно получить бинарник без неё

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

SS

Steel Sword in pro.vim
s/D/C
источник

AM

AlexShell Makise in pro.vim
А Си то тут при чём?
источник