开源是JavaScript 的出路 《程序员》:说说你学习JavaScript的过程? John Resig:从高中时我就开始使用Java-Script,具体做什么记不大清了。大学时我加入一个研究工作组做一些商业项目,例如为一些地方公司设计网 页。设计师的工作是用Photoshop处理网页图片,而我的工作是将这些图片用CSS展现在网站上,这需要在Firefox浏览器下呈现出相应的效果。 这期间公司还让我做的事情是在网页上显示一个特殊的卷轴效果,所以必须用JavaScript编写。我一直在琢磨如何写这个脚本,直到有一天我改了脚本中 某个元素属性,这个功能就实现了。我很高兴,开始系统学习JavaScript,之后就用它编程。 《程序员》:最开始你用的是什么库? John Resig:用Prototype,这是2005年出现的一款非常棒的JavaScript基础类库,对JavaScript做了大量的扩展,而且很好地 支持了Ruby on Rails。Prototype吸引我的一点是代码干净整洁。当我第一次看到Prototype的时候,很难想象JavaScript类库代码可以做到如 此简洁。Prototype非常漂亮,让人产生用它写代码的 《程序员》:你认为什么时候是JavaScript库开源的最佳时机? John Resig:JavaScript与其他浏览器语言有很多不同,它的特点是大家都可以看到源代码,所以我认为从一开始就要开源。如果你注意观察 JavaScript的库,就会发现所有开源的库都挺好,而所有闭源的库都不行。其实现在基本已经没有人再用闭源的JavaScript库了。 《程序员》:我知道有些中国的公司开始设计新的框架和JavaScript库,并打算开源,你对他们有什么建议吗? John Resig:开源是需要的,但最重要的是知道你的用户是谁,否则就会跟他们有距离。我设计jQuery时就遇到了类似的问题,要考虑究竟哪些人需要用我设 计的类库。目前JavaScript还是有发展的空间,但是如果创造全新的东西就可能没太大必要。我对开源公司的建议是必须放弃自己的公司立场,把这个当 成一个独立的项目,公司只是这个项目的一个用户。比如公司有一个需求,也要走正式的申请、Debug之类的流程。也许有些人会觉得这是公司的资源,但如果 你要开源,就必须放弃控制。 《程序员》:对刚开始使用JavaScript的开发者有什么建议? John Resig:刚开始使用JavaScript的开发者估计对浏览器方面的了解也很少。我的建议是用库。不要把时间花在那些浏览器的Bug上,一开始就直接用各种库。 《程序员》:你怎样看JavaScript的未来?谈一下服务器端的node.js? John Resig:我对JavaScript的未来很乐观。因为网络和浏览器会存在很长时间,所以JavaScript和HTML一样会长久存在。20年内大家 肯定会一直用JavaScript写Web应用。它是一种很特别的语言,在服务器端也可以用JavaScript。我喜欢JavaScript的原因是它 可直接用在浏览器上,它跟Python不一样,很少有语言可以直接用在浏览器上。在服务器端的node.js是很酷的东西,它让JavaScript脱离 浏览器而存在。 优秀程序员的标准 《程序员》:谈谈你在Mozilla的工作? John Resig:我以前是JavaScript程序员,2007年2月加入Mozilla,工作了几年。后来jQuery变得很大,我必须全力来做。所以向 Mozilla的主管说我要做jQuery,他非常支持,认为这是很棒的事情。所以后来,我就可以将全部精力放在jQuery上。 《程序员》:你最常用的工具是什么? John Resig:用浏览器,12~20种,不同的版本,不同的类型。我还要使用各类系统如Windows、Mac等。此外Firebug是一款很棒的工具。 《程序员》:你现在是在本地还是在云端工作? John Resig:我基本还是在本地,在云端工作的确很好,因为设定所有的模拟器是很困难的,所以我们都是设定一次,然后放到云端,这样能避免一些测试的问题。 《程序员》:你觉得好的程序员应该是怎样的? John Resig:面试JavaScript程序员时,我一般问两类问题,一类是JavaScript的技术问题,另一类是浏览器Bug方面的。比如你最喜欢的 浏览器Bug,要是他不能回答,就说明他做的工作不够。喜欢这个工作的人,都会有花两三天修复一个浏览器Bug的经历。 《程序员》:你觉得学习数学或者理论、算法是不是对程序员很重要? John Resig:对有些程序员是,但对JavaScript程序员则不一定,这取决于你要做什么工作。在大学时我做数据挖掘方面的工作,需要很强的理论背景。 在用JavaScript时,我学了一些语言基础方面的东西。当然多学知识肯定会让你有更好的理解。算法有时不一定都能用上,但熟悉语言的基础理论会对自 己有很大帮助。 HTML 的未来 《程序员》:HTML、JavaScript在将来是不是会占统治地位? John Resig:现在已经处于统治地位了,以后浏览器和web只会更流行。它是网络的核心,不像Flash不能运行在iPhone上。 《程序员》:HTML5会成功替代Flash吗? John Resig:大家要用Flash主要是为了视频、游戏。但现在主要的视频网站都已经转入HTML5,我认为随着更多的浏览器支持HTML5功能,Flash就会更加无关紧要。 《程序员》:越来越多人在用HTML和JavaScript,会不会取代所有的本地应用? John Resig:是的,因为用它们可以开发很多功能。HTML会不会取代所有的本地应用,关键还是看要用什么功能,比如你不能用HTML编写浏览器,还是要使 用底层的语言。当然不排除但首先Web技术可能变得更厉害,厉害到能开发浏览器的程度,就可以编浏览器。要让所有浏览器都能支持,这是未来的关键。 记者后记: 2011年5月,John Resig离职Mozilla,加入在线教育集团Khan Academy。在那里,他仍继续从事jQuery相关工作,同时负责该组织的开源项目及未来的iPad应用的开发。Khan Academy是一个非盈利组织,正在尝试对“学生的学习方法及老师的教育方法”进行一次彻底变革。John Resig的加入,意在为教育提供更好的工具,让更多的人参与到开源中来,为提升教育质量贡献一份力。 |