写点什么

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

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

关注

评论

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

Web3 游戏周报(3.17-3.23)

Footprint Analytics

Web3 游戏

不给灰暗留下死角:华为应用市场的安全之光

脑极体

应用

宁德时代与特斯拉合作;钟睒睒连续四次中国首富丨 RTE 开发者日报 Vol.171

声网

野心、梦想与科幻——浅谈外星殖民与软件工程

博文视点Broadview

深度|庖丁解InnoDB之Buffer Pool

阿里云瑶池数据库

数据库 云计算 阿里云 polarDB

青亦学爬虫:根据淘宝天猫商品链接封装淘宝天猫商品详情数据接口

tbapi

淘宝API接口 淘宝商品详情接口 天猫商品详情接口 淘宝数据爬虫 天猫数据爬虫

u-blox 面向多个大众应用市场推出最新 Wi-Fi 6 模块NORA-W4

科技之家

体育赛事直播源码的价值和意义?不同应用场景获利方法

软件开发-梦幻运营部

iOS开发优势解析,费用探究以及软件开发详解

网心科技入选“2023年广东省名优高新技术产品”名单

网心科技

云计算 边缘计算 网心科技

云手机:实现便携与安全的双赢

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 电商云手机

数字化与敏捷的关系(第2部分)

ShineScrum捷行

什么是正向代理和反向代理?

EquatorCoco

反向代理 正向代理

使用云手机提升WhatsApp使用体验

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 电商云手机

PHP调用API接口的方法及实现

Noah

SpringBoot如何优雅的进行参数校验

不在线第一只蜗牛

Java 后端 springboot

Databend 开源周报第 137 期

Databend

什么样的商品管理系统可以驱动品牌增长?

第七在线

一文带你完整了解Go语言IO基础库

百度Geek说

go语言

QCA9882, QCA9880, and MT7915 WiFi cards for OpenWrt:What are the difference?

wallyslilly

QCA9880

HashData的湖仓一体思考:非结构化数据支持(Directory Table等)讲解及演示

酷克数据HashData

postgresql AI 湖仓一体

保姆级教程:教你UniMRCP对接华为云ASR(Linux版)

华为云开发者联盟

开源 开发 华为云 华为云开发者联盟

How Big Data Works

Jackchang234987

基于 NVIDIA Megatron-Core 的 MoE LLM 实现和训练优化

阿里云大数据AI技术

人工智能 模型训练 大模型 LLM

云手机为什么能避免海外社媒账号被封?

Ogcloud

TikTok 云手机 海外云手机 tiktok云手机 云手机海外版

NFTScan 正式上线 Polygon zkEVM NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT\ NFTScan

AI时代来临我们要如何面对?

小魏写代码

深入探讨iOS开发:从创建第一个iOS程序到纯代码实现全面解析

雪奈椰子

软件测试学习笔记丨Allure2 失败重试功能应用场景

测试人

软件测试

那位拿了多个Offer的大佬分享了最新Go面经

王中阳Go

Go 后端 Go 面试题 面经 后端 大厂

华为云亮相KubeCon EU 2024,以持续开源创新开启智能时代

华为云开发者联盟

开源 开发 华为云 华为云开发者联盟

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