Size: a a a

2021 July 31

WS

Wire Snark in rannts
И, насколько я понимаю, в Расте есть вариант через трайты сделать то же самое с динамическим диспатчем, а не только со структурой и указателями на функции (как в Си)
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Так это по сути vtable в ручном исполнении. Он и в плюсах используется и в расте (через Box<dyn Trait>)
источник

WS

Wire Snark in rannts
О чем и речь в общем-то
источник

WS

Wire Snark in rannts
Что дополнительного дает Box<dyn Trait> перед структурой с указателями на функции?
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну если ты про рантайм сборку "интерфейса", то как писали выше - дженерик структура через Option<impl Fn...>
С сырыми указателями тоже можно намутить, но это будет жуткий unsafe
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну и как бы сложность реализации таких выкрутасов в Rust намекает на то, что наверное это опасная штука с которой компилятор ничем не поможет и лучше так не делать в суе.
источник

WS

Wire Snark in rannts
А как будет выглядеть реализация c dyn Trait? пытаюсь понять вот...
источник

SZ

Sergey Z in rannts
Да вроде тот же декоратор, но я Го вообще не знаю
источник

SA

Sergey Arkhipov in rannts
Чуваки с Растом, а когда вы в списке фич перестанете писать, что оно написано на Расте? Когда вы переписываете очередной ls, и с гордостью сообщаете, что оно, собственно, на Расте, вы мне напоминаете зомби, у которых при слове Эрланг отключается мозг, белеют глаза, и гортанным голосом запевают про large scalable, low latency, high concurrency
источник

WS

Wire Snark in rannts
кажется, как раз так и будет — два типа надо будет, каждый из которых реализует этот трайт. А в функции fn make ...-> Box<dyn Trait>
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Box<dyn Trait> это по сути указатель на vtable в котором лежат указатели на методы трейта для какой-то структуры (не важно какой, лишь бы она имплементила трейт)
источник

WS

Wire Snark in rannts
Ну то же самое по сути, только заранее тип известен
источник

SZ

Sergey Z in rannts
Бгг
источник

WS

Wire Snark in rannts
А это к кому вопрос?)) Ну может быть к Кириллу.. я на Расте не пишу :P
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Это просто мягкая пропаганда. Надо же как-то продвигать молодой язык у которого нет за спиной компании масштаба гугла. При том что язык реально неплохой и интересный получился.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну и это как бы становится чем-то вроде бренда. Когда пишут Rust, то подразумевают "быстро и безопасно*"

* в контексте работы с памятью
источник

SA

Sergey Arkhipov in rannts
У Эрланга тоже бренд.

Когда надо много-много всех обслужить с минимальной задержкой и иметь возможность неограниченного масштабирования во всех направлениях - это Эрланг.

Секретное оружие серьезных игроков. Эрланг есть во всех Cisco-свитчах. Если бы не Эрланг, то у вас бы не было интернетов, где можно обсуждать телепузиков, Раст и 10 советов как привлечь парня. Когда все обсуждают асинхронное программирование, ребята с Эрлангом буднично обслуживают тысячи открытых сокетов даже не подозревая, что это проблема.

Если бы не Эрланг, то Кларна не стала самой дорогой и успешной финтех-компанией Европы.
источник

SZ

Sergey Z in rannts
В кларне элексир
источник

SA

Sergey Arkhipov in rannts
А потом чувак приходит в проект с Эрлангом и понимает, что ВСЕ НЕ ТАК ПРОСТО. Главное, он совершенно со всем согласен, но просто не хочет говорить "но"
источник

SZ

Sergey Z in rannts
Пусть это и одно и то же
источник