2013-5-23, 16:15 | 陈一斌 程序员
在遗失的录像里,乔布斯提到,每一个人都应该学习编程,促进本身思考。但事实上,程序员的世界仍然是大部分人难以企及的。好比说,我最近在学习 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+ 会用三角形来表示“输入”或“输出”的接口呢?由于不论是圆形、菱形、正方形、椭圆形,仍是各类各样的形状,他和同事们都作过测试,最终发现三角形的效果是最好的。他们也曾经碰见过比较奇怪的需求,有人曾经提出让接口的形状变成动物的脚,这样一个模块能够变成一种生物的形状。 ui
提及图形化编程,MIT 为了激发更多幼儿、普通人对程序员世界的兴趣,2006 年就研发出 Scratch图形化编程语言。它的表现方式是将编程语言里不一样的模块,模拟成一块块积木,编程的过程就是将积木拼接在一块儿。这种图形化编程的方式及大地影响了图形化编程工具的后来者——如今,Arduino 并不缺少图形化编程工具,在图形化程度上,甚至比 Scratch 更深,但陈正翔仍然以为不满意。 spa
像 Scratch 这样的图形化编程,最初的想法是把代码变成图片,因此用 Scratch 编程,仍然是以程序员的思惟、逻辑来进行的。而 Mind+ 则彻底抛弃了代码。你为何须要代码?你不是但愿给机器编程,你只是但愿机器按照本身但愿的方式工做。因此,Mind+ 与许多传统的图形化编程工具不同。
事实上,我也注意到了 Arduino 确实已经有很多图形化编程的工具,它们之间甚至能够说是类似的。陈正翔的电脑桌面上有一个文件夹,里面放满不一样图形化编程工具的截图,进行了一轮横向对比以后,能够发现它们的思想基本上是 Scratch 的复刻,而图形化的方式,仅仅是拼图的形状不太同样,或者是横向,或者是纵向,总之“一看就知道是一样的东西。”而后陈正翔到网络上找了最近网友恶搞韩国选美的 GIF 给我看,上面的美女几乎是同一个模子印出来,这正是陈正翔对当下 Arduino 图形化编程工具最不满意的地方。
这是陈正翔在开发 Mind+ 期间,所收集到的各式各样的图形化编程工具,看上去千篇一概
开源可以促进软件行业的发展,但也是把双刃剑.陈正翔认为,某种程度上,开源也抑制了创造力。陈正翔所收集的图形化编程工具里,都是开源的,基于同一个框架修修补补,“没有人愿意跨出那一步,去彻底打破这种方式。”
咱们是全部图形化编程工具里最晚开发的,可是这也给咱们很好的对比的机会,咱们找了全部的图形化编程软件,不论是任何领域,仍是不一样国家的,咱们都作好了分类,而后进行对比。基本上有两派,一派是 Scratch 这种流派,彻底基于编程思惟的,一派是像咱们这种基于关系的。后者有小的分支,有的是基于关系流的,有的是基于时间顺序的。
尽管我在他电脑的桌面上发现了“商业计划”这个文件夹,但关于 Mind+ 的将来,陈正翔认为,它仍然应该是服务于大众的免费图形化编程工具。只不过,Mind+ 软件或许会跟一些开源硬件打包在一块儿出售。如今 DFRobot 上,就有相似的产品。
陈正翔说,将来 Mind+ 将开放 SDK,或者说各个模块的设计工具,甚至还会有一个云端,方便每一个人添加 Arduino 兼容的硬件模块,并上传到网络上共享,并开发移动版。说实话,模块库可能才是 Mind+ 最有价值的部分。
在 DFRobot 办公室的白板上,画着 Mind+ 的设计草图
咱们详细地介绍了 Mind+,却还没介绍陈正翔本人。他 1989 年出生,是青岛人,17 岁开始工做——是的,17 岁开始工做。我问他,为何初中以后就开始辍学?他说:
由于中国式的学校是一个大树同样,咱们从小学就开始面临选择,多是就近上的小学。总之,小学初中不是本身选的,是政府选的。但这其实还好,你有钱能够去私立学校,接受更好的教育。可是初中升高中,就是第一个坑,一个是升高中,另一个是职业高中,这就是很大的分水岭。若是你上职业高中,那么是另一条路线,是以职业技能培训为目的的。
看中国的教育路线,很容易知道本身 30 年以后的成就,甚至很容易看到本身孩子的道路。因此必须改变这个秩序。
因此,你看,只要你进入一个坑,那么你一生都在里面,想爬出来不容易。因此我选择了退学,离开了这个坑,本身爬出来。
想逃脱被预约好的人生,想逃脱令本身不爽的环境,这就是陈正翔离开校园的理由。如今来看他, 不但没有成为不受社会所欢迎的人,反而成为中国创客中的一员。
陈正翔平时比较喜欢本身骑摩托车旅游,或者踩着滑板去旅游,他比较喜欢自由自在的感受。一我的独特的缘由,绝对不是由于外界,而是由于他本身。