我們程式設計師為什麼要關注 JavaScript ?
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
受這周我在企業中看到的JS現狀的啟發,我寫了這篇文章。10年之前,我從來沒有想過現在的JavaScript竟然會變得幾乎無處不在。下面是幾個你之所以要關注JavaScript的原因。
首先,我認為JavaScript能夠得到普及的主要原因之一是,JavaScript非常易於接近。學習JavaScript,對於初學者而言,相對比較容易,對於高階使用者而言,又非常強大,可以用它來構建複雜又可靠的系統。
其次,之所以要關注JavaScript是因為現今的JavaScript已經無處不在。
你可以使用JavaScript在幾乎所有平臺上開發:客戶端應用程式,伺服器端業務邏輯,嵌入式晶片/物聯網裝置,管理構建指令碼和依賴關係,等等。
不過,這並不意味著你可以在任意情況下使用完全相同的程式碼,但你可以使用相同的技能——JavaScript開發——提供跨越多個正規化的解決方案。
客戶端
JavaScript可被用於支援客戶端應用程式/使用者介面,以及眾多平臺和裝置的使用者互動。
web
當然,JavaScript支援web,這是肯定的。 JavaScript是所有web瀏覽器基本的指令碼語言。
移動
JavaScript也可用於支援安裝到本地裝置上的移動應用程式。
- Apache Cordovn/ PhoneGap——你可以使用PhoneGap或Cordovn建立本地安裝的web技術app。 PhoneGap是Adobe的Cordovn品牌分支,但是從開發者的角度來看,它們基本上是相同的。執行在移動裝置上的應用程式會帶有一個web檢視,用構建動態web應用程式相同的方式建立使用者介面。使用者介面雖然是用HTML以及CSS樣式實現的,但是所有的互動都是用JavaScript建立的。
- React Native ——得到JavaScript支援的web應用程式不僅可以內建web檢視。React Native框架還允許開發人員使用JavaScript和宣告式的UI元素編寫他們的應用程式,並生成一個可以在移動裝置上執行的本地應用程式。在執行時,邏輯被解釋為JavaScript,但是所有(所有UI元素)與使用者互動的東西,100%是本地的,這就提供了一個非常高品質的使用者體驗,而且現在還可用於iOS和Android應用程式。
- Unity 3D——使用Unity 3D引擎,哪怕全部由JavaScript支援,你也可以開發出豐富多彩又身臨其境的移動3D模擬或遊戲體驗。
- NativeScript——使用JavaScript的框架,可用於構建跨平臺的本地iOS,Android和Windows移動應用程式。
桌面
桌面應用程式也沒有被JavaScript排除在外。大多數桌面解決方案陷入了類似於Apache Cordovn的分類中,最終導致的結果是,web檢視擁有的API層次較低,其內容開發基於web技術。
- Electron——來自於GitHub的Node.js+Chromium桌面應用程式容器
- app.js——Node+Chromium桌面應用程式容器
- nw.js——另一個Node+Chromium桌面應用程式容器的框架
- CEF——The Chromium Embedded Framework——嵌入Chrome瀏覽器內建於桌面應用程式的框架。
…等等。對了,我記得,微軟對於如何純粹地用HTML / JS構建Windows應用程式,已經有了一個解決方案,而且還有更多的解決方案,但現在我一下子記不起來了。
事實上,一些我最喜歡的桌面工具,如Slack、Atom和 VS Code實際上就是在web技術和HTML / JS的基礎上實現的。
伺服器端
最明顯的是Node.js——封裝了Chrome的V8 JavaScript引擎的JavaScript執行時——在伺服器端開發和企業上已經取得了巨大的進步。 Node.js,受到express.js和loopback.io等框架的支援,使得用JavaScript開發伺服器端和複雜的企業應用程式中變得可能。
物聯網
你可以完全使用JavaScript來開發可執行在Arduino、樹莓派或其它小平板上的無頭app,你可以使用JavaScript管理基礎設施和物聯網感測器資訊流,你也可以使用JavaScript為嵌入式系統編寫晶片程式,可以用它控制機器人,你甚至還可以使用JavaScript支援媒體中心連線電視體驗。
就像我說的……JavaScript無處不在。
生態系統
你不僅可以到處構建和執行JavaScript應用程式。 JavaScript還有一個龐大而繁榮的開發者生態系統。
JavaScript是GitHub上最活躍的語言,它不僅是所有程式碼倉庫中最活躍的,也是所有push/commit中最活躍的。
來自於http://githu
這裡有一些統計資料顯示了Node.js / npm.js的增長幅度。
NPM統計
Node.js還在不斷增長中。
圖表說明了IBM重視Node.js和Strongloop。 30天時間裡就有2.42億個@npmjs包!http://t.co/snDt88H
QC5 pic.twitt er.com/nRMwY yKmdo
——Rod Boothby(@ rod11)2015年9月10日<wbr><wbr><wbr>
但是,種種這一切這並不意味著JavaScript就是適用於一切的最好語言。也不意味著你取出一段原始碼就能照你想的那樣執行在每一種裝置和上下文中。
但是,你可以使用JavaScript技術,去開發幾乎任意型別的裝置/下上文。當然,它不能一次編寫,就到處執行,用React.js團隊的話就是: learn once, write everywhere。
譯文連結:http://www.codeceo.com/article/why-we-pay-attention-to-javascript.html
英文原文:Why You Should Pay Attention To JavaScript
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 好程式設計師:web前端解答為什麼要學JavaScript程式設計師Web前端JavaScript
- 為什麼前端工程師需要關注設計前端工程師
- 我關注的那些程式設計師大佬程式設計師
- 為什麼要成為「無敵」程式設計師?程式設計師
- 中國程式設計師為什麼要跳槽?程式設計師
- Java程式設計師修煉之路(一)我們為什麼選擇JavaJava程式設計師
- 作為程式設計師為什麼要閱讀原始碼程式設計師原始碼
- 程式設計師壓力那麼大,為什麼還要選擇做程式設計師程式設計師
- 為什麼 JavaScript 要設計原型模式JavaScript原型模式
- 程式設計師 為什麼要堅持寫部落格程式設計師
- 程式設計我們學到了什麼?程式設計
- 為什麼我們要新增 super(props) ?
- 我們為什麼要學豐田?
- 為什麼要選擇做一名程式設計師?程式設計師
- 我為什麼不要30歲以上的程式設計師?程式設計師
- 為什麼我們要關注醫療衛生服務面臨的網路安全威脅
- [譯]我們為什麼要寫 super(props)?
- 我們為什麼要技術寫作
- Python 之父再度發聲:我們能為中國的“996”程式設計師做什麼?Python996程式設計師
- Python之父再發聲:我們能為中國的“996”程式設計師做什麼?Python996程式設計師
- 好程式設計師告訴你HTML好在哪裡,為什麼值得我們學習程式設計師HTML
- 程式設計師為什麼要持續學習(升級版)程式設計師
- “一直不明白,程式設計師為什麼要加班。”程式設計師
- 老生常談!程式設計師為什麼要閱讀原始碼?程式設計師原始碼
- 女程式設計師,為什麼比男程式設計師少???程式設計師
- 程式設計師,為什麼如此迷茫?程式設計師
- 精讀:為什麼我們要寫super(props)
- 我們為什麼要學Java?Java好在哪?Java
- 我們為什麼要閱讀webpack原始碼Web原始碼
- 為什麼企業要更加關注網路安全
- 為什麼要關注軟體材料清單(SBOM)
- 我們為什麼設計不出好的遊戲?遊戲
- 幽默:程式設計師看比爾蓋茲為什麼要離婚?程式設計師
- 我們是程式設計師(譯文)程式設計師
- 為什麼 JavaScript 需要非同步程式設計JavaScript非同步程式設計
- [水文] 什麼原因讓我成為一名程式設計師程式設計師
- 程式設計師你為什麼這麼累?程式設計師
- 為什麼我們要學習Microsoft Graph for Office 365ROS
- 為什麼我們要選用 Elasticsearch 而不用 SolrElasticsearchSolr