※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2017-03-31 18:15:36
看板 Ajax
作者 標題 [閒聊] 有關 JavaScript 的生態圈
時間 Mon Mar 27 17:01:55 2017
我這樣寫可能會被當 troll
不過,小弟並不是要刻意引戰 只是好奇這個現象
國外有關 JavaScript 的應用相當廣泛
從原先運行在瀏覽器中,擴展到伺服器端、桌面端、行動端等
最近 StackOverflow 的調查中 JavaScript 是最多人用的語言
在一些語言排名中 也都排在很前面的順位
但其實 JavaScript 本身問題不少
而需要一些 transpilers 去克服其缺陷
像是 CoffeeScript、TypeScript、Babel (ES6) 等
除了在瀏覽器中一定要運行 JavaScript 外
其他應用情境其實都有其他的方案可代替
但 JavaScript 看起來還是很紅 這幾年陸續有新的框架
大家覺得是怎麼回事呢?
純閒聊,理性勿戰 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.71.94.20
※ 文章代碼(AID): #1OsDK6Tb (Ajax)
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1490605318.A.765.html
※ 編輯: Neisseria (203.71.94.20), 03/27/2017 17:03:04
--
推 : JavaScript 成立匆匆,以往只要待在瀏覽器還勉強可以,但1F 03/27 17:51
→ : node.js 出現後,若要身為一個前後端兼顧的語言,有很多地
→ : 方需要補足,所以一直有新的框架要試圖解決這些問題。加上
→ : 它易學(但難精)的特色讓很多人嘗試入門,生態圈變化很快
→ : 。
→ : node.js 出現後,若要身為一個前後端兼顧的語言,有很多地
→ : 方需要補足,所以一直有新的框架要試圖解決這些問題。加上
→ : 它易學(但難精)的特色讓很多人嘗試入門,生態圈變化很快
→ : 。
→ : js生態很怪. 很喜歡把語言的缺陷當作一種"專業", 然後將6F 03/27 21:46
→ : 一些CS常識和API用法(和坑)當成更了不起的"專業". 同一
→ : 個問題翻來覆去做十幾遍, 小問題可以解決幾百遍, 最後
→ : 這些疊床架屋混亂不堪的工具竟然比語言本身更坑. 當然,
→ : 了解這些坑(並製造新的坑)又變成新的專業了...
→ : 一些CS常識和API用法(和坑)當成更了不起的"專業". 同一
→ : 個問題翻來覆去做十幾遍, 小問題可以解決幾百遍, 最後
→ : 這些疊床架屋混亂不堪的工具竟然比語言本身更坑. 當然,
→ : 了解這些坑(並製造新的坑)又變成新的專業了...
推 : 缺陷是指什麼11F 03/27 23:56
推 : 可以理解樓樓上的意思...所以目前我還在原生JS...12F 03/28 11:19
→ : 要去學框架會突然難度暴增...就卻步了
→ : 要去學框架會突然難度暴增...就卻步了
推 : 所以缺陷是啥14F 03/29 10:09
→ : hoisting, var/let scoping, undefined/null, prototype15F 03/29 10:19
→ : this 都是明顯的重大設計失誤
→ : 各種implicit conversion, arguments, statement和liter
→ : al的syntax混淆, boxing type 都是坑
→ : this 都是明顯的重大設計失誤
→ : 各種implicit conversion, arguments, statement和liter
→ : al的syntax混淆, boxing type 都是坑
推 : 除了this在某些狀況設計錯誤外,不認為其他是失誤~19F 03/29 12:54
推 : 不是失誤的話請問用意/好處是什麼?20F 03/29 14:30
推 : let scope 有甚麼問題? var 才是有問題的吧21F 03/29 22:52
→ : JS 早期是在瀏覽器上很紅, 擴展到其他方面主要是 Node 的
→ : 非同步 IO, 因為設計之初就直接以非同步 API 為基本
→ : 不像其他語言需要額外的 library 去做, 加上開發者早就
→ : 習慣在瀏覽器上寫非同步呼叫的程式碼
→ : 至於新框架層出不窮的問題...真的很頭痛...
→ : JS 早期是在瀏覽器上很紅, 擴展到其他方面主要是 Node 的
→ : 非同步 IO, 因為設計之初就直接以非同步 API 為基本
→ : 不像其他語言需要額外的 library 去做, 加上開發者早就
→ : 習慣在瀏覽器上寫非同步呼叫的程式碼
→ : 至於新框架層出不窮的問題...真的很頭痛...
推 : 1. let 仍然會 hoist. 意即你看到每個變數都要往後找才27F 03/30 00:58
→ : 能確定它的scope 2. 同時有var/let更是累贅
→ : 3. 如第1點, 每次用let宣告也要往前找, 才能確認是否會
→ : 蓋掉原本的upvalue(使其進入TDZ)
→ : 能確定它的scope 2. 同時有var/let更是累贅
→ : 3. 如第1點, 每次用let宣告也要往前找, 才能確認是否會
→ : 蓋掉原本的upvalue(使其進入TDZ)
推 : 樓上覺得如果不往後找,往 global 找會比較好嗎?31F 03/30 07:27
→ : var 純綷是向後相容性
→ : var 純綷是向後相容性
推 : 語言特性而已,如果你一開始寫js,後來才寫其他語言~33F 03/30 11:30
→ : 那你不會覺得其他語言沒有hoisting很奇怪?
→ : 那你不會覺得其他語言沒有hoisting很奇怪?
→ : 語言特性不代表不是設計錯誤,不好的設計就是不好的設計35F 03/30 13:15
→ : 如果一開始寫js,後來才寫其他,不會覺得奇怪,而會覺得果
→ : 然語言是可以設計的更好的
→ : 如果一開始寫js,後來才寫其他,不會覺得奇怪,而會覺得果
→ : 然語言是可以設計的更好的
推 : 樓上也覺得往 global 找更好?我覺得大家可以把缺陷、缺陷38F 03/30 14:21
→ : 原因、更好的做法等直接回一篇
→ : 原因、更好的做法等直接回一篇
推 : 不覺得現在的 JS 有什麼不好的,寫法泛用性佳40F 03/30 14:22
→ : 真正的問題反而是對 transpilers 的依靠
→ : JS就是希望一種寫法可以應用在各種層面
→ : 結果弄一堆transpilers讓"寫"的人反而不熟真正的JS
→ : 不用編譯直接執行的優點也因此被打壞,而且還不是真編譯
→ : 只是個轉譯,對執行效率沒有太大的幫助
→ : 然後再弄一堆雜七雜八的套件,套件又每個都搞自己語法
→ : 對,JSX,我就是在說你
推 : 結果導致無印、jQuery、YUI、Backbone、React..各種時代
→ : 入場的 JS 工程師對同一個問題的解法觀點可以天差地遠
→ : 甚至出現每個都說自己熟JS,每個自己獨立開發都很厲害
→ : 但是專案放在一起開發時彼此都拖累對方拖累專案的情況
→ : 別懷疑無印派,new XMLHttpRequest這行接某case還看到..
→ : 真正的問題反而是對 transpilers 的依靠
→ : JS就是希望一種寫法可以應用在各種層面
→ : 結果弄一堆transpilers讓"寫"的人反而不熟真正的JS
→ : 不用編譯直接執行的優點也因此被打壞,而且還不是真編譯
→ : 只是個轉譯,對執行效率沒有太大的幫助
→ : 然後再弄一堆雜七雜八的套件,套件又每個都搞自己語法
→ : 對,JSX,我就是在說你
推 : 結果導致無印、jQuery、YUI、Backbone、React..各種時代
→ : 入場的 JS 工程師對同一個問題的解法觀點可以天差地遠
→ : 甚至出現每個都說自己熟JS,每個自己獨立開發都很厲害
→ : 但是專案放在一起開發時彼此都拖累對方拖累專案的情況
→ : 別懷疑無印派,new XMLHttpRequest這行接某case還看到..
推 : 用 Fetch 算無印派嗎 (逃53F 03/30 17:28
→ : eight0: 往上一層找很正常也很直覺54F 03/30 17:35
→ : 會出現transpiler就是因為js缺點多在語言層次, 單純的
→ : 封裝也無法解決, 所以才要設計新語言.
→ : 就像asm太難寫所以發明了C語言和C compiler 一樣道理
→ : 這幾年js語言的發展方向(es5,es6,typescript,...)都致力
→ : 於消除原來js的坑(所謂的語言特性)
→ : 會出現transpiler就是因為js缺點多在語言層次, 單純的
→ : 封裝也無法解決, 所以才要設計新語言.
→ : 就像asm太難寫所以發明了C語言和C compiler 一樣道理
→ : 這幾年js語言的發展方向(es5,es6,typescript,...)都致力
→ : 於消除原來js的坑(所謂的語言特性)
推 : JS的作者只花十天就寫出來的東西,當然坑一堆60F 03/30 19:14
→ : 無印派是指vanilla js嗎 第一次聽到61F 03/31 05:59
推 : 就像信長的服部拉刷 原本認為是BUG 但後來發現很吃技術62F 03/31 18:12
→ : 就變成特色技能了
→ : 就變成特色技能了
--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 287
回列表(←)
分享