折腾来折腾去

pikipity的blog

新玩具 -- Processing

Processing

在看 Arduino 的资料的时候无意间找到了一个新玩具 – Processing,专门用来开发视觉交互界面用的语言,基础语言是 Java,优点就和他官方网站介绍的一样:

  • 开源,免费下载
  • 支持多种输出方式,2D、3D 甚至 pdf
  • 使用 OpenGL 作为 3D 的引擎
  • 支持多种操作系统,Linux, OSX, Windows
  • 网络上有众多的扩展库支持
  • 大量的资料书籍(虽然都是英文的)

我的第一反应是把它当做 Pygame 的替代品。相比 Pygame,Processing 的优点众多:

  • Java 语言本身的优点:Python 蛋疼的内存管理机制和速度问题现在让我越来越烦心了,Java 在这两点上要好得多。
  • 安装方便:Pygame 毕竟是个民间自发的维护项目,更新缓慢,对于刚刚接触 Python 的新手来说安装的过程中就会遇到重重障碍。Processing 的安装则简单的多,而且更新迅速,各个平台的程序都已经打包好了,直接双击安装就可以了,而且自带 IDE(除了自动补全外其他你能想到的、没想到的功能都有了,界面也挺漂亮的),真的是扫除一切学习障碍,诚意满满。

    自带 IDE 界面

  • 语言更加人性化:Python 的语言已经很人性化了,而 Processing 的语言,尤其是默认变量的命名通过语意猜测就可以知道其代表什么了。命名方式也很统一(Python。。。谁用谁知道,我不吐槽了。)
  • 事件管理更加轻松:相比 Pygame,Processing 简化了事件管理的部分。不再需要专门再编写代码来获得事件,在 Processing 中鼠标与键盘的事件都变成了一个个默认变量,直接使用这些默认变量就可以获得事件。
  • 更多扩展库的支持:扩展库不仅数量多而且覆盖的范围很广,使得用 Processing 编写出来的视觉交互界面可以很容易的与其他硬件或软件进行交互,甚至很多特效都已经有库支持,只要直接调用就可以了,非常方便省力。

当然,缺点也是有的,其并不适合编写游戏,毕竟此语言是为了开发交互式界面而发明的,对于游戏上的开发乏力还是可以理解的。

总而言之,如果仅仅是想快速开发出一个简单的交互式界面,Processing 绝对是不二人选,但是要开发复杂的交互界面或者游戏的话,还是考虑直接用 Pygame 或是 更加基础的 C 或 C++ 吧。还有因为 Processing 的底层语言是 Java,所以对于我这种用惯了 Python 的人来说,换用 Java 是各种不习惯啊。。。(吐槽:为什么每一句后面都要加个分号啊,为什么还要大括号啊,为什么 for 循环这么麻烦啊。。。)

入门教程推荐 – 《爱上 Processing》(专门用了讲解了如何将 Processing 与 Arduino 配合使用)



Comments