写点什么

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:537529
用户头像

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

关注

评论

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

一个草根的日常杂碎(9月22日)

刘新吾

生活 随笔 记录

甲方日常 20

句子

工作 随笔杂谈 日常 Java 25 周年

架构师训练营 1 期第 2 周:框架设计 - 作业

piercebn

极客大学架构师训练营

看动画学算法之:排序-count排序

程序那些事

动画 看动画学算法 看动画学数据结构 count排序

超越色彩的魅力:读《黑白适界》

北风

艺术 摄影 黑白 摄影征文 画册

添加字幕哪个视频剪辑软件比较简单?

奈奈的杂社

视频创作 视频剪辑 视频后期 自媒体 后期字幕

众盟科技2020智能化白皮书:穿越新商业周期,读懂商业智能化的真义

脑极体

船长梁晓玲的猎鹰号真的能赚钱嘛?不分析不知道……

成周

心理学 船长梁晓玲 诈骗

时空碰撞优化系列·二

誓约·追光者

hive Sparksql 计算效率 优化

网站日志分析最完整实践

MySQL从删库到跑路

救人于无形的“环境智能”,到底是一种什么智能?

脑极体

c++杂谈-1

菜鸟小sailor 🐕

c++

架构师训练营 - 第 2 周课后作业(1 期)

阿甘

Redis 发布订阅,小功能大用处,真没那么废材!

楼下小黑哥

Java redis spring

微前端qiankun从搭建到部署的实践

fengxianqi

大前端 微应用

一夜爆火,只因阿里内部作为参考的SpringBoot巅峰之作git开源

小Q

Java 架构 面试 微服务 springboot

第2周

Geek_fabd84

判断一个请求是否是Ajax异步请求

麦洛

ajax

LeetCode题解:145. 二叉树的后序遍历,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营 - 第 2 周学习总结(1 期)

阿甘

高并发下为什么更喜欢进程内缓存

架构师修行之路

缓存 架构设计

分布式高并发下Actor模型如此优秀

架构师修行之路

系统设计 reactor 高并发

架构师训练营第 1 期 -week2

习习

Spring系列之新注解配置+Spring集成junit+注解注入

Java spring 微服务 架构师

第7周的总结

Vincent

极客时间 极客大学

响应式编程到底是什么?

博文视点Broadview

Java 响应式 响应式编程 reactor 并发

第6周作业

方堃

“大数据+区块链”的智慧城市建设!

CECBC

区块链 大数据

架构师训练营第 1 期 第 1 周作业

李循律

第7周作业

Vincent

极客时间 极客大学

oeasy 教您玩转 linux 010400 总结 summary

o

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