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

首先很是遺憾的一點是,「PHP儘管是最好的語言」,但是它不是最流行的語言。javascript

Sad

對不起的還有剛剛在4月TIOBE編程語言排行榜上榜的各個語言:前端

Tiobe四月

大家都很是棒。但是大家都擔當不了這個大任。java

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

  • Java,讓我學到了很是多架構層級的知識。這一點可以參考我以前寫的架構相關文檔。儘管我一點兒也不喜歡這個語言,但是它真的很是棒。
  • Python。它真的足夠簡單。以致於我喜歡拿它學習各類理論知識。如推薦系統、貝葉斯定理、天然語言處理等等。
  • JavaScript。看下文。

數據可視化

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

Processing

Processing被帶入了到Web領域產生了Processing.js。還出現了D3.js。git

D3.js

固然還有Plotly、Leaflet、Sigma JS等等的工具。github

移動端應用: Cordova

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

Cordova

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

Ionic

移動端應用: React Native

既然咱們已經提到了Cordova。那麼咱們也應該說說React Native。也是一次開發屢次執行:react-native

React Native

儘管它的坑還有很是多。但是仍是值得期待的。

服務端:Node.js

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

Nodejs

Mongodb做爲數據庫。Express做爲Server端MVC,他們可以提供一個RESTful服務,那麼再加上MVVM框架的Angular.js。你就知道我在說什麼!

mean.png

桌面應用: NW.js 和 Electron

NW.js 是基於 Chromium 和 Node.js 執行的。 它們可以讓咱們用HTML和JavaScript來製做桌面應用。

除了NW.js還有近期比較火的Electron。Atom編輯器的

Electron

與Cordova的多平臺構建多版本號不一樣的是,Electron可以在一個平臺上構建多個平臺的應用。

即咱們可以在Mac OS上打包出Linux和Windows上的應用,而不需要在Windows再編譯一次。

帶向了桌面端。讓桌面和Web保持了一致。最成功的案例就是估值達30億美圓的Slack:

Slack

So。假設你使用桌面端的Slack就會很是卡~~。

全平臺應用

還記得我寫的那篇《一份代碼構建移動、桌面、Web全平臺應用》。在Eletcron上執行Ionic。就意味着無限的可能性。

一份代碼構建移動、桌面、Web全平臺應用

能用Web開發的事情就用Web來完畢就行了。

遊戲

自從WebGL被帶入瀏覽器的那一刻。就決定了這又是一個新的天地。

HTML5 遊戲

讓咱們忘記編譯、啓動更新、外掛等等的問題,並且咱們還可以一次開發直接執行。

VR

假設你看到過以前的那篇《JavaScript在VR世界的應用》,那麼你就會對這個內容有不少其它的印象。

主要思想仍是經過WebView來渲染VR視角:

Three.js Oculus

並且各瀏覽器產商各在推動WebVR 爲虛擬現實設備顯示提供支持。

AR

儘管大部分的AR應用可能離咱們有點遠,但是離咱們近期的就是Leap Motion——它可以利用手掌和手指動做來進行輸入,但無需手部接觸或者觸摸。

Leap Motion

同理於VR。讀取傳感器的數據,再將其手勢交由瀏覽器端來處理。具體可以參考我以前寫的:《Leap Motion JavaScript開發 手勢控制基礎篇

硬件

早先我看到了Arduino在編譯的時候,以DSL的方式封裝了API。而NodeMCU則內建了Lua語言的支持,可以讓開始者使用Lua來開始。 而Tessel 原生就提供了JavaScript執行環境,咱們寫需要寫好JavaScript就可以在上面執行。

Tessel 2

Tessel 2屬於配置比較高的硬件,而低配的呢?

三星設計了JerryScript引擎,它可以執行在小於64KB內存上。且全部代碼可以存儲在不足200KB的僅僅讀存儲(ROM)上。

IoT.js

想一想就認爲將來是美好的。

物聯網

等等,上面三星推出的是IoT.js。這就意味着它已經可以在物聯網領域中應用了。爲何還會有這裏的應用呢?我僅僅是想略微提一下這個:

IoT Node.js

上面說到的僅僅是Node.js在Web中的應用,而物聯網和Web的很是大不一樣之處在於,物聯網可以使用各類不一樣的協議,而這些協議都需要Node.js對其的支持。

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

操做系統界面

儘管更好的機器帶來了更好的性能,但是顯然人們對於原生應用的需求並無那麼強烈。Firefox OS已經在移動操做系統敗下陣來,但是這個操做被帶到了物聯網領域:

Firefox OS

這就意味着,咱們可以使用JavaScript來開發操做系統的界面了。

你認爲JavaScript還能作什麼?

不少其它精彩內容歡迎關注個人微信公衆號:Phodal
http://articles.phodal.com/qrcode.jpg

相關文章
相關標籤/搜索