Привет



Не хочется скатываться в новости, но повод стоит того.



Пару месяцев назад гильдии из руби переименовались в Ractor, а вчера Коичи выложил заметки с обсуждения API для новой абстракции. В документе найдете много японского языка (перевода нет), но примеры уже говорят о том, что планируется сделать. Краткая выжимка такая:



- У Ractor планируется сделать incoming-port и outgoing-port, это единственный способ коммуникации с внешним миром;



- Послать сообщение в Ractor и прочитать из инстанса Ractor: Ractor#send + Ractor.recv;



- Послать сообщение из инстанса Ractor и получить сообщение из “message box” Ractor инстанса: Ractor.yield + Ractor#take;



- http://amp.gs/KnZf позволяет ожидать ответа от нескольких Ractor инстансов;



- Ractor может быть именованным, а так же принимать другой ractor в качестве значения, что поможет в создании пайплайнов;



Так же, в конце найдете пару абстрактных примеров которые показывают как пользоваться новой абстракцией.



От себя добавлю, что это не публичный релиз и API может поменяться в будущем. Но можно представить что пытаются сделать ruby-core и проследить идеи, которые разработчики хотят реализовать. Много вопросов к неймингу, примеры выглядят тяжело читаемыми, yield и recv выглядят не к месту. Понятна идея outgoing port (это не эрланг, в руби вряд ли все будет ractor-ом), но реализация выглядит сложной. Так же интересно узнать, появится аналог OTP и(или) кто его сделает. А так же, что будет с rack, текущей экосистемой и как изменятся http фреймворки.