JavaScript 征服了網頁,下一步是要接管電腦桌面的程式語言
JavaScript 誕生於 1995 年,主要是為了彌補&lt;blink&gt;標籤不能給網頁帶來更多的動態操作。如今,它有了更強大的用途。例如Google和 Facebook 這些公司開始利用 JavaScript 構建類桌面的複雜網頁應用;自從 2009 年 Node.js 的發布,它也成為了最流行的構建伺服器端軟體工具語言之一。<div class="summary "> <div class="info"> <div class="wrap">現在,JavaScript &nbsp;不僅僅在網頁中使用,它正在以自己的方式在向桌面程式滲透。</div> </div> </div> <div class="content medium"> <p><a href="https://github.com/electron/electron">Electron</a> 是由 Github 創建的一個軟體工具開發平台,它可以支援開發者使用 JavaScript 以及其它類似 HTML 和 CSS 的網頁技術來創建桌面應用程式,所做出來的程式可以在 Windows,Macintosh OS X 和 Linux 系統上執行。該公司最近發佈了 Electron 第一版。</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://cdn1.techbang.com.tw/system/images/347726/original/6e71b4d24c4d5affa097dece81576a63.png?1463224685" alt="" width="600" height="334" /></p> <p>不過,在這之前,其實許多科技巨頭已經發佈自家的工具來推廣 JavaScript 。</p> <ul> <li>去年,微軟發佈了一款叫 Visual Studio Code 的程式碼編輯器,這個編輯器是使用 Electron 構建。</li> <li>聊天群組應用獨角獸公司 <a href="http://www.wired.com/2014/08/the-most-fascinating-profile-youll-ever-read-about-a-guy-and-his-boring-startup/">Slack</a> 使用 Electron 搭建了桌面客戶端。</li> <li>創業公司 Nylas(因為 <a href="http://www.wired.com/2014/07/inbox/">Inbox</a> 而被人們熟知)使用 Electron 構建了一套完整的電子郵箱客戶端。</li> <li>JavaScript 語言發明人 Brendan Eich 成立的公司 <a href="http://www.wired.com/2016/01/the-creator-of-javascript-wants-to-blow-up-the-ad-industry/">Brave</a> 使用 Electron 開發了一套全新完整的網頁瀏覽器。</li> </ul> <p>&nbsp;</p> <p>或許你會問,現在有數不盡的其它方式、各種工具來搭建桌面應用程式,為什麼這些公司還要使用 JavaScript?</p> <p>JavaScript 在伺服器開發語言中處於成長的狀態,隨著 Node.js 的出現,開發者已經有了好幾種方式來搭建服務器端的網頁應用程式。但是 JavaScript 卻反而在桌面端變得更加流行,因為開發者可以使用同一種語言來完成應用程式的瀏覽器端和伺服器端的開發。這說明有利於使其成為網頁的通用語言。這麼廣泛的應用 JavaScript ,自然而然下一步就是要去統一桌面開發程式語言。</p> <h2><strong>對每一個人開放</strong></h2> <p>許多使用 Electron 的公司正在構建不同的開源軟體工具,這意味著任何人都可以獲取查看和修改軟體工具程式碼。瞭解你的開源程式碼的人越多,那麼修復 bug 和在原有工程上增加新的特性的人也就越多。透過使用 JavaScript,這些公司給那些瞭解 JavaScript 語言但對傳統桌面應用開發語言比如 C++不熟悉的網頁開發者打開了一扇大門。</p> <p>例如,創業公司 Jibo 使用 Electron 來作為他們的機器人個人助手開發平台,因為這個團隊想要使第三方開發者更容易的為機器人編寫他們自己的程序。Jibo 的開發者 Jonathan Ross 說:「我們想使入門的門檻儘量低,因此我們立刻將目光瞄準到了遊戲開發者和網頁開發者。」</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="http://cdn3.techbang.com.tw/system/images/347727/original/1877564d6674a24482f261a07c810bbb.png?1463224865" alt="" width="600" height="279" /></p> <p>起初為什麼要建立 Electron,是出於什麼目的呢。Electron 最初是用來為了開發 <a href="https://atom.io/">Atom</a> 而建立的平台,Atom 是 GitHub 開發的一款程式碼編輯器。因為 GitHub 的聯合創始人 Chris Wanstrath 去年在接受 Wired 採訪時表示:他想要利用JavaScript 開發一款程式碼編輯器,幫助網頁開發者可以根據自己的瀏覽習慣而設置。</p> <p>Wanstrath 說:「配置我的編輯器是我日常的一件事,但是更有效率的方式是我能使用其它人已經開發好的方式來配置。」</p> <p>在網頁瀏覽器上執行的應用程式數量是呈現下降趨勢的。在 Nylas 的負責前端開發的 Ben Gotow 說:「用 Electron 開發的應用程式需要相當大的開銷。」但是這些開銷是值得的,因為 Electron 不僅僅可以使用一種流行語言。使用 JavaScript 創建桌面應用程式,可以使開發者選擇大量免費的程式庫和框架。例如,Electron 開發者可以從網上眾多的開源認證資料庫裡頭找到一個登錄模組,而不是自己創建編寫一個登錄系統。</p> <p>Gotow 說:「我們能夠只用一年就可以開發一個相當相當不錯的電子信箱的客戶端,這是相當難以置信的。」</p> <p>&nbsp;</p> <h2><strong>現在開始,努力學習JavaScript</strong></h2> <p>使用網頁技術來開發桌面應用的想法現在已經不是什麼新鮮事了。Adobe 的 AIR 系統可以允許開發者使用該公司的 Flash 平台來構建桌面應用程式,一家叫做 <a href="https://www.appcelerator.com/">Appcelerator </a>的小型公司現在正專注於行動應用程式的開發,該公司以前是提供利用 HTML 和 JavaScript 構建桌面應用程式的工具。最近,一個開發團隊創立了 <a href="http://nwjs.io/">NW.js</a>,原名是 Node Webkit。</p> <p>在 2014 年,GitHub 團隊發現缺少可選擇的開發平台,因此他們創建了自己的開發平台,並且發佈到全世界。GitHub 的產品副總裁 Kakul Srivastava 說:「我們認為好的應用程式都應當可以被任何人獲取。」</p> <p>在 GitHub Electron 計畫工作的 Jessica Lord 說:Electron 的出現使開發更有效率。Electron 加入了 Chromium 計畫,但是使用了一個精簡版本,Chromium 計畫是Google Chrome 瀏覽器的一個開源計畫。這使得開發團隊能夠更容易的專注開發新的特性,因為他們不需要對每個 Chromium 的版本進行測試,才知道是否不支援 Electron 的特性。</p> <p>GitHub 的努力漸漸的取得了回報。在 Electron 發佈的這兩年裡,目前已經有超過 300 &nbsp;位開發者來對該計畫進行開發和維護,下載量更是超過了一百萬次。</p> <p>但是,競爭同樣也變更激烈,NW.js 目前依然在提升和改進,Facebook 已經發佈了自家名叫 <a href="https://facebook.github.io/react-native/">React Native</a> 的 JavaScript 框架,該框架允許開發者跨平台開發,包括 Windows, Xbox, iOS, 和 Android平台。</p> <p>無論是開發者使用哪個框架和平台,JavaScript 已經在桌面應用程式中佔據了一席之地。對於用戶來說,線上和線下的區別正在變的模糊,現在,這對於程式碼本身也是如此。</p> <p>&nbsp;</p> <ul> <li>文章來源:<a href="http://www.wired.com/2016/05/javascript-conquered-web-now-taking-desktop/">WIRED</a>,</li> <li><a href="http://tech2ipo.com/10029879" target="_blank">TECH2IPO / 創見 趙旭編譯</a></li> </ul> </div><a href="http://www.facebook.com/TKbang">加入T客邦Facebook粉絲團</a><img src="http://feeds.feedburner.com/~r/techbang/~4/5FUgwsdtmm0" height="1" width="1" alt=""/>











































