為什么JavaScript是你應當學習的下一個(或第一個)編程語言

jopen 10年前發布 | 21K 次閱讀 JavaScript

        英文原文:Why JavaScript Is The Next (or first) Programming Language You Should Learn

        我已經被多次問到,如果我剛剛開始,我應當學習什么編程語言,答案一定是 JavaScript,下面是為什么:

        最簡單的開發環境

        我相信人們進入編程最大的障礙實際上是編寫代碼相關的所有其它方面的東東。你能夠更快地編寫代碼(至少在你開始學習的時候),在我看來就是一個勝利。每個人都可以訪問 web 瀏覽器,這意味著每個人現在也能訪問一個簡單的開發環境了。如果你在使用 Mac 下的 Chrome,按快捷鍵 cmd-opt-j。就來到了控制臺,現在你就可以開始編寫 JavaScript 并管理你看到的網頁了。真不錯。還有大量的在線編輯器和工具,比如 CodePenJSFiddle,讓你在瀏覽器搭建更為完整的開發/測試/原型環境。

        簡單

        當你開始的時候,JavaScript 讓編寫代碼變得真正容易,這是非常有效的。定義一個函數,調用它。寫個循環。忽略 DOM(事實上,也差不多完全忽略了 web),只關心簡單的邏輯和代碼。開始建立對象和數組。JS 里的 OO 模型稍微有些奇怪(特別是對于類和繼承),不過還好,你需要靈活些,不管怎樣,如果你想成為開發人員的話。一旦你掌握了基礎,你就可以更為深入,并發現 JavaScript 的所有力量。

        靈活

        之前討論的另外一個方面有,JavaScript 也是超級靈活的(論證也是如此)。一旦你能夠從直接嵌在網頁里的 Sctipt 標簽里的一些函數,并控制一個圖片或菜單,那么很快你就能夠繼續帶有很多文件、較龐大的對象/類形式的結構,復雜的單頁應用程序以及整個更加復雜的、完整架構的 web 應用程序。既然它與 DOM 和瀏覽器結合如此緊密,那么 JavaScript 實際上更好地擴展來迎接更大的挑戰,可以完美地匹配 web 應用程序。

        網絡原生(web-native)

        足夠多的有天賦的移動 app 開發者讓你相信,app 是未來,我仍然認為開放的 web 技術才是未來的關鍵。給它一些時間,我們差不多用 HTML/JS 寫出所有的移動 app,并把打包好的 app 部署到手機上。我認為這基本上是不可避免的。學習 web 方面的開發是至關重要的。不管你在工作上主要用什么語言,你都需要基本地了解它,因為不管我們如何努力,你最終還是在操作 CSS、調整一些 HTML 標簽等。那不會立即就銷聲匿跡,我不這樣認為。

        不可避免

        幾乎是到了最后,不過主要由于思想進化而部署其它方面。實際上我把這是做你為什么要學習 JavaScript 的真正的重要原因。下面是權衡——如果你開發 web 方面的東西,那么你到最后是在編寫 JavaScript。這無可避免。你可以用服務器端語言(PHP,Python,Ruby)來做。有時候,負載會傳遞到瀏覽器,如果你想在遠端做些有意思的東西,你將不得不使用 JavaScript。因此,如果你不得不學習,為什么不能優化這個過程呢(或許在更多地方使用 JS,而不是更少)。

        輕便(瀏覽器/服務器/原生)

        由于我們具有了 Node.js 之類的東東,JavaScript 已經超越了瀏覽器。你不僅可以寫服務器端 JS(因此你可以用 JS 開發前后端 web 應用程序),而且還可以使用 node-webkit 之類的東西打包成可分發的桌面應用程序,或者使用 PhoneGap 為任意平臺打包成移動 app。現在還沒有其它語言能夠有如此輕便。

        工具鏈

        如果上面那些原因還不夠的話,就開發者工具鏈而言,激增的 JavaScript 社區在接下來的數年里,還有一條真正的長路要走。我們或許沒有像 Mac 開發者使用的 Xcode 那樣集成的、一站式方式,但是我們有 GruntGulp 之類的工具,可以建立自己的資源流水線。人們熟知的每個代碼編輯器都支持 JavaScript 語法高亮和提示,我們不需要像其他語言的 build 過程,因此我們可以更加從容.還有一堆測試工具;從單元測試到功能測試,完全模擬了使用瀏覽器的用戶。

        因此不管怎么說——從來就沒有開始學習編程的更好時間,如果你想開始,我建議從 JavaScript 開始。從簡單做起,慢慢提高。看源代碼。去 Github。并為之瘋狂。



來自: www.labazhou.net

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!