有没有人在使用主流语言的实际项目中使用过数据流编程?
Posted
技术标签:
【中文标题】有没有人在使用主流语言的实际项目中使用过数据流编程?【英文标题】:Has anyone used dataflow programming in a real project with a mainstream language? 【发布时间】:2011-06-01 17:56:22 【问题描述】:我正在考虑在 clojure 程序中使用一些 Dataflow 编程技术,但我很难从使用 Java、C# 或其他在现实世界中使用此类技术的主流语言的项目中找到大量信息。如果有人对此有任何经验可以分享,我将不胜感激。
【问题讨论】:
是的,Labview 是我非常喜欢外观的一款产品。它支持哪些语言? 【参考方案1】:我们来了!我们已经做了...(引用来自我的一篇较早的帖子):
我们设计并实现了一个 DF 我们自动化项目的服务器 (调度程序,组件接口,一个 一堆组件,DF语言,DF 编译器,用户界面)。它是用裸写的 C++,并在几个类 Unix 上运行 系统(Linux x86、MIPS、avr32 等, Mac OSX)。它缺少几个功能, 例如复杂的流量控制, 复杂的线程控制(只有 一个不太先进的组件), 所以它只是一个原型,即使它 作品。我们现在正在研究一个 功能齐全的服务器。我们学到了很多 在实施和使用过程中 原型。
另外,我们将制作一个可视化编辑器 天。
有些数据流系统甚至没有提到数据流方法:
SynthEdit:http://www.synthedit.com/ - 这是一个用于创建 VST 插件的音频相关框架和组件集 TinyOS:http://www.tinyos.net/ - 这是一个嵌入式操作系统/框架 数字合成器/采样器是数据流系统,使用 C 语言或 Assembly 中的某些部分进行编程,请查看 my answer to another post about some examples。 Quartz Composer,Mac 的图形魔法工具, Blender 具有用于图像合成的数据流子系统。编写数据流系统不是火箭科学。这是我以前的帖子about the basics of dataflow framework。
术语数据流很宽泛。有实时同步数据流系统,如合成器和采样器,也有异步数据流系统,如我们的家庭 aut。系统(除非用户按下按钮或计时器用完,否则系统处于空闲状态),甚至还有不同的架构,例如 电子表格 或 make。
想了解更多有关数据流编程的信息吗?阅读J. Paul Morrison's site and book。
【讨论】:
我使用 SGV/Raphaël github.com/ern0/dataflow-editor-concept 创建了一个数据流编辑器概念 - 也提供演示【参考方案2】:Pervasive DataRush 是一个适用于任何 JVM 语言(包括 Clojure)的并行数据流编程框架。
Pervasive DataRush 使用数据流架构。该架构实现了一个程序,该程序作为由数据流队列互连的计算节点图执行。节点使用队列来共享数据。由于数据是流式传输的,因此在任何给定时间,只有任何活动操作所需的数据需要在内存中,从而允许分析非常大的数据集。除了提供对大于可用内存的问题进行扩展的潜力之外,数据流图还利用了多种形式的并行性。
客户正在使用 DataRush 进行大数据分析和数据准备 (ETL)。
【讨论】:
【参考方案3】:我们制作了另一个:带有 mysql/php 后端和 AJAX 前端的协作电子表格。该软件处于测试阶段,文档正在构建中。
【讨论】:
还没有。我现在正在写文档,还有一些小问题。不幸的是,它需要一个“后台作业”,用 PHP 编写,必须每 1 秒启动一次,大多数托管服务不支持(包括我们的),所以在互联网上展示它是一个挑战,但我们 必须解决它。以上是关于有没有人在使用主流语言的实际项目中使用过数据流编程?的主要内容,如果未能解决你的问题,请参考以下文章