例如,我个人相信“Visual Basic”在编程方面比“面向对象”做得更多。当然,人们都在取笑VB是一个很烂的编程语言,并且人们在谈论OO语言都十多年了。但我还觉得不是这样的,Visual Basic 不是一个好的语言,但是我觉得VB那简单的数据库接口比OO更重要。
所以,我认为会语言有很多的改进,并且,硬件的改进会让编程更容易,但我并不期望会有巨大的生产力或是革命性的改进。
至少,你不会开始搞真正的AI的东西,我也不认为真的AI会变成某种你不需要编程的东西。
David Heinemeier Hansson
我从不试图预测未来。我也不相信命运一说。最好预测未来的方式就是去实现未来。
Peter Norvig
大规模的分布式处理
Dave Thomas
下一个最牛的事会被再下一个最牛的事所掩盖,然后再被再再下一个所掩盖,再再再下一个所掩盖……。这是一件没完没了的事,所以,我并不会试图去找最牛的事,因为这会让人们忘了那些最真实的问题:把基本的东西做对。我们要让用户更满意,专注于交付有价值的东西,自豪于我们做的事。一个程序员可以使用很多工具把这些事做得更好,而不是去追逐时尚和流行。
Guido Van Rossum
对不起,我没有那么多水晶球。我CGI被发明了5年后预测过它 :-)
James Gosling
有两个事是我现在最关心的,那就是要对付并行和复杂。
Bjarne Stroustrup
我不知道,我也不愿猜。
Tim Bray
不知道。
Q 5: 如果你有3个月学一个相对较新的技术,你会学什么?
Steve Yegge
我的确有3个月的业余时间,我准备学一下 Dojo (http://dojotoolkit.org) 和高级 AJAX 及 DHTML。我会通过开发一个相当牛的Web应用来学习他们。Dojo 真的酷,并且我确信它会越来越好。
Linus Torvalds
嗯,我真的很爱做 FPGA(可编程芯片),但我部是太忙了而不是坐来来开始学习。我喜爱和硬件打交道:很明显这个原因是因为我最终在做操作系统,因为操作系统(除了编译器)基本上都是在和硬件打交道,但我没有真正地自己去设计和做一个硬件。
David Heinemeier Hansson
Mac 的 Cocoa 编程
Peter Norvig
我想把 Javascript 学得更好,然也也想学 flash.
Dave Thomas
如果“新”是对于我来说,那么我会去学钢琴课。
如果“新”是说技术,我猜 我会选择学习某种和为残疾人服务的有关的技术。
Guido Van Rossum
单板滑雪。
James Gosling
搞点有乐趣的东西,我会学习最新的3D渲染技术。我可能会写一个光子映射渲染器。
Bjarne Stroustrup
3个月只有很少的东西你可以学,我觉得你只能参加某个成熟领域的培训。
Tim Bray
安全,加密,数字签名,身份标识,等等。对我来说,从没学过这些东西对我来说是个很大的问题。
Q 6: 你们觉得如何让一些程序员可能有超过其它程序员10倍或100倍的生产力?
Steve Yegge
我想你应该考虑一下为什么不是让所有的程序员都一样牛。托马斯爱迪生有一句关于天才的名言也许会给你一些启示。
Linus Torvalds
我真的不知道,我想,一些人之所以更牛是因为他们可以专注于那些重要的事,而更多的只不过是在应付。那些我所知道的真的很牛的程序员从很年轻的时候就在做事了。
David Heinemeier Hansson
把难题变简单的能力。
Peter Norvig
把整体问题一次性放入大脑的能力。
Dave Thomas
他们关心他们做的事。
Guido Van Rossum
大脑结构基因不同。
James Gosling
他们知道他们要做什么,他们不并不急于仓促行事。他们有他们要做的事的整个蓝图。
Bjarne Stroustrup
首先,缺少足够的职业培训,或基础不够。其次,这些人要即聪明(那种可以把事情想清楚,直达核心的能力),又有经验,并有使用工具的知识。编程需要把理论和实践结合起来 – 并不是使用没有实际业务的知识。
Tim Bray
令人惊讶的思维改变。
Q 7: 什么工具是你的最爱(操作系统,编程/脚本语言,文本编辑器,版本管理,shell,数据库,或其它没它你活不了的工具),为什么不是别的?
Steve Yegge
操作系统: Unix! 我用Linux,cygwin,和 darwin。你无法打败那些高效的工具。每一个程序员都应该学习使用/bin和/usr/bin下的所有命令。
脚本语言:Ruby。我几乎对所有的重要的脚本语言都很熟悉: Perl, Python, Tcl, Lua, Awk, Bash, 和一些我忘了的。但是我太懒了,而Ruby是目前所有脚本语言中最简单的,它应该是天堂制造的。
编程语言:没有一个我喜欢的,我觉得所有的编程语言都很扯。我倾向于Java,因为它很强,可跨平台,有多不错的工具和类库。但是Java未来会进化或是灭亡,Java还没有好到可以永远保持其领先地位。
文本编辑器:Emacs,因为这是迄今最好的编辑器。
版本管理:SVN,Perforce更好一些,但是也很贵。
Shell脚本: Bash, 因为我太懒了去学一个更好的。
数据库: 当然是MySQL,没有之一。
其它:我发现GIMP是无价的,但也是令人恼炎的。我用这个东西好几年了,但什么也没干,但是我没它活不了。很讽刺吧。Firefox 越来越是我最重要的工具。如果让我去用IE和Safari,我会有严重的窒息感。
注:所有的这些工具 (Unix, Emacs, Firefox, GIMP, MySQL, Bash, SVN, Perforce) 都有一个共同点:他们是可扩展的。例如:他们都有可编程的API。伟大的程序员知道怎么编写他们的工具,而不只是去使用。