【玖哥亂彈】神通廣大的JavaScript

一切能夠用 JavaScript 編寫的程序,最終都會使用 JavaScript 編寫前端

——Atwood 2007程序員

 

就在前幾天「JavaScript是世界上最好的語言」這句話火了,PHP的地位遭受了史無前例的挑戰。JavaScript到底有何神通,能登上世界上最好的語言的寶座?web

 

JavaScript是誕生於1995年的一種直譯式腳本語言,原名Mocha。JavaScript是一種動態類型、弱類型、基於原型的語言,內置支持類型。JavaScript具有簡單靈活和跨平臺的優點,會成爲解決大部分IT問題的優選方案。著名程序員 Jeff Atwood 在2007年發佈了著名的 Atwood's Law: 「Any application that can be written in JavaScript, will eventually be written in JavaScript. (一切能夠用 JavaScript 編寫的程序,最終都會使用 JavaScript 編寫)」。就像世界上大多數人都是白種人同樣,GitHub上用JavaScript寫的代碼也佔據了大多數,JavaScript的開放性和簡潔性功不可沒。npm

 

網頁前端小程序

JavaScript最初是用來給HTML網頁增長動態功能的。與JavaScript同時出現的JScript、ActionScript和ScriptEase等都幾乎銷聲匿跡,但JavaScript仍然被普遍用於Web應用開發,也用來爲網頁添加各式各樣的動態功能,爲用戶提供更流暢美觀的瀏覽效果,甚至成爲了前端開發的代名詞,這就說明了JavaScript的強大之處。瀏覽器

 

爲傳統企業作一個展現網站一般耗時以周計,此時開發者只要找一個模板就夠了。而開發時間以月計的互聯網公司前端開發工做就不得不選擇一個合適的框架了,如下是世界主流的JavaScript前端開發框架和類庫:服務器

 

出自Google的前端開發框架Angular.js自帶MVC框架,經過新的屬性和表達式擴展了 HTML,而且經過被稱爲指令(directives)的結構讓瀏覽器可以識別新的語法,如今已經憑藉數據雙向綁定成爲了使用人數最多的前端開發框架。微信

 

來自FaceBook的前端開發框架React.js設計思想是用組件套組件的方式來繪製Web畫面如今你們開發前端的思路早已不是當年的 Web page,而是 Application——傳統的HEML+CSS已經不適合這個時代了,組件化開發即將成爲主流。網絡

 

國內前端專家尤雨溪的前端開發框架Vue.js在GitHub的Star數量已經很是接近React.js,Vue.js能像織蓆販履的劉備同樣與出身名門的Angular.js和React.js鼎足而立的緣由在於提供了更加簡潔、更易於理解的API, 更加輕量級也更加容易上手自帶MVVM架構的Vue.js必將以開源世界中國人的驕傲載入史冊。微信開發

 

體量並不能稱爲一個「框架」的jQuery是一個號稱「Write Less,Do More」的JavaScript類庫,封裝了大多數常見、但寫起來複雜的實用代碼段,如優化HTML文檔操做、事件處理和動畫設計等。

 

服務端和大數據

JavaScript不只適合前端開發,Node.js的出現使得JavaScript程序員進行後臺開發成爲可能。Node.js是一個基於 Chrome V8 引擎的 JavaScript 運行環境其包管理器 npm是全球最大的開源庫生態系統。不管公司自備機房仍是使用阿里雲、金山雲等雲服務,Node.js都是創業團隊的最佳選擇。但由於JavaScript是單線程語言,在處理高併發和大數據等問題上經常力不從心。

 

若是你是一個Android或iOS開發者,服務器僅僅是給本身業餘項目或開源項目用的,那麼Bmob雲(沒錯,Bmob雲端代碼也是JavaScript)也能爲你提供一個小而美、而且價格低廉的服務器。

 

網頁遊戲

網頁遊戲不都是粗製濫造的「一刀999級」或「屠龍寶刀,註冊就送」等圈錢產品,用瀏覽器玩的遊戲也能作到畫面精美、特效絢麗。

 

Cocos2d-x-js是全世界最著名遊戲框架Cocos2d-x專爲HTML5遊戲設計的JavaScript版本,採用原生JavaScript語言編寫。隨着Flash退出歷史舞臺,掌握Cocos2d-x-js技術的程序員就是新一代的閃客。

 

