Привет
Не хочется скатываться в новости, но повод стоит того.
Пару месяцев назад гильдии из руби переименовались в Ractor, а вчера Коичи выложил заметки с обсуждения API для новой абстракции. В документе найдете много японского языка (перевода нет), но примеры уже говорят о том, что планируется сделать. Краткая выжимка такая:
- У Ractor планируется сделать incoming-port и outgoing-port, это единственный способ коммуникации с внешним миром;
- Послать сообщение в Ractor и прочитать из инстанса Ractor:
- Послать сообщение из инстанса Ractor и получить сообщение из “message box” Ractor инстанса:
-
- Ractor может быть именованным, а так же принимать другой ractor в качестве значения, что поможет в создании пайплайнов;
Так же, в конце найдете пару абстрактных примеров которые показывают как пользоваться новой абстракцией.
От себя добавлю, что это не публичный релиз и API может поменяться в будущем. Но можно представить что пытаются сделать ruby-core и проследить идеи, которые разработчики хотят реализовать. Много вопросов к неймингу, примеры выглядят тяжело читаемыми,
Не хочется скатываться в новости, но повод стоит того.
Пару месяцев назад гильдии из руби переименовались в 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 фреймворки.