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