Bret Victor – Inventing on Principle

Bret Victor – Inventing on Principle

Bret Victor简历) – 苹果公司的UI交互设计师(大神级的人),在 CUSECCanadian 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 Stanton,100年前的一个美国的女权主义者,当时,她主张妇女的各项权益,比如参与投票,所有人都以为他疯了,今天看来,她是对的,她消除了性别歧视。这和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他自己的信条一样——“创造者需要即时的反馈”,就像他演示的那样,当你在一行一行修改你的代码的时候,你可以立即看到代码运行的过程和效果。这个原则可以指导着他要对一切达不到这个原则的东西负责,并引导着他知道应该做什么,不应该做什么,从而去创造新的东西,解决问题。

当然,世界是多元的,每个人都有每个人自己的原则。不同的原则必然会把你导到不同的路上。不管你是否同意,视频中的那些演示是相当令人震撼的。

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

好烂啊有点差凑合看看还不错很精彩 (58 人打了分,平均分: 4.59 )
Loading...

Bret Victor – Inventing on Principle》的相关评论

  1. 很对,不同的原则必然会把你导到不同的路上,不同的原则对自己来说就是一种责任,我是这样理解的

  2. 那个电路是挺牛的,当年我学电路的时候,要是用这种软件,可能比我动手做实验的效果要好。
    可惜现在对硬件一点兴趣也没有,如今只能在软件的世界里找点快乐。

  3. 看来这个conference还挺靠谱的,去年高年级的还来招人参加,以为是忽悠呢

  4. 看完了这段视频,其中透露着苹果追求艺术品的浓厚的气息,感觉苹果能有今天的成就,也是顺理成章的事情,视频里给我的感觉更多的是,能够改变世界的更多的不仅仅是技术本身,还要有能够通过驾驭技术从而更好的为创意所服务的层面。

  5. 人生导师!牛人总是不能被时代理解。
    Bret网站上关于苹果的一页貌似意味深长:http://worrydream.com/#!/Apple

  6. 这种原则 在 forth创立的时候就有所体现了 不过那时候的硬件撑不住他现在的酷炫效果

  7. 里面的工具展示,让我想起了遭遇过的若干用着vim和emacs,写着c/c++而鄙视用vs写c#的人,呵呵

  8. 单从程序员的角度来看,binarySearch那个演示,先写个无穷循环,完全不考虑终止条件,再通过动态执行来发现终止条件的做法相当的震撼,个人从没用这样的思维模式来进行过代码实现。
    优良的工具,可以改变编码时的思维模式。
    又想到了很多喜欢让人在纸上写程序的技术面试官,哈哈

  9. 感觉他演示的工具更是倾向前端开发的吧。都是用js的。
    如果是比较大的后端程序的话逻辑那么复杂,不知其要怎么可视化的实时反馈?
    总有一些很abstract的东西无法可视化吧。

    那个二分搜索的例子倒是有TDD的意味了。。。

  10. 感觉上他介绍的工具能够使用的范围并不是特别广,就像上面网友说的,如果程序中更多的是复杂的、难以形象化表示的逻辑的话,使用这些工具很可能就是事倍功半—机器很难能够像人脑一样理解这些逻辑

  11. @CG
    我觉得所谓复杂的难以形象化表示的逻辑 大部分情况下都不是核心创造,那些完全重复没有创造的工作确实不怎么需要形象化出来。。。

  12. 要是不理解什么是二分查找,怎么能写出二分查找呢?靠人肉的不断试错来写出正确代码,和猴子写作没有什么区别了。这个东东可能更适合微调一些需要可视化的参数。

  13. 去Bret的主页看了看,读了读他的简历发现这才叫牛人!Caltech EE本科,UCB EE硕士,硬件搞过DSP,FPGA,软件写过40多个,用10几门语言做个项目,现在在苹果做设计,也是神级的人物。像他看齐!一定要更加精深地生活,清晰地面对这个世界!

回复 jason 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注