寫了兩年多的js了吧,一開始的目標並無很學術,我只想安安靜靜作個很厲害的開發者。可是老是沉溺在一種語言裏,會讓人誤覺得這種語言很厲害,就像只在村子裏混的話,我以爲我本身能夠逆天,村外有人,編程世界也須要出去走走,因此我想寫一下學習js這段時間所看到的東西,做爲出發前的檢討javascript
我是Javascriptphp
javascript做爲一種解釋型語言,執行效率很低,雖然在google v8的推動下,性能提升了幾十倍,可是依然是要比中低級語言的性能差不少,因此網頁性能很難上去,瀏覽器呈現網頁的能力仍是有限的,webAssembly成爲突破這種有限的可能。對了,提及個人身世,很重要的是二十多年前,一個偉大的程序員爲了完成老闆的任務用十天的時間製造了我,因此,大家會知道我其實自己會有不少自打出身就擁有的毛病,好比我是解釋型和弱類型的,再好比我只是寫在瀏覽器的腳本文件裏的,因此你們起初使用我都是比較混亂的。還有typescript,nodejs,coffeescript,react,angular,vue什麼的都是在說我。後來你會明白說web好像就是再說我同樣css
瀏覽器的不服輸前端
回顧一下web和h5vue
之前的網頁都是靜態頁面,php和jsp的後端開發們替前端們寫頁面和js腳本,這些都是由於js很菜,網頁搞不了什麼名堂。java
世界在改變,瀏覽器執行代碼和cpu執行代碼都是執行代碼,憑什麼js要輸,因此nodejs v8 h5出現了。node
技術和經濟的互相推進react
h5規範一出現,canvas和vedio就淘汰了flash,網頁三劍客什麼的都變成了歷史故事。webpack
而v8的出現致使了前端渲染和單頁應用,渲染再也不是php和jsp作的事情了。css3
nodejs讓js的開發變得工程化,同時也挺身成爲了一個不錯的後臺語言。
固然這些事情都被營銷者們看在眼裏,他們注視着這些變化,去探究裏邊的每個商機。
市場所賦予的名利
網頁傳播成本很低,網頁的生產成本也很低,網頁能作這麼多事情,這即是一個偉大的商機
這個商機包括建站開發,h5開發,豐富的網頁應用以及小程序應用
商業的發展和技術的發展老是互相驅動的,有人投資就有人搞事情,技術的發展製造的商機也會讓投資者更加願意投入資金進去,這是一個良性循環
因此這便迎來了h5最火爆的時期
短短的三四年時間裏 js從一個無人問津,被看成玩具的語言躋身成爲了一個很受歡迎,需求巨大的語言
js的獲取的名利讓更多的人介入其中,也讓他得以蓬勃發展,好比nodejs,react,angular,天才華裔尤雨溪,rn,webpack,css3,h5,ecma2015-2018等等等等
哦對了,比較可怕的是webVR也出來了,想當年咱們瀏覽網頁只是爲了百度百科,如今均可以玩vr遊戲了,發展的很牛逼吧
執行效率的提高
無論什麼執行效率,這些對於開發者之外的全部人來講都只是兩個字,體驗,
執行效率和網速,帶寬和寬帶,光纖,js仍是jsp .net除了開發者之外,其餘人一律不會思考,反應在瀏覽器上就是打開的快不快。
什麼canvas flash vedio,響應式,組件化對於用戶來講也只是炫不炫
什麼UI UE UX 對用戶都是舒不舒服
至此感謝http協議 ws協議 GPU以及英偉達 英特爾 AMD 光纖傳輸 廣電總局爲提升執行效率在背後做出的貢獻
其實說白了就是js效率的提高,從另外一個層面上來看是網速變快了和CPU 變強大了 GPU加速渲染了
入侵了APP和後端
這種名利和發展也讓js獲得了史無前例的經濟驅動,js彷佛不但願本身只是混跡在瀏覽器圈子裏的人物了,nodejs和react分別做爲js的表明在後端界和app界得到了崇高的地位。
這兩個事情也讓js贏得了新的名利,一切均可以用js完成,桌面端,app端,瀏覽器端,後端都有個人身影。
因此js工程師也變得更加受歡迎,由於想要開發一個應用程序,我只須要招js就行了。
全棧在js上變得彷佛很實際
CPU能夠作的瀏覽器應該都能作
說到這裏,js彷佛能夠作不少事情了,不少人會以爲我爲我是一個jser而自豪,我爲我學到了世界上最划算的知識而感到慶幸
加入當時的js設計者可讓js的詬病少點,執行效率高一些的話,那麼js或許要遠遠不止如今的火爆,獲取不少年前就風靡了,而不須要等到網絡大發展和硬件大發展以後。
其實js並非那麼強,好比LOL不能用js開發吧,有人說一切都有可能,如今的webVR不是js寫的麼
其實說js不能寫LOL,不是說js的API不夠,也不是說js寫不了炫酷的效果,只是說js性能的問題會致使他老是開發一些性能要求並不高的東西
這也能夠看出js出於自己語言特性的緣由致使的瓶頸
我相信js可能寫出在任何環境場合平臺運行的hello world,但我不相信js能夠寫出比它性能高的語言寫的性能更好的程序
開始提到了webAssembly,這玩意呢,可讓其餘語言被瀏覽器執行,效率很高很高,這是一個是性能的突破口
還有一個突破口諸如typescript,dart之類的,固然也很難比c++快,對吧
不幸的消息是這些是瀏覽器端應用豐富的一個途徑,但也是js地位在瀏覽器端被動搖的極大可能
javascript的可能
js的可能老是那麼有趣,我不會懷疑它的樂趣,但會懷疑它的地位,或許終究會被取代,也可能得到了新的方式,也或者性能的大發展,讓開發語言之間的。就像加入過有錢,服務器足夠多的話,那麼數據庫的不少優化好像就不必了
js仍然是一個不二選擇,由於它很優秀