导读:本文是Bret Victor(简历)苹果公司的UI交互设计师(大神级的人),在 CUSEC(Canadian University Software Engineering Conference)上做了一个题为 “Inventing on Principle”的演讲(vimeo 视频链接),该演讲中展示了五个示例。
五个示例:
● 用程序画树。如何把程序绘图变成实时的,如何把程序和图映射起来。
● 游戏调试。在实时编程的基础上,可以更容易的让你看到程序参数对游戏的调整,甚至对游戏过程的可视化调试。
● 算法调试。在写二分查找算法时可以实时看到程序的执行过程。边写边看到。
● 电路图。可以实时地看到电路图中各个部件的对1/0信号的处理。
● 动画。一种比flash制作动画更NB的方法。
下面是优酷上的视频——你一定会被示例中的那些编程工具所震撼!
不过,Bret并不是在说什么编程,也不是在说什么技术,他是在说 How to live your life。
他认为,在我们的生活当中,我们听到太多的诸如:“跟随你的喜好”、“跟随你的兴趣”,“跟随你的热情”之类的东西,但他更认为,更应该是“跟随一 个原则follow you principle”,他认为真正能让你把事做正确的不是你的喜好,不是你的兴趣,也不是热情,而一个做的原则。在这个演讲中Bret介绍了他自己的原则 和他人的原则,供你参考和并找到你的原则从而live in your life。
Bret的原则是,他觉得人总是会有很多想法,而把这些想法变成现实是一件非常重要的事,也是最难的事。他觉得当我们在写代码实现一个东西的时候, 在实现一个游戏,算法,电路,动画的时候,人很难把自己脑海里的东西映射成现实的东西,因为一个想法变成现实,需要反反复复的调整,如果看不见,就没办法 调整。而我们在写好程序,看到结果后,有些东西发现并不满意,需要做调整,这个调整的过程相当令人痛苦,因为代码里的那些数字,我需要一点一点地去试,调 大调小,总是不能调到我们想要的结果,从而让人无法正常思考。所以,他的原则是——创造者需要对自己的创造的东西有实时的反馈。于是出现了视频中的实时编程的那些示例。(其实,这个东西和Firebug很相似,我还记得以前和朋友说过,如果写C/C++程序也能有像Firebug的这种工具就好了,现在果然离实现不远了)
Bret说起他的动机的时候,他说,他把这个事当成了一种责任而不是一种机会。他说,这就好像我们听到的:审查机制,性别歧视,环境破坏,违反人权 等这些问题,绝大多数人是不会把这些事当成一个机会的,而那些有责任感的人会把解决这些问题当作一种责任。同样,当他看到我们被工具或环境限制住了我们创 造东西的过程时,他并不觉得这是一个可以发明更好的产品的机会,甚至这是开创自己事业的机会,或是对社会做贡献的机会。他认为想法相当的宝贵,如果一个好 的想法推动不了的时候,他会很难受,就像看到一场灾难一样,他觉得,让大家的想法能够顺的进行,这是他的一个责任。
后面他,举到了很多人的例子,
Larry Tesler——著名的计算机科学家,前苹果的首席科学家,图形界面的创造者(在“SteveY 对 Amazon 和 Google 平台的长篇大论” 中提到过他)。他在70年代看到人们在使用电脑文本编辑器时,需要按某个键进入某种模式(Mode),然后才能输入(VI)。他觉得这样操作起来很复杂, 也很不舒服,所以,他为自己设定了一个原则——“Don’t Mode Me In”,他做了很多尝试,做了一个叫Gypsy的文档编辑器,可以通过拖拽移动字符,而且他还发明了复制粘贴,对于一个没有使用过电脑的人来说,只需半个 小时的训练就可以输入文字了。Larry把消除模式设置成了自己的原则或责任。他的个人主页是:http://www.nomodes.com,他的Twitter是@nomodes,甚至他的车牌也是 nomodes.
Elizabeth Cady Stanton100 年前的一个美国的女权主义者,当时,她主张妇女的各项权益,比如参与投票,所有人都以为他疯了,今天看来,她是对的,她消除了性别歧视。这和 Larry 很相似,他们都看到了一种文化上的错误,并要预见到了未来的样子,他们都为自己设定了一个原则或是信仰,而去为之奋斗。
Doug Engelbart美国发明家,瑞典人和挪威人后裔。最广为人知的是他发明了鼠标,另外他的小组是人机交互的先锋,开发了超文本系统、网络计算机,以及图形用户界面的先驱;并致力于倡导运用计算机和网络,来协同解决世界上日益增长的紧急而又复杂的问题。
Alan Kay, 美国计算机科学家,在面向对象编程和窗口式图形用户界面方面作出了先驱性贡献。2003年获得图灵奖。目前担任Viewpoints研究院院长,加州大学 伯克利分校兼职教授。曾任Apple公司院士,惠普公司资深院士。他有一句尽人皆知的名言——预测未来的最好办法就是创造未来。他相信如果小孩能够熟练掌 握电脑,如果写程序是和读书写字一样成为基础知识,那么人们就掌握了一种新的方式去思考,新的方式去了解世界。他所有发明的东西都基于他自己的原则或信 条。
Richard Stallman, 是美国自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者。作为一个著名的黑客,他的主要成就包括Emacs 及后来的 GNU Emacs,GNU C编译器及GDB调试器。他所写作的GNU通用公共许可证(GNU GPL)是世上最广为采用的自由软件许可证,为copyleft观念开拓出一条崭新的道路。他的原则,是软件必须是自由的,他认为软件的自由是关乎道义上 的对错的,关系到人类的自由。他没车没房没结婚没孩子,也不用手机,但他有非常忠实自由的信条和责任感。
Bret 通过这些例子继续强调——他并不是要大家样做,他只是给大家一个选择。你可以成为一个非常优秀的工程师,非常熟练地掌握了一些技术,你也可以为这个社会做 很多贡献,这是成为一个工匠的路,也是大多数人走的路。不过旁边还有一条路,值得去走,那就是解决问题的路,这条路往一头走是创业者,往另一头走是学者, 但你需要找到一个你自己的原则,你可能需要很长时间才能找到你的原则,Bret说他花了10年才搞清楚他的原则是什么。
个人以为,Bret所说这个原则也好,信条也好,是一种对自己创造力有引导性质的原则和信条,并不是那些已有的原则或信条,否则那只不过是在跟从 了,所以,这些原则和信条应该是新的东西,是自己悟出来的东西,这样的原则和信条会导致你有一种责任感向正确的方向去创造。当然,这些原则也不是那些非常 笼统和模糊的东西,比如,要创业开公司,要设计出有更好的用户体验的东西,要创造有很多用户使用的产品,或是有更好的收入什么的。其应该是明确的,有指导 性的,就像Bret他自己的信条一样——“创造者需要即时的反馈”,就像他演示的那样,当你在一行一行修改你的代码的时候,你可以立即看到代码运行的过程 和效果。这个原则可以指导着他要对一切达不到这个原则的东西负责,并引导着他知道应该做什么,不应该做什么,从而去创造新的东西,解决问题。
当然,世界是多元的,每个人都有每个人自己的原则。不同的原则必然会把你导到不同的路上。不管你是否同意,视频中的那些演示是相当令人震撼的。