2014年2月創立於北京的Egret是一套完整的HTML5遊戲開發解決方案,其核心產品白鷺引擎(Egret Engine)憑藉上手簡便、性能強大已佔據國內超七成的手機頁遊引擎市場份額。Egret佈道師徐聰(筆名:臭臭打不死人)不但能用本身精益求精的技術和助人爲樂的精神幫助開發者解決使用Erget時遇到的技術問題,還常常向有探索精神、幫助其餘開發者瞭解Erget的開發者贈送禮物。

 

移動端

最著名的HTML5移動開發框架當屬Facebook發佈於2015年的React Native(顧名思義,是上文提到的React.js的一個分支),這是一套跨平臺、動態更新的 Javascript 框架,口號是「Learn once, write anywhere」。與之相似有同屬舶來的PhoneGap等。

 

國產的HTML5開發框架在國內也百家爭鳴,常見的有HBuilder和AppCan,兩者共同特色是都爲了便於新手入門製做了專用的編譯器。2016年,在Qcon大會上宣佈開源的Weex也異軍突起,來自阿里的它由於開發的軟件與原生App別無二致受到不少人的青睞。

 

掌握JavaScript的程序員在國內還有一個新出路,就是微信開發。在國內有7億用戶的微信向廣大JavaScript程序員提供了無數公衆號和小程序開發的就業崗位,而且如今的移動互聯網創業公司或者想涉足移動互聯網的傳統企業均可以先用微信公衆號和小程序試水而沒必要一開始就開發成本高昂、進度緩慢的原生App

 

VR

2016年被譽爲「中國VR元年」,其實VR並不神祕,只要掌握了眼球追蹤和立體視覺,一切3D引擎均可以搖身一變成爲VR引擎。而JavaScript剛好編寫過幾款著名的2D引擎

 

Three.js是3D繪圖協議webGL的一款框架,也是增加最迅速的和討論最熱烈的3D遊戲引擎;React VR是FaceBook今年推出的基於JavaScript框架的虛擬現實建立工具……這些五顏六色的框架大大下降了JavaScript程序員涉足VR的門檻。

 

Egret Engine3D遊戲引擎是國產的3D遊戲引擎,不但網頁兼容性更好,更支持手機瀏覽器,加載也更快,還配套了3D骨骼等配套工具,更具有支持將VR遊戲發佈到微信公衆號及小程序的中國軟件的種族優點。

 

儘管目前VR領域仍然是Unity-3d的時代,VR程序員都是寫C#的,但JavaScript征服VR世界只是一個時間問題。

 

AI

AlphaGo擊敗柯潔的新聞在科技界引起了軒然大波,AI一晚上之間登上了各大送索引擎的搜索榜首。

 

理論上一切圖靈完備的語言都能成爲AI開發語言,而JavaScript正是圖靈完備的。無數JavaScript程序員致力於JavaScript在天然語言處理和手寫識別等領域的研究,目前國外已經出現用JavaScript編寫的人臉識別工具Landmarker.io

 

儘管目前業界主流觀點仍是「AI入門用Python,AI追求性能用C++,AI工業化用Java」,但咱們仍然能夠堅信克服了AI專業庫缺失和沒法精確控制內問題的JavaScript終將在AI領域佔據一席之地。

 

loT

loT比通常的軟件系統多了一個硬件層,這就決定了loT的架構的複雜程度,經常須要多種語言的配合才行:

一、用Arduino給硬件編寫一個控制器

二、用使用C語言編寫的Raspberry Pi鏈接網絡,並傳輸控制信號給硬件

三、用「鉤子語言」Python鏈接以上兩條

四、用Java語言編寫一個Android應用,用手機做爲遙控器

……

萬幸這個須要掌握多種語言才能進行loT工做的時代即將成爲過去式。三星設計了用JavaScript編寫的物聯網引擎loT.js,它的運行內存小於64kb,並且所有代碼可以存儲在不足200KB的ROM上,如此輕量的體積在智能家居等硬件設備上有明顯的優點。因而可知,物聯網也將成爲JavaScript工程師的新藍海。

相關文章
相關標籤/搜索