偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

jQuery之父訪談錄:JavaScript和HTML一樣長(zhǎng)壽

開(kāi)發(fā) 前端
27歲的jQuery之父John Resig接受了記者的深度訪談,這篇對(duì)話文章,讓我們一窺這位著名程序員的人生及技術(shù)感悟。

編程初體驗(yàn)

記者:你是如何開(kāi)始編程的?

John Resig:第一次編程大概是在初中,14、15歲,當(dāng)時(shí)有個(gè)朋友帶來(lái)張軟盤(pán),里面有QBASIC。在DOS系統(tǒng)下他向我展示了他自己的程序,我覺(jué)得非常有意思。從那時(shí)起我就開(kāi)始想編程了,先后借了很多相關(guān)的書(shū)。最初是學(xué)習(xí)編寫(xiě)HTML,之后又轉(zhuǎn)向CGI。

記者:你編寫(xiě)的第一個(gè)有意思的程序是什么,還有印象嗎?

 

[[39831]]

 

John Resig認(rèn)為,JavaScript和HTML一樣會(huì)長(zhǎng)久存在,20年內(nèi)開(kāi)發(fā)者肯定會(huì)一直用JavaScript寫(xiě)網(wǎng)頁(yè)應(yīng)用程序John Resig:高中時(shí),有一陣我通過(guò)編寫(xiě)網(wǎng)站應(yīng)用來(lái)掙錢(qián)。我還會(huì)做一些諸如網(wǎng)站設(shè)計(jì)的工作,當(dāng)然沒(méi)有專(zhuān)業(yè)人員做得那么好。記得曾編寫(xiě)了一個(gè)訂早餐的網(wǎng)頁(yè)應(yīng)用,讓那些熬夜無(wú)暇早起買(mǎi)早餐的人通過(guò)這個(gè)網(wǎng)頁(yè)應(yīng)用訂餐。不過(guò),這還算不上最有意思的程序。我的第一個(gè)最有趣的程序是在大學(xué)時(shí)編寫(xiě)的。那時(shí)我們要建立自己的時(shí)間表,以分配好上課時(shí)間,所以我編了一個(gè)選課的程序,它可以推薦出最優(yōu)的選課結(jié)果,例如:如果你要選數(shù)學(xué)、計(jì)算機(jī)和除此之外的一門(mén)科學(xué)課程,程序可以推薦出可在一天內(nèi)完成三門(mén)課程的時(shí)間表,這樣你就有六天的空閑時(shí)間去做自己想做的事情。

記者:學(xué)生時(shí)代的生活和以后的編程生涯,兩者之間有沒(méi)有內(nèi)在的聯(lián)系?

John Resig:這說(shuō)不太清楚,我喜歡編程,它可以讓我完全理解一個(gè)東西。選擇Web編程是因?yàn)樽约涸敢庾鰟e人不樂(lè)意做的事情。比如很多人不愿意處理同樣的網(wǎng)頁(yè)在不同瀏覽器下表現(xiàn)各異的問(wèn)題。但這很有挑戰(zhàn),也很有樂(lè)趣。

記者:能不能談?wù)勀阍诖髮W(xué)生活中印象最深的事情?

John Resig:對(duì)我來(lái)說(shuō)最重要的事情,是那些計(jì)算機(jī)科學(xué)課程。大學(xué)期間我并沒(méi)做很多Web編程,而是做了很多和數(shù)據(jù)庫(kù)相關(guān)的工作。這是我感興趣的方面。我還喜歡研究社區(qū),做數(shù)據(jù)挖掘研究,其中就包括判斷社交網(wǎng)站怎樣增長(zhǎng)之類(lèi),那時(shí)我還發(fā)表了兩篇關(guān)于數(shù)據(jù)挖掘的論文。離開(kāi)大學(xué)后,我又回到Web編程,盡管數(shù)據(jù)挖掘很有意思,但我還是覺(jué)得Web編程的吸引力更大。

記者:大學(xué)最喜歡的計(jì)算機(jī)課程有哪些?

