最流行的編程語言 JavaScript 能作什麼?

首先很遺憾的一點是,「PHP雖然是最好的語言」,可是它不是最流行的語言。
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f7361642e6a7067
同時對不起的還有剛剛在4月TIOBE編程語言排行榜上上榜的各個語言:
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f74696f62652e706e67
大家都很棒,可是大家都擔當不了這個大任。javascript

在開始以前,我先說一下我經常使用的三個語言:Java、JavaScript、Python。前端

Java,讓我學到了不少架構層級的知識,這一點能夠參考我以前寫的架構相關文檔。雖然我一點兒也不喜歡這個語言,可是它真的很棒。java

Python,它真的足夠簡單,以致於我喜歡拿它學習各類理論知識,如推薦系統、貝葉斯定理、天然語言處理等等。android

JavaScript,看下文。ios

數據可視化數據庫

在過去我閱讀的一些書籍裏面,主要是以Processing做爲可視化的語言——它起始於2001年,它最初是面向美術工做者和設計者建立的,後來變成了全面的設計和原型工具,能夠用於建立複雜數據可視化領域。編程

687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f70726f63657373696e672e706e67
Processing被帶入了到Web領域產生了Processing.js,還出現了D3.js。
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f64336a732e6a7067
固然還有Plotly、Leaflet、Sigma JS等等的工具。windows

移動端應用: Cordova瀏覽器

接着就是PhoneGap(今天的Cordova),將WebView帶向了移動應用,也將JavaScript帶向了移動應用。架構

687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f636f72646f76612e706e67
使用Cordova,可讓咱們一次開發多平臺發佈。咱們也順便提一下Ionic,做爲混合應用的翹楚:
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f696f6e69632e6a7067

移動端應用: React Native

既然咱們已經提到了Cordova,那麼咱們也應該說說React Native。也是一次開發屢次運行:
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f72656163742d6e61746976652e706e67
雖然它的坑還有不少,可是仍是值得期待的。

移動端平臺: DeviceOne

既然咱們已經提到了React Nativie,那麼咱們也應該說說DeviceOne。也是一次開發屢次運行:

436418-20160429081532283-1820355077.png
目前惟一一個使用javascript來實現原生跨平臺的(android、ios、windows)。

服務端:Node.js

正是V8的性能將JavaScript帶到了一個新的高度,因而Node.js誕生了——前端、後臺均可以用JavaScript,一個JavaScript的全棧時代。

687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f6e6f64656a732e706e67
Mongodb做爲數據庫,Express做爲Server端MVC,他們能夠提供一個RESTful服務,那麼再加上MVVM框架的Angular.js,你就知道我在說什麼!
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f6d65616e2e706e67
桌面應用: NW.js 和 Electron

NW.js 是基於 Chromium 和 Node.js 運行的, 它們可讓咱們用HTML和JavaScript來製做桌面應用。除了NW.js還有最近比較火的Electron,Atom編輯器的
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f656c656374726f6e2e706e67
與Cordova的多平臺構建多版本不一樣的是,Electron能夠在一個平臺上構建多個平臺的應用。即咱們能夠在Mac OS上打包出Linux和Windows上的應用,而不須要在Windows再編譯一次。

帶向了桌面端,讓桌面和Web保持了一致。最成功的案例就是估值達30億美圓的Slack:
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f736c61636b2e6a7067
So,若是你使用桌面端的Slack就會很卡。

全平臺應用

我曾經寫過一篇《一份代碼構建移動、桌面、Web全平臺應用》,在Eletcron上運行Ionic,就意味着無限的可能性。

遊戲

自從WebGL被帶入瀏覽器的那一刻,就決定了這又是一個新的天地。
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f68746d6c352d67616d65732e6a7067
讓咱們忘記編譯、啓動更新、外掛等等的問題,而且咱們還能夠一次開發直接運行。

VR

若是你看到過以前的那篇《JavaScript在VR世界的應用》,那麼你就會對這個內容有更多的印象。

主要思想仍是經過WebView來渲染VR視角:
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f74687265656a732d6f63756c75732e6a706567
而且各瀏覽器產商各在推動WebVR 爲虛擬現實設備顯示提供支持。

AR

雖然大部分的AR應用可能離咱們有點遠,可是離咱們最近的就是Leap Motion——它能夠利用手掌和手指動做來進行輸入,但無需手部接觸或者觸摸。
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f61722e6a7067
同理於VR,讀取傳感器的數據,再將其手勢交由瀏覽器端來處理。詳細能夠參考我以前寫的:《Leap Motion JavaScript開發 手勢控制基礎篇》

硬件

早先我看到了Arduino在編譯的時候以DSL的方式封裝了API。而NodeMCU則內建了Lua語言的支持,可讓開始者使用Lua來開始。 而Tessel 原生就提供了JavaScript運行環境,咱們寫須要寫好JavaScript就能夠在上面運行。
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f74657373656c322e6a7067
Tessel 2屬於配置比較高的硬件,而低配的呢?

三星設計了JerryScript引擎,它可以運行在小於64KB內存上,且所有代碼可以存儲在不足200KB的只讀存儲(ROM)上。
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f696f746a732e706e67
想一想就以爲將來是美好的。

物聯網

等等,上面三星推出的是IoT.js,這就意味着它已經能夠在物聯網領域中應用了,爲何還會有這裏的應用呢?我只是想稍微提一下這個:
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f696f742d6e6f64656a732e6a7067
上面說到的只是Node.js在Web中的應用,而物聯網和Web的很大不一樣之處在於,物聯網可使用各類不一樣的協議,而這些協議都須要Node.js對其的支持。

所以,若是咱們須要開始Web版、移動應用,那麼咱們天然更須要其做爲後臺。

操做系統界面

雖然更好的機器帶來了更好的性能,可是顯然人們對於原生應用的需求並無那麼強烈。Firefox OS已經在移動操做系統敗下陣來,可是這個操做被帶到了物聯網領域:
687474703a2f2f61727469636c65732e70686f64616c2e636f6d2f6a6176617363726970742f66697265666f782d6f732e6a7067
這就意味着,咱們可使用JavaScript來開發操做系統的界面了。

你以爲JavaScript還能作什麼?

相關文章
相關標籤/搜索