最流行的編程語言 JavaScript 能做什么?


此文轉載oschina文章

首先很遺憾的一點是,“PHP雖然是最好的語言”,但是它不是最流行的語言。

Sad

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

Tiobe四月

你們都很棒,但是你們都擔當不了這個大任。

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

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

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

  • JavaScript,看下文。

數據可視化

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

Processing

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

D3.js

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

移動端應用: Cordova

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

Cordova

使用Cordova,可以讓我們一次開發多平台發布。我們也順便提一下Ionic,作為混合應用的翹楚:

Ionic

移動端應用: React Native

既然我們已經提到了Cordova,那么我們也應該說說React Native。也是一次開發多次運行:

React Native

雖然它的坑還有很多,但是還是值得期待的。

移動端平台: DeviceOne

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

 

目前唯一一個使用javascript來實現原生跨平台的(android、ios、windows)。

服務端: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 作者@phodal


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM