官术网_书友最值得收藏!

  • JavaScript悟道
  • (美)道格拉斯·克羅克福德
  • 1543字
  • 2021-07-28 17:49:44

與道格拉斯隔空對(duì)話

編者注:本書作者道格拉斯·克羅克福德可謂JavaScript社區(qū)的傳奇人物。在本書中文版出版前夕,編輯聯(lián)系到道格拉斯,希望他能為中國的JavaScript用戶指點(diǎn)迷津。道格拉斯欣然同意了。隨后,我們發(fā)起了問題征集活動(dòng),并在短短幾天內(nèi)收到數(shù)百份提問。以下精選10位提問者的問題,以及道格拉斯的獨(dú)到見解。

軒靈@宋晨問:在ES6之后,JavaScript有了哪些新的糟粕?

道格拉斯答:穩(wěn)定性是一門編程語言最重要的品質(zhì)。誠然,敏捷方法有諸多益處,卻也暗留陷阱。事無完事,亦無絕對(duì)的穩(wěn)定。我們自然希望所有的迭代都是向下兼容的,但實(shí)際情況往往不盡如人意。我的應(yīng)對(duì)之道是找到一個(gè)穩(wěn)定、恰可正常運(yùn)行的語言子集,同時(shí)鼓勵(lì)人們開發(fā)一門新的編程語言。我們無法漸進(jìn)式地修復(fù)已存在于當(dāng)下語言中的那些糟糕的設(shè)計(jì)錯(cuò)誤,所以唯有新的語言才能引領(lǐng)我們向前。

 

劉子靖問:您如何看待TypeScript?在項(xiàng)目開發(fā)中,該如何在JavaScript和TypeScript之間做更好的選擇?

道格拉斯答:TypeScript并不能解決我的問題,所以我還是使用普通的JavaScript。

 

于傲日問:作為一門語言,JavaScript的核心競爭力是什么?

道格拉斯答:JavaScript有兩個(gè)優(yōu)勢。首先,它是目前唯一可以運(yùn)行在大多數(shù)Web瀏覽器中的語言。Java applets曾經(jīng)也可以運(yùn)行在瀏覽器中,然而最終慘淡離場。更重要的是,JavaScript是一門實(shí)用的函數(shù)式語言。將“輕量級(jí)動(dòng)態(tài)對(duì)象”與“函數(shù)是一等公民”兩者結(jié)合的設(shè)計(jì)簡直絕了!

 

pcamateur問:您如何看待JavaScript在非前端領(lǐng)域的發(fā)展?

道格拉斯答:JavaScript已然流行于服務(wù)器端領(lǐng)域,桌面應(yīng)用亦是如此。此外,它的一個(gè)安全子集也被用于金融領(lǐng)域。JavaScript被轉(zhuǎn)換為一門安全語言的難度遠(yuǎn)比其他大多數(shù)語言小。我個(gè)人期待安全ECMAScript(Secure ECMAScript)有一天可以取代JavaScript。

 

royalpioneer問:在即將來臨的5G時(shí)代,瀏覽器會(huì)沒落嗎?JavaScript又將扮演什么角色?

道格拉斯答:我對(duì)應(yīng)用程序商店的模式有兩點(diǎn)不滿。第一,應(yīng)用程序可以用非安全語言開發(fā),這為運(yùn)營商的安全審查增加了負(fù)擔(dān)。無論是非安全應(yīng)用程序被通過審核,還是良性應(yīng)用程序被拒絕通過,都是有可能的。第二,只有少數(shù)大型公司才有能力運(yùn)營應(yīng)用程序商店,這就意味著那些對(duì)運(yùn)營商沒有明顯好處的應(yīng)用程序很難被發(fā)行。我希望的模式是允許任何人開發(fā)軟件,也可以將其提供給任何想使用該軟件的人,同時(shí)不影響用戶的安全性,也不用向運(yùn)營商付錢。Web就是這樣的模式。但不幸的是,Web本身已經(jīng)被少數(shù)大型公司所占領(lǐng)。我希望Web可以被一個(gè)更好、更開放、更安全的應(yīng)用交付體系取代,但現(xiàn)在似乎還看不到希望。

 

李松峰問:要掌握J(rèn)avaScript的運(yùn)行原理,除了閱讀您的這本著作,通讀并研究ECMAScript規(guī)范本身是否也是個(gè)好辦法?

道格拉斯答:我的確是從ECMAScript規(guī)范中學(xué)習(xí)JavaScript的。但需要提醒一點(diǎn),ECMAScript規(guī)范的初衷并不是給普通開發(fā)者看的,而是給語言引擎實(shí)現(xiàn)方看的。雖說規(guī)范的質(zhì)量在ES5中有顯著提升,但通讀起來仍然不易。說到底,要靠熟能生巧。

 

臨淵羨余·修問:JavaScript學(xué)到什么程度算是精通?

道格拉斯答:我會(huì)在我“精通”JavaScript之日告訴你。但就目前來看,我仍然需要頻繁查閱文檔。通常情況下,我翻閱的是MDN,但偶爾也會(huì)復(fù)習(xí)自己寫的書。

 

穆木問:工作多年,我總覺得做了許多重復(fù)性工作。您認(rèn)為前端工程師應(yīng)該如何平衡工作與學(xué)習(xí)?

道格拉斯答:這是個(gè)好問題。我建議你寫一些真正屬于自己的程序。如果它們看起來不錯(cuò),就考慮將其開源。作為一個(gè)面試官,我喜歡看看應(yīng)聘者的開源項(xiàng)目。我可以從中了解他們的編碼質(zhì)量及所選擇解決的問題。

 

灰熊問:怎樣才能具備創(chuàng)造一門熱門語言的能力?

道格拉斯答:我很想給你一些關(guān)于目標(biāo)和所需技能的建議,但老實(shí)說,這主要看運(yùn)氣。有很多優(yōu)秀的語言明珠暗投,也有很多平庸的語言熠熠生輝。

 

老梗問:您信仰阿特伍德定律嗎?也就是,“任何可以用JavaScript來寫的應(yīng)用,都終將用JavaScript來寫”。如果讓您重新設(shè)計(jì)一遍JavaScript,您會(huì)在設(shè)計(jì)之初避免什么問題呢?

道格拉斯答:與其說它是個(gè)定律,倒不如說是個(gè)妙梗。我在本書中花了整整五章來勾勒出Neo語言的模樣。可以說,它糾正了JavaScript的所有先天缺陷。

主站蜘蛛池模板: 揭阳市| 当阳市| 三台县| 尼勒克县| 伊金霍洛旗| 开江县| 吴旗县| 晋宁县| 武鸣县| 常山县| 青田县| 秭归县| 仙居县| 花莲市| 广州市| 星子县| 棋牌| 武鸣县| 西贡区| 炉霍县| 乾安县| 岳池县| 灌南县| 长沙市| 深州市| 镇安县| 普兰店市| 咸宁市| 洛浦县| 临漳县| 阳原县| 沭阳县| 平原县| 渭源县| 石景山区| 响水县| 颍上县| 鹰潭市| 赣州市| 库伦旗| 建瓯市|