上海行:陈正翔与 Mind+,最简易图形化编程工具
在遗失的录像里,乔布斯提到,每个人都应该学习编程,促进自己思考。但事实上,程序员的世界仍然是大部分人难以企及的。比如说,我最近在学习 Processing_这是一个开源编程语言,通过它,许多人编写出美轮美奂的作品,但轮到自己,一些看上去很简单的事情,却感觉非常复杂。我真正体会到了隔行如隔山的含义。
当下,开源硬件创业如火如荼,看上去 Arduino 已经十分简单,能够将每个人变成能工巧匠。有人跟我说,Arduino 实际上是非常简单的东西,只相当机械工程专业大一大二的水平。即便如此,我们提到编程,提到将不同的电路板连接起来,仍然觉得相当困难。编程,对于普通人来说,仍然难以企及。
正因为普通人学习编程容易遇到各种各样的障碍,所以陈正翔和他的同事们从去年开始开发出一款简单的 Arduino 编程工具,降低 Arduino 的上手难度。这款工具叫 Mind+,是一款图形化编程工具,里面已经将各种各样 Arduino 相兼容的硬件模拟成一个个模块,能够在避免敲代码的情况下进行编程。它最重要的特性是,所见即所得。
在 DFRobot 的办公室,陈正翔为我演示了 Mind+ 的使用。比如说用 Arduino 的板子连上一个开关来控制一盏灯,那么只要打开 Mind+ 找到相应的模块,然后把它拖出来,然后在界面中的 Start 那边连一根线出来,再连接到模块的引脚上,弄清楚模块与模块之间的关系后,就可以结束编程。然后,陈正翔选择相对应 Arduino 主板的型号,将编好的程序拷进主板——拷录的过程很迅速,不到一分钟即可完毕。最终,我们得到了按下开关,即可打开/关闭电灯的灯具。
以上,仅仅是 Mind+ 简单的实现,但不意味着 Mind+ 使用简单,就不能实现高级的功能。陈正翔后来又演示了一遍,这一次,他增加了一个 Delay 模块,让这盏灯能够长按之后才亮,或者一闪一闪的。因为 Mind+ 将大部分 Arduino 兼容的硬件都放进库里。除了灯以外 ,他还当场制作了一个简单的遥控小车,无线控制电灯的开关,以及可以变换图样的 LED 灯,整个过程在一个小时左右。
之前,陈正翔在北京、上海等创客空间都举办了工作坊,一方面是在圈子里扩大影响力,一方面是直接面对用户,获得用户最真实的反应。他告诉我,基本上,即便是从零开始用 Mind+学习 Arduino 设计,像他这样设计出电灯开关、无线电灯开关、遥控小车、LED 灯,也不过是一个上午或一个下午的事情。
我注意到,Mind+ 的设计是比较清晰的,至少在通过这个工具来设计的时候,不容易感觉到混乱。比如说,不同接线的引脚,到用不同方向的三角形来表示 “输入” 或 “输出”。Mind+ 中,各个模块都是通过 “引线” 来连接的,为了表示信号传递的方向,他在引线上加入了 “行为流” 的设计,在引线上加入发光的小点,令它们朝着一个方向运动,简单直观。
仅仅是小小的细节,陈正翔也经过了反复的测试和思考。比如说,为什么 Mind+ 会用三角形来表示 “输入” 或 “输出” 的接口呢?因为不管是圆形、菱形、正方形、椭圆形,还是各种各样的形状,他和同事们都做过测试,最终发现三角形的效果是最好的。他们也曾经遇见过比较奇怪的需求,有人曾经提出让接口的形状变成动物的脚,这样一个模块可以变成一种生物的形状。
说起图形化编程,MIT 为了激发更多幼儿、普通人对程序员世界的兴趣,2006 年就研发出 Scratch 图形化编程语言。它的表现方式是将编程语言里不同的模块,模拟成一块块积木,编程的过程就是将积木拼接在一起。这种图形化编程的方式及大地影响了图形化编程工具的后来者——现在,Arduino 并不缺乏图形化编程工具,在图形化程度上,甚至比 Scratch 更深,但陈正翔仍然觉得不满意。
像 Scratch 这样的图形化编程,最初的想法是把代码变成图片,所以用 Scratch 编程,仍然是以程序员的思维、逻辑来进行的。而 Mind+ 则完全抛弃了代码。你为什么需要代码?你不是希望给机器编程,你只是希望机器按照自己希望的方式工作。所以,Mind+ 与许多传统的图形化编程工具不一样。
事实上,我也注意到了 Arduino 确实已经有不少图形化编程的工具,它们之间甚至可以说是相似的。陈正翔的电脑桌面上有一个文件夹,里面放满不同图形化编程工具的截图,进行了一轮横向对比之后,可以发现它们的思想基本上是 Scratch 的复刻,而图形化的方式,仅仅是拼图的形状不太一样,或者是横向,或者是纵向,总之 “一看就知道是同样的东西。” 然后陈正翔到网络上找了最近网友恶搞韩国选美的 GIF 给我看,上面的美女几乎是同一个模子印出来,这正是陈正翔对当下 Arduino 图形化编程工具最不满意的地方。
这是陈正翔在开发 Mind+ 期间,所收集到的各式各样的图形化编程工具,看上去千篇一律
开源能够促进软件行业的发展,但也是把双刃剑. 陈正翔认为,某种程度上,开源也抑制了创造力。陈正翔所收集的图形化编程工具里,都是开源的,基于同一个框架修修补补,“没有人愿意跨出那一步,去完全打破这种方式。”
我们是所有图形化编程工具里最晚开发的,但是这也给我们很好的对比的机会,我们找了所有的图形化编程软件,不管是任何领域,还是不同国家的,我们都做好了分类,然后进行对比。基本上有两派,一派是 Scratch 这种流派,完全基于编程思维的,一派是像我们这种基于关系的。后者有小的分支,有的是基于关系流的,有的是基于时间顺序的。
尽管我在他电脑的桌面上发现了 “商业计划” 这个文件夹,但关于 Mind+ 的未来,陈正翔认为,它仍然应该是服务于大众的免费图形化编程工具。只不过,Mind+ 软件或许会跟一些开源硬件打包在一起出售。现在 DFRobot 上,就有类似的产品。
陈正翔说,未来 Mind+ 将开放 SDK,或者说各个模块的设计工具,甚至还会有一个云端,方便每个人添加 Arduino 兼容的硬件模块,并上传到网络上共享,并开发移动版。说实话,模块库可能才是 Mind+ 最有价值的部分。
在 DFRobot 办公室的白板上,画着 Mind+ 的设计草图
我们详细地介绍了 Mind+,却还没介绍陈正翔本人。他 1989 年出生,是青岛人,17 岁开始工作——是的,17 岁开始工作。我问他,为什么初中之后就开始辍学?他说:
因为中国式的学校是一个大树一样,我们从小学就开始面临选择,可能是就近上的小学。总之,小学初中不是自己选的,是政府选的。但这其实还好,你有钱可以去私立学校,接受更好的教育。但是初中升高中,就是第一个坑,一个是升高中,另外一个是职业高中,这就是很大的分水岭。如果你上职业高中,那么是另外一条路线,是以职业技能培训为目的的。
看中国的教育路线,很容易知道自己 30 年之后的成就,甚至很容易看到自己孩子的道路。所以必须改变这个秩序。
所以,你看,只要你进入一个坑,那么你一辈子都在里面,想爬出来不容易。所以我选择了退学,离开了这个坑,自己爬出来。
想逃脱被预定好的人生,想逃脱令自己不爽的环境,这就是陈正翔离开校园的理由。现在来看他, 不但没有成为不受社会所欢迎的人,反而成为中国创客中的一员。
陈正翔平时比较喜欢自己骑摩托车旅游,或者踩着滑板去旅游,他比较喜欢自由自在的感觉。一个人独特的原因,绝对不是因为外界,而是因为他自己。