微軟雄心勃勃,意欲將JavaScript打造成次世代贏家
譯文【51CTO.com 8月17日外電頭條】分析意見:JavaScript是面向微軟Office軟件以及Windows平臺的***腳本實(shí)現(xiàn)方案
全世界的開發(fā)人員都有受虐傾向嗎,否則微軟怎么會不顧一切負(fù)面反響,堅持在推廣HTML5以及JavaScript的道路上一往無前呢?本來微軟當(dāng)初只表示會將Web標(biāo)準(zhǔn)集成于下一個版本的Winodws系統(tǒng)當(dāng)中,而如今的說法卻變成了將在Office系列軟件中引入相同的機(jī)制——這下子日常應(yīng)用的兩大領(lǐng)域同時淪陷,開發(fā)人員卻除了抱怨之外完全無可奈何。為什么會這樣?
我們先來說說Office領(lǐng)域的重大變革:用戶能夠通過Visual Basic for Applications(簡稱VBA)在Office組件中定義腳本,而VBA本身是微軟專有腳本語言Visual Basic 6中的一個子集。眾所周知,VB 6是一套語法相當(dāng)丑陋蹩腳的垃圾語言;微軟早在2008年就停止為其提供各項技術(shù)支持,而我迄今為止也沒有見過哪位開發(fā)人員為其消亡而感到惋惜。然而,正如古語所說老而不死是為賊,VBA再次毫無節(jié)操地滲入我們的工作。
我們不必自欺欺人,說什么VBA“只是一款腳本語言”之類。無論此種論斷正確與否,我們必須承認(rèn)自己的整套業(yè)務(wù)應(yīng)用程序都被寫成Excel宏的形式,而不放棄這些應(yīng)用的同時也就意味著不得不引入VBA。
不要以為眾多企業(yè)都在面臨這一問題,就代表事態(tài)終會有所好轉(zhuǎn)。微軟曾經(jīng)一度希望將VBA打造成Windows應(yīng)用程序領(lǐng)域的通用腳本語言。為此,VBA執(zhí)行環(huán)境被主動提供給第三方軟件開發(fā)商,以期在相關(guān)應(yīng)用程序中得到廣泛普及。然而微軟于2007年雪藏了該程序,也就是說我們當(dāng)下乃至將來都不可能獲取到任何支持VBA的新應(yīng)用程序。
壞消息還不止這些。Office系列軟件可能會跨平臺發(fā)展,但微軟卻為Office 2008 Mac版額外添加了VBA支持內(nèi)容。而且直到***的Office 2011版本,相關(guān)內(nèi)容仍然沒有得到徹底清除。一段給定的VBA代碼是否能夠正常執(zhí)行主要取決于大家所安裝的操作系統(tǒng)平臺及Office軟件是哪個版本。
腳本語言改朝換代之期已近
不消說,VBA如今的狀態(tài)相當(dāng)尷尬,而且該語言顯然沒有前途可言。盡管做出了繼續(xù)支持遺留的VBA代碼的承諾,實(shí)際上微軟為用戶提供另一套可靠的替代方案只是時間問題。那么為什么不考慮JavaScript呢?從客觀角度來說,我能夠舉出一大堆理由,證明其***意義的光明前景:
1. JavaScript具有龐大的裝機(jī)量基礎(chǔ)。
它與八十年代的Basic語言一樣,幾乎無處不在。孩子們通過它來完成學(xué)校布置的課業(yè)項目。無論大家對這種語言有多少非議——需要強(qiáng)調(diào)的是我并非該語言的擁護(hù)者——在僅以文字處理及表格制作為目的的日常應(yīng)用中其功能局限可謂影響甚微。至少它的語法結(jié)構(gòu)遠(yuǎn)遠(yuǎn)勝過VBA。而且鑒于利用JavaScript代碼編寫的程序浩如煙海,加之絕大部分都已經(jīng)成功運(yùn)行于Web之上,我們可以很輕松地為常見問題找到合適的解決方案。
2. 微軟并非***家或惟一一家推廣JavaScript的企業(yè)。
Adobe已經(jīng)允許用戶利用JavaScript為其專業(yè)圖形應(yīng)用程序編寫腳本——其中包括Photoshop、Illustrator以及InDesign等——且這一支持可以追溯到十年前的***Adobe Creative Suite版本中。既然它在Adobe那些大型多功能應(yīng)用程序中可以運(yùn)行良好,微軟將其部署于Office軟件中也不會有太大問題。
3. JavaScript運(yùn)行環(huán)境部署成本低廉。
微軟已經(jīng)開始致力于開發(fā)用于IE瀏覽器的高性能JavaScript執(zhí)行引擎。對Windows及相關(guān)應(yīng)用程序代碼的重復(fù)利用意味著微軟并不打算為類似VBA這樣的時代棄兒提供額外支持資源。此外,通過一套共享JavaScript函數(shù)庫,微軟堆棧中的每個層都將同時獲得由***JavaScript帶來的性能提升。
4. JavaScript在跨平臺方面表現(xiàn)優(yōu)異。
IE瀏覽器中的JavaScript引擎只能在Windows系統(tǒng)上生效,但對于其它平臺來說還有很多替代方案,例如運(yùn)行Mac OS X上的、作為WebKit組件之一的JavaScriptCore引擎。這就使得Mac版本Office的應(yīng)用程序腳本能夠與Windows版本具備相同或相近的優(yōu)良表現(xiàn)。副作用也是有的,以O(shè)penOffice.org為代表的后備生產(chǎn)力套件沒準(zhǔn)會提供更為簡單便捷的Office文檔、宏以及其它內(nèi)容的閱讀功能。時至今日,這些候選級套件只為VBA類宏提供一部分支持。
5. JavaScript能夠運(yùn)行于網(wǎng)頁。
根據(jù)工作職能公告,微軟為Office 15制訂的目標(biāo)是允許開發(fā)人員“創(chuàng)建跨客戶端及服務(wù)器的豐富應(yīng)用程序”。預(yù)計Office 365中就將整合進(jìn)基于網(wǎng)頁的生產(chǎn)性產(chǎn)品。如果Office的標(biāo)準(zhǔn)腳本語言采用JavaScript的話,開發(fā)人員將可以使用同一種語言自動處理桌面Office應(yīng)用程序以及網(wǎng)頁副本中的內(nèi)容。JavaScript在幫助開發(fā)人員利用Office 365處理在線文檔的服務(wù)方面也大大強(qiáng)過VBA。
6. JavaScript能夠運(yùn)行于移動設(shè)備之上。
在當(dāng)初由Office 2010所引發(fā)的爭論中,要點(diǎn)是其為“涵蓋PC、手機(jī)以及瀏覽器的廣大設(shè)備范疇提供***的生產(chǎn)力體驗。”到目前為止這一想法還只是一廂情愿,但通過將更多Office功能項目定向于開放式Web標(biāo)準(zhǔn),微軟已經(jīng)在為移動設(shè)備提供有價值的生產(chǎn)力體驗方面邁出了決定性的一步。
JavaScript真的是將在Windows系統(tǒng)上沿用到底的***一款腳本語言嗎?我個人最想看到的是微軟將Office領(lǐng)域的JavaScript腳本功能整合到Windows 8中飽受爭議的JavaScript引擎當(dāng)中。Mac OS一直以來都將AppleScript當(dāng)作固定選擇,這使得腳本得以在Finder以及各類應(yīng)用程序之中發(fā)揮作用。AppleScript并不是一種堪稱***的解決方案,但要在Windows平臺上達(dá)成類似的效果總需要用到第三方出品的自動化工具。如果微軟將JavaScript視為整個Windows系列平臺的基礎(chǔ)性腳本語言,這款工具的價值對于用戶及開發(fā)人員來說(而且這樣一來客戶不必再為了運(yùn)行相關(guān)應(yīng)用程序腳本而使用VBA,開發(fā)人員也就無需自責(zé)了)將無可限量。
微軟能將上述優(yōu)勢盡數(shù)加以有效利用嗎?他們是否真會在基于JavaScript的腳本解決方案上掀起技術(shù)革命的巨浪,以下一代Windows與Office系列軟件為前哨站,進(jìn)而為操作系統(tǒng)、桌面應(yīng)用程序、Web以及移動領(lǐng)域帶來大一統(tǒng)的局面呢?實(shí)話實(shí)說:可能性不大。。。但無論如何,微軟已經(jīng)發(fā)布了相關(guān)聲明,這一標(biāo)志性的聲明也許將***我們走向更加美好的未來。
當(dāng)然,除了JavaScript之外我們還有VBA,這正是微軟眼下提供給我們的工具。說說吧,尤其是那些還在抱怨個不停的朋友們——到底哪套方案更貼心些?
原文鏈接:http://www.pcworld.com/article/238011/microsofts_javascript_focus_is_a_winner.html#tk.hp_new
【編輯推薦】
- jQuery之父訪談錄:JavaScript和HTML一樣長壽
- 7個優(yōu)秀的JavaScript資源推薦
- JavaScript閉包 懂不懂由你反正我是懂了
- jQuery是如何工作的
- 云端JavaScript漫游指南(視頻)