John Resig:我喜歡有挑戰(zhàn)性的課。例如XML,我本來(lái)以為課程很簡(jiǎn)單,可以輕松得個(gè)A。結(jié)果老師第一堂課就把我知道的東西都講完了,從第二節(jié)課開(kāi)始所講內(nèi)容我完全聽(tīng)不懂,很難學(xué),結(jié)果我得了B。但我還是很自豪,因?yàn)閷W(xué)了很多東西。

jQurey 背后的故事

記者:向我們透露一些jQuery背后的故事吧。最開(kāi)始您是怎樣做的?

John Resig:做Web編程時(shí),我非常討厭瀏覽器的Bug,不同的瀏覽器有不同的Bug,而且數(shù)量非常多。于是我用JavaScript做了CSS選擇引擎,之后還做了個(gè)動(dòng)畫(huà)引擎,都是自?shī)首詷?lè)。但與此同時(shí)我發(fā)現(xiàn)自己不能將制作的一些應(yīng)用放到瀏覽器里。為了將應(yīng)用放到Firefox瀏覽器中,我開(kāi)始制作相關(guān)的API,以應(yīng)用那個(gè)CSS選擇引擎和動(dòng)畫(huà)引擎,這些最終成為了jQuery。幾個(gè)月后,我將那些應(yīng)用做進(jìn)Firefox里,之后在IE里也可以運(yùn)行。如今這仍是我的目標(biāo)——讓每個(gè)人都可以在網(wǎng)頁(yè)里寫(xiě)點(diǎn)什么,并且寫(xiě)的東西能夠在瀏覽器中順利運(yùn)行出來(lái)。

記者:支撐jQuery的基本原理有哪些?

John Resig:原則很簡(jiǎn)單。作為一名程序員,我希望代碼簡(jiǎn)潔,不希望在編程的時(shí)候不停地重復(fù)某些內(nèi)容,設(shè)計(jì)jQuery的目標(biāo)就是為了簡(jiǎn)化代碼,使程序更高效。

記者:jQuery是如何把簡(jiǎn)單和高效結(jié)合在一起的?

John Resig:很多人想直接做大項(xiàng)目,例如像Gmail、Yahoo!Mail之類(lèi)。但實(shí)際上通過(guò)很簡(jiǎn)單的過(guò)程也可以解決大項(xiàng)目中一些很困難的關(guān)鍵點(diǎn),化大為小,化繁為簡(jiǎn),jQuery就是這樣做的。

記者:如果能重新再來(lái)一次,你會(huì)在哪些方面做出設(shè)計(jì)改變?

John Resig:我要改一些方法的名稱(chēng)。初期在命名上出現(xiàn)了一些失誤,后來(lái)我花了很多時(shí)間才理解到j(luò)Query應(yīng)該是現(xiàn)在這樣。有些事情如果一開(kāi)始就做好,可能會(huì)少走很多彎路。

記者:談?wù)刯Query的研發(fā)過(guò)程吧。

John Resig:我們主要的資源是jQuery的Bug Tracker,有一個(gè)Team專(zhuān)門(mén)經(jīng)營(yíng)Bug Tracker。我負(fù)責(zé)修改這些Bug。最終我們有一個(gè)需要修改的Bug列表。然后有人改程序,提交給別人通過(guò),并處理這些Bug。大多數(shù)時(shí)候都是我來(lái)改Bug,發(fā)布新版本。

記者:中國(guó)的程序員該如何做才能參加到這個(gè)項(xiàng)目?

John Resig:直接加入就可以。所有人都可以看到內(nèi)部的每次代碼提交,然后更優(yōu)秀的程序員會(huì)加入Bug Tracker。他們能看到我們發(fā)現(xiàn)問(wèn)題和處理問(wèn)題的整個(gè)過(guò)程,從而學(xué)會(huì)怎樣發(fā)布補(bǔ)丁。我們的小組一共20個(gè)人,只有3個(gè)代碼的貢獻(xiàn)者,其余17人都在做各種各樣其他事情。jQuery網(wǎng)站是世界排名前700位的網(wǎng)站,所以有很多工作需要處理。

