LINUX.ORG.RU

В Rust убрали ~ синтаксис

 


1

7

Тут многие в комментариях ругались на тильда-синтаксис. Вот, его на днях (уже есть в ночных сборках) заменили на более гибкий box-синтаксис.

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

RFC с подробностями: https://github.com/rust-lang/rfcs/blob/8ec267f2feb24d5/active/0014-remove-til...

«issue: Remove ~, add Box»: https://github.com/mozilla/rust/issues/13885

Обсуждение в r/rust: http://www.reddit.com/r/rust/comments/24elup/rfc_remove_in_favor_of_box_and_box

Срач^WОбсуждение в Hacker News: https://news.ycombinator.com/item?id=7687351

Вдруг кому интересно, а не просто «ненужно! ненужно!».



Последнее исправление: ozkriff (всего исправлений: 2)

для тех, кто в танке надо было б прояснить, что, собссно, тильда эта делала и чем теперь занимается Box.

А по теме. Руст скатывается в г-но. В результате его будут пользовать только те, кто придумал и еще пара-другая энтузиастов.

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

... Руст скатывается в г-но. В результате его будут пользовать только те, кто придумал и еще пара-другая энтузиастов.

Гмм, вкусовщина и неаргументированно :)

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

Почему скатывается в говно? Наоборот, сейчас из него спешно выпиливают всякий бред.

KblCb ★★★★★
()

Если я правильно понял, то кроме мотивации по добавлению произвольных аллокаторов разработчики пишут о:

- «синтаксической соли» для работы с памятью в куче, что бы акцентировать внимание на работе с «дешевыми» ссылка и стеком

- и простоте освоения языка новичками, все-таки «box» понятнее «~» для непосвященного или новичка и гуглится проще.

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

А потом он написал «I actually regret that comment. ...» :)

Как по мне, так это все вкусовщина и дело привычки + см. выше про «синтаксическую соль».

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

Руст скатывается в г-но. В результате его будут пользовать только те, кто придумал и еще пара-другая энтузиастов.

Это было понятно с самого начала.

no-such-file ★★★★★
()
Ответ на: комментарий от theNamelessOne

Т. е. вместо типа ~Foo будет Box<Foo>, а вместо выражения ~foo — box(foo)?

Не «будет», а уже :) . Только вместо box(foo) просто box foo - тогда память будет выделена просто на куче.

И опционально можно указать аллокатор: Box<T, A=GC> и, соответственно, let x = box (GC) 5;.

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

До 2015 года заморозки языка не будет, насколько я знаю.

ozkriff
() автор топика

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

И эта форма угребищна чуть менее, чем полностью. И еще зарезервировали слово box. Не торт.

tailgunner ★★★★★
()

Пока нет вменяемого HKT-полиморфизма пользоваться им все равно невозможно, пусть делают что хотят.

anonymous
()

Всё правильно сделали, нечего перл разводить.

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

Вообще Rust несет куда-то не туда: http://www.reddit.com/r/rust/comments/2581s5/informal_survey_which_is_clearer...

Это не Ржавчину несет, а pcwalton`а. Вроде, большая часть команды разработки не поддерживает эту идею.

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

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

Сперва прочел как «в Rust убрали синтаксис».

Извини, я не смог придумать заголовок понятнее.

Как будто там он есть.

Есть, есть, честное слово.

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

К сожалению, есть

Ну, всем не угодишь. О вкусовщине говорить смысла нет, на то она и вкусовщина. А вот что касается более объективных претензий, то я нахожу синтаксис довольно логичным, целостным и не слишком раздутым. И за каждым решением есть вполне себе адекватная аргументация, насколько мне известно.

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

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

ну разумеется! Возьми любой АПИ удачный или нет и автор тебе объяснит что именно так должно быть, а все остальные просто мудаки и завидуют.

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

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

ну разумеется! Возьми любой АПИ удачный или нет и автор тебе объяснит что именно так должно быть, а все остальные просто мудаки и завидуют.

Согласен, хотя часто бывает «исторически сложилось(работало и пофиг), а потом случилась обратная совместимость». Но тут вопрос же в качестве аргументации.

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

Пока нет вменяемого HKT-полиморфизма пользоваться им все равно невозможно, пусть делают что хотят.

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

Недавно обсуждение этого дела опять мелькало в реддите:

http://www.reddit.com/r/rust/comments/2543x5/higherkinded_types

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

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

Кстати, откопал старое обсуждение, где:

pcwalton mozilla 10 points 1 year ago:

It's not on the roadmap, but it comes up from time to time. If somebody were to write a patch, I'd most likely be in favor of taking it.

Так что вполне может быть, если его мнение не сильно изменилось.

ozkriff
() автор топика

Чот я не пойму, как теперь обозначать, например, строковый тип?

Раньше было так:

struct Human {
  age: int,
  name: ~str,
  //.....
}

А как теперь? «box str» не проходит.

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

для тех, кто в танке надо было б прояснить, что, собссно, тильда эта делала и чем теперь занимается Box.

Руст скатывается в г-но.

Заседание экспертной комиссии завершено и вынесло свой вердикт

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