※ 引述《dharma (達)》之銘言:
: 網路上看到的一段話:
: 因為 JavaScript 的廣泛應用,Stack Overflow 的聯合創始人阿特伍德(Jeff Atwood)
: 提出了著名的阿特伍德定律:「任何可以用 JavaScript 來寫的應用,最終都將用
: JavaScript 來寫。」
: 請問這個趨勢現在有明顯嗎
: thanks
這個問題要分 front end 和 front end 以外這兩種情境來討論
在 front end,現階段一定要用 JavaScript 來寫
在 Internet, open source 等自由開放的趨勢下
開發者不會想用一個封閉的技術來寫 front end code
先前一些試圖取代 JavaScript 的專有技術最後都沒有成功
WebAssembly 是開放的技術,但是短期內 JavaScript 不會消失
因為 front end code 還要考慮向後相容性的問題
即使是用一些 JavaScript transpiler,像是 TypeScript 或 Babel (ES6)
最後還是要轉成 ES3 或 ES5 相容的代碼
但在 front end 以外,JavaScript 就沒那麼重要
語言本身是一回事,但是語言背後的環境才是重點
以 back end 來說,語言和框架百花齊放,很難說那個技術才是最好的
前端和後端共用同一套程式碼的益處其實沒想像中的大
除了某些 business logic 以外,其他部分其實前後端都要分開寫
而且,即使前端檢驗過了,後端還是要檢驗一次
因為前端送來的所有資料都可能被動過手腳的
不是每個開發者都想用 Node,其實最近 Go 反而討論度很高
對於有經驗的開發者來說,前後端用兩套語言重寫 business logic 很常見
在 back end 以外的情境,JavaScript 也不是必需的
雖然用 JavaScript 可以省下重覆學習語言的時間
但用 JavaScript 寫軟體不一定最方便,要不然不會有 TypeScript 出現
反而一些靜態型別的語言,在寫程式時會幫忙檢查問題,比較有幫助
即使像是 Lua 這種小型內嵌語言,都有開發團隊拿來作成產品 e.g. Corona SDK
理論上,只能有團隊願意開發,其他的語言也是可以做成產品
是不是 JavaScript 並不是那麼重要