記者:在中國(guó)有沒(méi)有正式的文檔網(wǎng)站?

John Resig:有jQuery.org.cn,但這不是正式的,不過(guò)里面有jQuery文檔的翻譯資料。我們急需有人幫助翻譯這些文檔。

記者:jQuery的未來(lái)怎樣?

John Resig:我們基本不加入新功能,目前大多數(shù)工作都是優(yōu)化,讓jQuery變得更快、更強(qiáng)、更容易理解。未來(lái)的工作也是優(yōu)化,使jQuery功能更清晰化。

開(kāi)源是JavaScript 的出路

記者:說(shuō)說(shuō)你學(xué)習(xí)JavaScript的過(guò)程?

John Resig:從高中時(shí)我就開(kāi)始使用Java-Script,具體做什么記不大清了。大學(xué)時(shí)我加入一個(gè)研究工作組做一些商業(yè)項(xiàng)目,例如為一些地方公司設(shè)計(jì)網(wǎng)頁(yè)。設(shè)計(jì)師的工作是用Photoshop處理網(wǎng)頁(yè)圖片,而我的工作是將這些圖片用CSS展現(xiàn)在網(wǎng)站上,這需要在Firefox瀏覽器下呈現(xiàn)出相應(yīng)的效果。這期間公司還讓我做的事情是在網(wǎng)頁(yè)上顯示一個(gè)特殊的卷軸效果,所以必須用JavaScript編寫(xiě)。我一直在琢磨如何寫(xiě)這個(gè)腳本,直到有一天我改了腳本中某個(gè)元素屬性,這個(gè)功能就實(shí)現(xiàn)了。我很高興,開(kāi)始系統(tǒng)學(xué)習(xí)JavaScript,之后就用它編程。

記者:最開(kāi)始你用的是什么庫(kù)?

John Resig:用Prototype,這是2005年出現(xiàn)的一款非常棒的JavaScript基礎(chǔ)類(lèi)庫(kù),對(duì)JavaScript做了大量的擴(kuò)展,而且很好地支持了Ruby on Rails。Prototype吸引我的一點(diǎn)是代碼干凈整潔。當(dāng)我第一次看到Prototype的時(shí)候,很難想象JavaScript類(lèi)庫(kù)代碼可以做到如此簡(jiǎn)潔。Prototype非常漂亮,讓人產(chǎn)生用它寫(xiě)代碼的欲望。

記者:你認(rèn)為什么時(shí)候是JavaScript庫(kù)開(kāi)源的最佳時(shí)機(jī)?

John Resig:JavaScript與其他瀏覽器語(yǔ)言有很多不同,它的特點(diǎn)是大家都可以看到源代碼,所以我認(rèn)為從一開(kāi)始就要開(kāi)源。如果你注意觀察JavaScript的庫(kù),就會(huì)發(fā)現(xiàn)所有開(kāi)源的庫(kù)都挺好,而所有閉源的庫(kù)都不行。其實(shí)現(xiàn)在基本已經(jīng)沒(méi)有人再用閉源的JavaScript庫(kù)了。

記者:我知道有些中國(guó)的公司開(kāi)始設(shè)計(jì)新的框架和JavaScript庫(kù),并打算開(kāi)源,你對(duì)他們有什么建議嗎?

John Resig:開(kāi)源是需要的,但最重要的是知道你的用戶是誰(shuí),否則就會(huì)跟他們有距離。我設(shè)計(jì)jQuery時(shí)就遇到了類(lèi)似的問(wèn)題,要考慮究竟哪些人需要用我設(shè)計(jì)的類(lèi)庫(kù)。目前JavaScript還是有發(fā)展的空間,但是如果創(chuàng)造全新的東西就可能沒(méi)太大必要。我對(duì)開(kāi)源公司的建議是必須放棄自己的公司立場(chǎng),把這個(gè)當(dāng)成一個(gè)獨(dú)立的項(xiàng)目,公司只是這個(gè)項(xiàng)目的一個(gè)用戶。比如公司有一個(gè)需求,也要走正式的申請(qǐng)、Debug之類(lèi)的流程。也許有些人會(huì)覺(jué)得這是公司的資源,但如果你要開(kāi)源,就必須放棄控制。

