我為什么不從NodeJS切換到Go

jopen 10年前發布 | 10K 次閱讀 NodeJS

  英文原文:Why I Won't Switch To Go (from Node.js)

  我最近研究并玩了一下 Go 語言,并且我想簡短地談一下為什么我不準備從 Node 切換到 GO。(并且我建議你也不要這么干)

  首先,人們在討論 Node.js 時會有很多的抱怨:

  回調地獄

  Promises,  它使代碼讀起來像同步的一樣,并且如果你按照合理的標準縮進,在 99% 的情況下,你不會遇到回調的問題。

  Javascript 語法很惡心

  Javascript 擁有完美的可讀性,CoffeeScript 的更佳。你需要做的僅是成為一名好的程序員,你懂的。

  CoffeeScript npm 模塊

  例如,我還看到只暴露 CoffeeScript 的模塊。它可能是用 CoffeeScript 寫的,但是每一個 CS 模塊都最終在模塊系統中編繹成了 JavaScript。

  Server/Client 之間從來沒有被重用過

  這當然是對的。除非你不考慮像 Moment (分析),FormWarden (驗證)這些庫,我發現我很少從客戶端向服務器端拷貝代碼。但是沒有切換的東西是很美的,尤其是兩個C風格的語言,像 Go 和 JavaScript.

  我很高興我御下了那些負擔。

  我為什么愛 Node.js(和 Javascript)

  JavaScript 一直是我最喜歡的語言,我已經用了好多年了,下面是原因:

  她的靈活,我的意思是她能解決我日常開發所遇到的任何問題。通俗一點講,在大多數情況下我都不會碰到性能瓶頸;如果一個問題出現了,我可以全心 全意解決它。我發現靜態類型非常繁瑣,因為我的工作需要我快速開發原型(然后擴展成復雜的系統)[1],我選擇一種可以讓我有這種能力的語言和環境。

  當然,下一個關鍵點是,有大量的基于 Node 的開發工具。Bower 解決前端依賴非常有效,如果你用過的話。我自己是 Foundation/SCSS 的粉絲,但是我們在工作中使用 Bootstrap/LESS,并且 LESS 是由 Javascript 編繹的。gulp 為我的開發提供了一套完美的編繹系統。并能毫不費力的集成到線上,所以在改變樣式后,我可以直接看到瀏覽器的變化(僅需要設置兩步監視)。同樣,我的服務 器端代碼也可以被重新加載,多虧了 JS 的功能,這樣我就不用每打一段就重新編繹一次了。它已經重啟了,我僅需使用 F5 去測試我的改動。[2]

  我為什么不想換

  到目前我可以找到的原因,切換到(Go, Ruby, Python, Erlang, 其他等等),我不得不:

  放棄那些非常牛逼的全棧工具(這對于我來說不可接受)。

  在前后端切換不同的語言(客戶端 JS, 服務器端 Go),還有一些 JS 的工具(聽起來就很無聊)。

  如果我錯了的話,關于 Go 語言的生態系統是可以支承全棧開發的,我非常樂意有人能夠指出。我明白我可以使用 Go 版的 Bower,但是我還是需要 Node 去使用它,這是一個非常大的二次依賴。如果有 5 位以上的開發者的話,這個問題就會暴露出來。

  我現在還沒有看到切換的價值。我想說,我現在積極地學習 Go 是因為我覺得現在還沒有什么意義,Go 有足夠的魅力強勢一段時間(也許會持續下去)。

  [1] 我在一家代理(廣告)公司工作所以我的日常工作跟你的可能有所不同。

  [2] Jasmine + CoffeeScript == 真的很牛逼。

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