AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

NoFlo 的目标:借助 Kickstarter 基金实现基于流的 JavaScript 可视化编程

  • 2013-08-22
  • 本文字数:912 字

    阅读完需:约 3 分钟

NoFlo 是一个两岁的项目,它旨在为 JavaScript 在浏览器端和服务器端( node.js )提供带来基于流的编程。到目前为止,流的定义必须使用文本 FPB 语言或者 JSON。为了能够创建一个基于 Web 的可视化设计器用于流的可视化开发,NoFlo 的创建者 Henri Bergius 正通过 Kickstarter 募集 10 万美元的资金。

基于流的编程是一种编程范式,由 J. Paul Morrison 在 20 世纪 70 年代初创建 。维基百科这样定义它

基于流的编程(FBP)是一种编程范式,它将应用程序定义为“黑盒”进程的网络,进程之间通过预定义的连接,以消息传递的方式交换数据,而连接是从外部指定到进程。这些黑盒进程可以通过无限重连形成不同的应用程序,而不需要从内部更改进程。因此,FBP 天生是面向组件的。

FBP 是数据流编程的一种特殊形式,它基于有限缓冲区、定义了生命周期的信息数据包、命名端口和单独定义的连接。

NoFlo 为 JavaScript 带来了“方框和箭头(box-and-arrow)”的编程风格。程序编写可以通过组合已有的组件来实现。当前有 250 个可重用的组件,其中包括使用 Git、Markdown、XML、HTML、CouchDB 和 Redis 的组件。下面是一个示例程序,其中使用了 NoFlo 支持的 FBP 领域专属语言进行编码:

复制代码
# 首先,需要在图中定义节点及节点间的连接
Read(filesystem/ReadFile) OUT -> IN Display(core/Output)
# 在图的开始,把一个文件名传递给文件读取器
'myfile.txt' -> IN Read()

这一小段程序会读取文件 myfile.txt 的内容,并打印到标准输出设备。

因为基于流的程序是图,所以非常需要一种可视化表示法。然而到目前为止,NoFlo 程序必须使用 FBP 语言或 JSON 编写。为了改变这种情况,NoFlo 团队如今在 Kickstarter 上创建了 NoFlo 开发环境项目。该项目的目标是为 NoFlo 程序开发一种基于 Web 的设计器。

截至今天,该 Kickstarter 项目已经筹集了 10 万美元目标中的 7.8 万美元。

查看英文原文:**** NoFlo Aims to Enable Visual Flow-Based JavaScript Programming with Kickstarter Funding


感谢侯伯薇对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-08-22 21:537563
用户头像

发布了 256 篇内容, 共 91.3 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

毕业项目-618秒杀系统

不爱学习的程序猿

字节资深架构师用7大部分13章节,彻底讲透SpringBoot生态体系

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

浅谈 Spring 如何解决 Bean 的循环依赖问题

做梦都在改BUG

Java spring 循环依赖

阿里大佬力荐K8s项目实战笔记!图文并茂带你深度解析Kubernetes

做梦都在改BUG

Java Kubernetes k8s

熬夜肝完! 阿里P8的Java进阶知识典藏版,我从18K飙到30K

程序知音

Java 编程语言 java面试 java架构 Java面试题

真的香!腾讯SpringBoot高阶笔记,限时开源48小时

程序知音

Java 微服务 编程语言 springboot java架构

Django笔记一之运行系统、创建视图并访问

Hunter熊

django

火了!北大学霸爆肝3个月的算法小抄完整笔记,GitHub疯狂转发

做梦都在改BUG

Java 数据结构 算法

一个神奇的需求:doc批量转docx,1行Python代码实现

程序员晚枫

Python word 自动化办公

Service进阶

芯动大师

service intentservice 轮询

一路披荆斩棘腾讯6面面经(已拿offer)大厂远没想象中的难

小小怪下士

Java 程序员 面试 后端

深度学习基础入门篇[一]:神经元简介、单层多层感知机、距离计算方法式、相似度函数

汀丶人工智能

人工智能 机器学习 深度学习 多层感知机

业务防资损,质量保障的第一要务!

老张

业务价值 交付质量 防资损

OneCode :如何构建部署低代码引擎工程

codebee

从0为你讲解,什么是服务降级?如何实现服务降级?

做梦都在改BUG

细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现

bin的技术小屋

内存管理 Linux Kenel 内核 内存池

涨薪跳板! 2023阿里突击版Java面试宝典

程序知音

Java 编程语言 java面试 java架构 后端技术

设计模式之美--经常被用错的KISS、YAGNI原则

GalaxyCreater

设计模式

不敲一行代码,用ChatGPT开发App

FN0

移动开发 ChatGPT

性能测试入门实践路线图

老张

性能测试 稳定性保障

前端面试实录HTML篇

沉浸式趣谈

html 面试 前端 HTML5, CSS3

卓越工程之开发过程管理

agnostic

卓越工程

5.5G,运营商能接受吗?

脑极体

5.5G

GitHub标星35k+微服务深度原理实践进阶PDF,竟让阿里换下了Dubbo

做梦都在改BUG

Java 架构 面试 微服务

为 NGINX 配置免费的 Let’s Encrypt SSL/TLS 证书

NGINX开源社区

创业公司如何不沦为OpenAI“死侍军团”:训练小众数据,服务特定用户

B Impact

Python数据分析库介绍及引入惯例

timerring

Python pandas

【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)

码界西柚

4月月更 时间轮(TimeWheel) 算法指南 技术调整

NoFlo的目标:借助Kickstarter基金实现基于流的JavaScript可视化编程_JavaScript_Zef Hemel_InfoQ精选文章