記者:對(duì)剛開(kāi)始使用JavaScript的開(kāi)發(fā)者有什么建議?

John Resig:剛開(kāi)始使用JavaScript的開(kāi)發(fā)者估計(jì)對(duì)瀏覽器方面的了解也很少。我的建議是用庫(kù)。不要把時(shí)間花在那些瀏覽器的Bug上,一開(kāi)始就直接用各種庫(kù)。

記者:你怎樣看JavaScript的未來(lái)?談一下服務(wù)器端的node.js?

John Resig:我對(duì)JavaScript的未來(lái)很樂(lè)觀。因?yàn)榫W(wǎng)絡(luò)和瀏覽器會(huì)存在很長(zhǎng)時(shí)間,所以JavaScript和HTML一樣會(huì)長(zhǎng)久存在。20年內(nèi)大家肯定會(huì)一直用JavaScript寫(xiě)Web應(yīng)用。它是一種很特別的語(yǔ)言,在服務(wù)器端也可以用JavaScript。我喜歡JavaScript的原因是它可直接用在瀏覽器上,它跟Python不一樣,很少有語(yǔ)言可以直接用在瀏覽器上。在服務(wù)器端的node.js是很酷的東西,它讓JavaScript脫離瀏覽器而存在。

優(yōu)秀程序員的標(biāo)準(zhǔn)

記者:談?wù)勀阍贛ozilla的工作?

John Resig:我以前是JavaScript程序員,2007年2月加入Mozilla,工作了幾年。后來(lái)jQuery變得很大,我必須全力來(lái)做。所以向Mozilla的主管說(shuō)我要做jQuery,他非常支持,認(rèn)為這是很棒的事情。所以后來(lái),我就可以將全部精力放在jQuery上。

記者:你最常用的工具是什么?

John Resig:用瀏覽器,12~20種,不同的版本,不同的類(lèi)型。我還要使用各類(lèi)系統(tǒng)如Windows、Mac等。

此外Firebug是一款很棒的工具。

記者:你現(xiàn)在是在本地還是在云端工作?

John Resig:我基本還是在本地,在云端工作的確很好,因?yàn)樵O(shè)定所有的模擬器是很困難的,所以我們都是設(shè)定一次,然后放到云端,這樣能避免一些測(cè)試的問(wèn)題。

記者:你覺(jué)得好的程序員應(yīng)該是怎樣的?

John Resig:面試JavaScript程序員時(shí),我一般問(wèn)兩類(lèi)問(wèn)題,一類(lèi)是JavaScript的技術(shù)問(wèn)題,另一類(lèi)是瀏覽器Bug方面的。比如你最喜歡的瀏覽器Bug,要是他不能回答,就說(shuō)明他做的工作不夠。喜歡這個(gè)工作的人,都會(huì)有花兩三天修復(fù)一個(gè)瀏覽器Bug的經(jīng)歷。

記者:你覺(jué)得學(xué)習(xí)數(shù)學(xué)或者理論、算法是不是對(duì)程序員很重要?

John Resig:對(duì)有些程序員是,但對(duì)JavaScript程序員則不一定,這取決于你要做什么工作。在大學(xué)時(shí)我做數(shù)據(jù)挖掘方面的工作,需要很強(qiáng)的理論背景。在用JavaScript時(shí),我學(xué)了一些語(yǔ)言基礎(chǔ)方面的東西。當(dāng)然多學(xué)知識(shí)肯定會(huì)讓你有更好的理解。算法有時(shí)不一定都能用上,但熟悉語(yǔ)言的基礎(chǔ)理論會(huì)對(duì)自己有很大幫助。

