Re: [討論] 請大家聊聊 JavaScript的缺陷

作者: as30385438 (LCT)   2020-11-16 13:08:05
※ 引述《TonyQ (得理饒人)》之銘言:
: 是說應該要定義什麼是好什麼是爛,
: 我是覺得啦, 能解決問題叫好, 不能解決問題叫爛.
: 程式只是工具, 人才是決定 code 是不是垃圾的載體.
不太認同, 如果今天的task是計算1加到10000
從紙上開始 1 + 2 + 3...一直算到10000可以解決問題
用等差數列的公式也可以解決問題
寫段code直接寫個function讓function可以支援不同的min, max也同樣能解決問題
這些方法都能解決問題?難道他們都是好方法嗎?
回到程式語言, 我相信大部分人都覺得戰語言優劣很無聊
畢竟工程師都有自己偏好
但前端這塊就比較不一樣, 大部分人用JS不是因為喜歡或是適合
而是因為沒有別的選擇
前面在吵的web assembly目前來說生態系還差太遠
看起來它也是以補強而非取代JS為目的
為什麼近年TS開始紅起來
我認為不是像大大說的, 那是能力不足的人在用的
以同是動態語言的Python為例
typing模組不管是語言面和IDE的支援也都越來越完善
我待過的兩間公司也都規定新寫的code能加type hint就要加
不過Python雖是動態語言但卻是強型別, 跟JS還是有差就是了
在5人以上維護的專案中用了TS絕對對開發速度和維護性有顯著的幫助
光是在obj後面.一下就會跑出各種method和argument/return type
就不知道能避免多少低級錯誤和省下查文件翻code的時間了
所以說用TS會拖慢開發速度的人
我真的不知道他是在做什麼神奇的專案需要用到諸多JS的神奇特性
相關的webpack config也只要設定一次, 何樂而不為呢
當然你可以說, 只要平常規範足夠好, 大家團隊意識夠強
加上每個人記憶力超凡, 寫過的每個function是做什麼的都不會忘
每個人都是完美的JS programmer不會踩到一些不該踩的坑
那當然用JS也不會有太大問題
但我們都知道,
人 是一定會犯錯的
的確, TS不能解決所有問題, 但要把這鍋推給TS就有點詭異了
這個邏輯有點像:「反正用了也只是從30分到60分, TS真糞」
TS本來就是以盡量不破壞JS原有特性下改進JS的可讀性
拿any來說, 敝公司的tsconfig中是有設定nonImplicitAny
新寫的code中要用上any也必須給reviewer足夠好的理由
在prototype偷塞東西這種事情也是沒事不會做
除了一些很底層的模組, 例如支援mixin之類的
不要因一時貪圖方便造成後續難以維護
我認同大大說的, 的確沒有辦法控制整個世界照我們想要的規矩走
但這不是我們不能在力所能及的範圍內做到最好的藉口
作者: alihue (wanda wanda)   2020-11-16 13:47:00
推推,一些地雷在語言就應該設計好防呆掉,不是語言spec寫爛了回來嗆開發者不夠熟語言
作者: testPtt (測試)   2020-11-16 13:53:00
其實很多語言寫爛了直接在後面版本叫你不要用舊的寫法
作者: CoNsTaR ((const *))   2020-11-16 13:57:00
推,說實話,連自己寫的 function 的 type 是什麼都搞不清楚的人才是真的能力不足
作者: sharku (明珠求瑕)   2020-11-16 15:21:00
推這篇
作者: LERICAL (統二布丁)   2020-11-16 16:19:00
作者: maik060 (^.< 啾咪 ~)   2020-11-16 20:28:00
作者: viper9709 (阿達)   2020-11-18 00:53:00
推這篇
作者: zxcasdjason1 (nice_Sky)   2020-11-18 01:43:00
推言簡意賅
作者: jack529 (Jack)   2020-11-18 08:36:00
團隊開發用JS真的是災難

Links booklink

Contact Us: admin [ a t ] ucptt.com