LINUX.ORG.RU

На Rust запилили Coroutine, Go можно выкидывать?

 ,


3

5

Мониторю гитхаб тренды по расту, вот такое поделие обнаружилось https://github.com/zonyitoo/coio-rs С растом слабо знаком, особо не разбирался, но как я понимаю «Work-stealing coroutine scheduling» тоже самое как и в goroutine?

★★★★★

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

Автор darks? А чем ещё он известен?

Просто интересно.

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

Ололо! Хацкель теперь говно, всем срочно пейсать на русте!

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

Чтобы убить GoЯ же дал ссылку... цитата оттуда:

Cases where one needs to maintain a complicated, dynamic graph are where a GC becomes useful. Similarly, if one is writing an interpreter for a GCd language, having a GC in Rust would simplify things a lot.

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

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

Когда даже прогеры знают тебя, физика, за маргинальную DVCS - это неплохо.

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

когда ты физик

Когда ты физик, тебе нужно чтобы твой язык был:

* Низкоуровневым

* Без GC

* Без ООП

* Без какой-либо внятной реализации конкурентности/параллелизма

* Многословный, корявый и неуклюжий

Все это удобно для реализации машины времени Энштейна-макаревича

Именно поэтому физики выбирают Rust.

forwardonly2015
()

это тот самый язык, на котором самое серьезное и работающее, что написано на сегодняшний день — это реализация утилиты ls?

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

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

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

Как хорошо, что на ЛОР-е не перевелись еще паяцы вроде тебя. Кстати, потешностью своей ты в маму уродился или в папу? Или они у тебя оба придурковатые?

Manhunt ★★★★★
()

спасибо, посмеялся

p.s. тепло отношусь к rust, но корутины и гц это явно не про него

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

И что такого смешного?

Когда кидают линк на либу с 28 звездочками, с ужасным интерфейсом и подходом, сравнивая ее с изящностью реализации горутин и каналов в Go

ну а про гц я вообще не понял, Rust изначально создавался что бы выкинуть все гц, зачем люди это туда тащут? начитались статей про Go 1.5?

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

Rust изначально создавался что бы выкинуть все гц

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

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

Когда кидают линк на либу с 28 звездочками, с ужасным интерфейсом и подходом

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

сравнивая ее с изящностью реализации горутин и каналов в Go

Женись на ней, блин.

Rust изначально создавался что бы выкинуть все гц

facepalm.jpg

Релевантная ссылка выше по треду.

tailgunner ★★★★★
()

на си с крестами и без их написали уже раз дцать. даже в оффтопик-апи есть (в отличие от онтопика, кстати). так что ржавчину можно и не откапывать.

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

изначально в расте гц был на уровне языка

ога, только непонятно зачем он та был нужен, ведь в этом кастрате невозможно иметь сразу 2 ссылки на один объект. Они наверно не проспались в тот момент еще.

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

одна нить на всё

В смысле?

Упс, моя ошибка - это в mioco только одна нить.

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

Давай рассудим логически:) Если GC у нас нет, и в то же время мы можем наполодить сколько угодно ссылок на один объект, то как мы можем гарантировать безопасность памяти? Чудес то не бывает на свете. Нахрен тогда GC вообще нужен, если все так просто и волшебно.

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

Rc<T> enforces memory safety by only giving out shared references to the object it wraps, and these don't allow direct mutation. We need to wrap the part of the object we wish to mutate in a RefCell, which provides interior mutability: a method to achieve mutability through a shared reference.

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

в смысле, покажи мне, что а осталась

let object = Object(10);
let a = &object;
let b = &object;
println!("{:?}", a);

Сойдёт?

Ну и никто не запрещает сделать через Rc, cell или указатели (*mut Object).

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

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

У тебя слишком однобокий опыт. В С++ тоже «зоопарк» разных указателей и это нормально, просто ты на всё смотришь через призму JS.

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

Для руста сойдет, конечно. Для высокоуровневого языка, навряд ли.

Это говорит твоя ограниченность.

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

ведь в этом кастрате невозможно иметь сразу 2 ссылки на один объект.

Анонiмный профессионал блещет разумом

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

изначально создавался что бы выкинуть все гц, зачем люди это туда тащут? начитались статей про Go 1.5?

Во время запила servo, понадобился GC для сборки мусора за javascript'ом. Вот они и хотят впилить для этого GC на уровне раста, но в виде библиотеки.

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

Когда кидают линк на либу с 28 звездочками, с ужасным интерфейсом и подходом, сравнивая ее с изящностью реализации горутин и каналов в Go

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

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

это тот самый язык, на котором самое серьезное и работающее, что написано на сегодняшний день — это реализация утилиты ls?

Глупо так говорить про ЯП, в который вкладываются Mozila и Samsung. Даже если они не запилят классический ООП, то это поделие все равно полетит.

Вон гугл в непонятное поделие как Go вложился и оно нашло своих многочисленных фанов.

foror ★★★★★
() автор топика

Почему там в примере `unwrap` на каждый чих? Выглядит как кастыль. Что ничего получше не смогли придумать?

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

Почему там в примере `unwrap` на каждый чих?

Так там IO на каждый чих, а потому написав unwrap, говоришь, что тебе пофиг на ошибки IO.

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

Вон гугл в непонятное поделие как Go вложился и оно нашло своих многочисленных фанов.

В Go «вложились Роб Пайк и Кен Томпсон.

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

В Go «вложились Роб Пайк и Кен Томпсон.

Ага в розовых мечтах анонимуса. Без бабла и популярности гугла, пылился бы на равных с d. С таким же отвратным GC и перформансом.

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

Ага в розовых мечтах анонимуса.

Нет, и эта информация общедоступна.

С таким же отвратным GC и перформансом.

Вообще Go уже практически на уровне Java.

benchmarksgame.alioth.debian.org/u64q/go.html

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

Вообще Go уже практически на уровне Java.

А без поддержки google не был бы. Но на уровне java - это для античного языка не так уж и круто.

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