HTML 的未來(lái)

記者:HTML、JavaScript在將來(lái)是不是會(huì)占統(tǒng)治地位?

John Resig:現(xiàn)在已經(jīng)處于統(tǒng)治地位了,以后瀏覽器和web只會(huì)更流行。它是網(wǎng)絡(luò)的核心,不像Flash不能運(yùn)行在iPhone上。

記者:HTML5會(huì)成功替代Flash嗎?

John Resig:大家要用Flash主要是為了視頻、游戲。但現(xiàn)在主要的視頻網(wǎng)站都已經(jīng)轉(zhuǎn)入HTML5,我認(rèn)為隨著更多的瀏覽器支持HTML5功能,F(xiàn)lash就會(huì)更加無(wú)關(guān)緊要。

記者:越來(lái)越多人在用HTML和JavaScript,會(huì)不會(huì)取代所有的本地應(yīng)用?

John Resig:是的,因?yàn)橛盟鼈兛梢蚤_(kāi)發(fā)很多功能。HTML會(huì)不會(huì)取代所有的本地應(yīng)用,關(guān)鍵還是看要用什么功能,比如你不能用HTML編寫(xiě)瀏覽器,還是要使用底層的語(yǔ)言。當(dāng)然不排除但首先Web技術(shù)可能變得更厲害,厲害到能開(kāi)發(fā)瀏覽器的程度,就可以編瀏覽器。要讓所有瀏覽器都能支持,這是未來(lái)的關(guān)鍵。

編者按:2011年5月,John Resig離職Mozilla,加入在線教育集團(tuán)Khan Academy。在那里,他仍繼續(xù)從事jQuery相關(guān)工作,同時(shí)負(fù)責(zé)該組織的開(kāi)源項(xiàng)目及未來(lái)的iPad應(yīng)用的開(kāi)發(fā)。Khan Academy是一個(gè)非盈利組織,正在嘗試對(duì)“學(xué)生的學(xué)習(xí)方法及老師的教育方法”進(jìn)行一次徹底變革。John Resig的加入,意在為教育提供更好的工具,讓更多的人參與到開(kāi)源中來(lái),為提升教育質(zhì)量貢獻(xiàn)一份力。

原文:http://www.programmer.com.cn/7787/

【編輯推薦】

  1. 50個(gè)必備的實(shí)用jQuery代碼段
  2. jQuery是如何工作的
  3. 分享29個(gè)jQuery導(dǎo)航菜單插件和教程
  4. jQuery設(shè)計(jì)思想
  5. 7月20款最新且極具創(chuàng)意的jQuery插件(附下載)
責(zé)任編輯:陳貽新 來(lái)源: 《程序員》
相關(guān)推薦

2009-07-16 17:06:05

JPython

2020-11-24 09:55:37

編程語(yǔ)言C ++Vasa

2009-03-04 09:17:47

GoogleChrome工程師

2012-12-13 23:01:02

云計(jì)算天地超云云箱

2011-05-05 14:54:17

敏捷

2009-09-29 16:24:11

2010-10-14 20:36:47

敏捷

2009-09-18 12:32:28

Rasmus LerdPHP

2011-10-09 11:29:32

筆記本行情

2022-07-01 18:30:32

架構(gòu)IT人生

2022-03-10 10:08:07

程序員開(kāi)發(fā)IT人生

2022-05-06 19:04:25

開(kāi)源

2011-10-09 10:34:35

筆記本評(píng)測(cè)

2014-06-11 17:13:59

LinuxLinux創(chuàng)造者

2022-08-26 07:26:03

技術(shù)人人生閱歷行業(yè)

2022-03-25 19:03:07

IT人生開(kāi)發(fā)

2011-01-14 08:35:03

iPhoneiPad敏捷設(shè)計(jì)流程

2022-12-09 10:00:20

算法推薦模式

2015-02-28 14:43:43

醫(yī)療健康

2021-12-23 15:11:46

Web 3.0元宇宙Metaverse
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)