1

如果 H2O Wave 对 Python 的作用与 Shiny 对 R 的作用一样,那么 Wave 是否支持响应式编程是一个合乎逻辑的问题?查看文档我发现数据绑定(它看起来是单向的)和实时同步(非常酷),但没有明确的参考或指示反应式编程或双向绑定(不幸的是文档似乎还缺乏搜索功能)。

4

1 回答 1

3

作者在这里。我们正在考虑它(https://github.com/h2oai/wave/issues/170)。

反应式编程(以及一般的 FRP)通过更好地支持闭包/匿名函数(如 R)改善了语言的人机工程学。Pythonlambda仅限于一个表达式,因此对事件(甚至map用于双向绑定转换的函数)的“反应”会导致调用站点显得嘈杂和/或冗长,因为定义命名函数是不可避免的。

因此,我们决定暂时不对事件处理和状态管理进行规范,而是专注于提供我们可以在未来建立的良好基础。在任何情况下,Python 驱动程序都非常薄,在用户空间中构建自己的用于状态管理(甚至路由)的响应式原语应该不会太难。

其次,如果没有粘性会话(例如,两台不同机器上的两个 Python 进程可能需要一致的 UI 状态视图),让反应式编程范式在分布式多工人场景中正确运行是很棘手的。我们需要在后端做一些额外的工作,并首先发送多工人。

总结:不排除,我们最终会到达那里。

于 2020-12-23T19:19:27.880 回答