NoFlo:只需连接线条,让人人都能写程序

我偶尔会用可视化的游戏引擎GameSalad做点小游戏,简单的说,它为我提供了许多现成的功能代码模块和函数,我只需要为游戏中的各个对象设计正确的逻辑,就能很方便的制作简单的游戏。这让我想到,如果真的有一种编程环境,能够真正的做到“可视化编程”,清晰地展现程序之间的逻辑结构,那么不仅会有利于程序员编写和查看代码,同时也能让许多人轻松的学习编程。所以,当我看到NoFlo的时候,感到十分的兴奋。它是一个面向JavaScript语言的线性可视化编程环境。

我们知道,一长串段代码中不同的代码块之间包含着各种逻辑和调用关系,这些关系都可以用不同的线路图来表示,只不过在传统的编程工具中,编程环境都是至上而下的文本,这种关系表现的并不明显。但如果我们在纸上将这些代码块分散的排列,用代表不同关系的彩色线条将有调用关系的代码块连接起来,让人们能够顺着这些轨迹轻易地读懂程序。

7f02d72ece74a0c106a7dfa25f96e22a_large (1)

再进一步,我们把这些代码块都看做是一个个的“黑盒”,我们甚至不需要知道这些黑盒里具体的代码,只需知道这些黑盒各自的功能和有哪些接口,通过这些接口可以将黑盒们相互连接并传输信息。同时,无需改变黑盒的内部结构,通过不同的连接方式就能重组整个黑盒系统,实现不同的功能,即重写了一个全新的代码,那么不仅能大大提高代码编写的效率,同时还能让那些没有学过编程语言的人轻松的学会编程,因为他们只需理解各个代码块的功能和调用逻辑就行了。

以上的思想被程为“Flow-based programming”( 基于流程的编程),其实它早已被广泛运用在一些产品中,例如集成在xcode tool里的专为苹果系统开发的动画合成软件Quartz Composer,就利用这个原理帮助设计时制作复杂的动画效果。但可惜的是,Quartz Composer也只适用于动画的制作。

DotMatrix-Qamera-Quartz-Composer-794973

而NoFlo则是为软件开发而生的,它给我的第一印象就像是一个Protel那样的电路图绘制软件,包含了大量的程序组件,即黑盒,你可以在屏幕上选取这些组件并通过不同的线条为他们构建关系,就像在Protel中用线条连接元器件那样。不过根据NoFlo的团队介绍,他们的界面设计思路实际是来自伦敦地铁,其线条和节点都采用了相似的风格。

79fda6c36d59ae1ac1a2edb457ee6a61_large

同时,除了修改线条关系编写不同的程序外,你也可以查看每个组件中具体的代码信息,进行修改,或是自己编写组件存放在NoFlo中。NoFlo也建立了自己的社区,工程师们可以为其贡献自己的程序组件,供大家使用,目前最受欢迎的组建库有Stripe,、BaseCamp、Twitter和 GitHub。

b57db383a2a2509b2252bc477a846c92_large

如今,NoFlo已经公布 NoFlo 0.4的版本,他们也开始在Kickstarter上筹集资金来帮助他们实现这一目标,同时,他们的想法也不仅仅局限在JavaScript程序上,而是想进一步扩展到Android和iOS程序,以此来实现让每个人都不用考虑编程语言,就能动手编写程序的愿景。

订阅更多文章

你可能感兴趣的: