JavaScript的內(nèi)部人士披露其未來(lái)發(fā)展方向
譯文【51CTO.com快譯】ECMAScript內(nèi)部人士表示,雖然新型功能目前仍存在一些復(fù)雜問(wèn)題,但其對(duì)JavaScript在未來(lái)版本中將其納入繼續(xù)保持信心。
曾幾何時(shí),JavaScript因發(fā)展速度緩慢而受到詬病。然而如今,其發(fā)展速度又開(kāi)始突然加快,特別是在去年的ECMAScript 2015規(guī)范當(dāng)中。在未來(lái)幾年中,開(kāi)發(fā)者們也許會(huì)看到更多類似于類型系統(tǒng)及多線程機(jī)制的創(chuàng)新成果。
在本周一于舊金山召開(kāi)的QCon會(huì)議上,Stefan Penner與Jafar Husain闡述了他們對(duì)于JavaScript未來(lái)發(fā)展的預(yù)期。Penner與Husain皆為ECMAScript規(guī)范流程中的關(guān)鍵性內(nèi)部人員; 而ECMAScript亦是JavaScript基礎(chǔ)之上的一套官方規(guī)范,并由Technical Committee 39委員會(huì)負(fù)責(zé)打理。
在被問(wèn)及作為微軟旗下的JavaScript超級(jí)子集,TypeScript會(huì)對(duì)JavaScript的未來(lái)發(fā)展造成何種影響時(shí),TC39委員會(huì)的領(lǐng)英公司代表Penner表示,他對(duì)此感到非常興奮,但該委員會(huì)卻對(duì)向JavaScript本身添加類型系統(tǒng)抱有疑慮。“這類工作很有可能引發(fā)問(wèn)題,”他指出。雖然該委員會(huì)也承認(rèn)這方面舉措能夠帶來(lái)的積極影響,但除了正面價(jià)值之外,潛在風(fēng)險(xiǎn)亦需要高度關(guān)注。
TC39委員會(huì)中Netflix公司代表兼高級(jí)開(kāi)發(fā)者Husain亦表達(dá)了謹(jǐn)慎的態(tài)度,他表示“如果在類型系統(tǒng)當(dāng)中犯下錯(cuò)誤,那么Web就會(huì)出現(xiàn)嚴(yán)重問(wèn)題。”該委員會(huì)目前正因更多復(fù)雜性元素的引入而對(duì)此抱保留意見(jiàn),Husain解釋稱。
他們也在認(rèn)真考慮多線程方面的提議,其核心基礎(chǔ)在于立足低級(jí)別原語(yǔ)在多個(gè)線程之間建立共享數(shù)組緩沖區(qū),Penner表示。亦有建議稱,各Web工作程序間可并行協(xié)作,從而使用于運(yùn)行腳本的Web內(nèi)容在后臺(tái)線程中執(zhí)行,不過(guò)其同樣會(huì)帶來(lái)復(fù)雜性因素。Husain指出,盡管并行機(jī)制能夠利用多核心處理器實(shí)現(xiàn)性能提升,但其“是個(gè)非常復(fù)雜的問(wèn)題,”與類型系統(tǒng)相似。
計(jì)劃已久的異步功能亦被提上議事日程。Husain提供了一份2018年的預(yù)估時(shí)間表,但他尚不確定這項(xiàng)功能何時(shí)才會(huì)真正實(shí)現(xiàn)。“大家可能會(huì)說(shuō),‘建立一套異步工作流,指定它做這、做那、再做這。’這雖然也屬于異步機(jī)制,但卻并不需要注冊(cè)回調(diào),”他解釋稱。這樣的代碼看似異步,但實(shí)際上卻仍然是在同步運(yùn)行。
ES2015是一個(gè)龐大的工程,Penner表示。其升級(jí)主要集中在語(yǔ)法與結(jié)構(gòu)改進(jìn)方面,但“其也使得一些人對(duì)JavaScript的快速演進(jìn)感到疲勞”,因?yàn)橐磺凶兓紒?lái)得太快了,他指出。2015版本中的功能早在2010年就開(kāi)始出現(xiàn),但該委員會(huì)并不希望簡(jiǎn)單將這一切添加到JavaScript語(yǔ)言當(dāng)中。因此,面向ECMAScript的功能需要經(jīng)過(guò)多級(jí)演進(jìn),其中0級(jí)代表著思路成形,而5級(jí)則代表著功能實(shí)現(xiàn)。而4級(jí)功能則意味著該功能確實(shí)擁有很好的發(fā)展與市場(chǎng)接納前景。
原文標(biāo)題:JavaScript insiders predict its future features
原文作者:Paul Krill
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】