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

作者: ggttoo44 (thai)   2020-11-06 01:21:47
小弟介紹自己語言的圖譜。
1.寫 Java 三年(沒在寫了)。
2.被公司逼寫 Nodejs 寫了五年(現在還在寫)轉換成本半年。
3.被公司逼 TS 四年(現在還在寫)轉換成本一個月。
4.被公司逼 GO 兩年(現在還在寫)轉換成本兩周。
從一開始Java觀念轉成 Js 超級不習慣,莫名奇妙,不知道哪裡來的屬性,就生出來了,
轉換了半年才習慣,習慣被虐的感覺之後,覺得這個語言真夠自由奔放,只有想不到的寫
法,沒有達不到的寫法,真地爽。
後來幾個專案用 TS 開發又有種回到 Java 的感覺,後來發現 any 之後,真是一邊虐人
一邊給型態提示,又利用 any 突破限制,真得爽。
然後後來新公司要寫 GO 真的寫的好不爽,DB 資料全部都要定義,光是定義都覺得自己
失去開發的速度,還有不能 runtime import 讓 DI 跟 IOC 變得要用很複雜的寫法來做
,還有要做多型或是掩藏其他沒必要曝露的func 就要再宣告個 interface。
光是處理這些東西就要宣告,再宣告,心是真的很累。
從 Java 要從寫五六個檔案開始,遇到 Js 發現只要兩個就解決。
初遇 TS 發現一些強性別之前良好的特性可已選用之後,覺得愛上它。
後來的 Go 是一半愛一半不愛,感覺回到 Java 五成像的語言,宣告沒有 Java 煩,但是
在 DB 部分真的覺得寫的厭世,對造 DB 型態宣告對應的結構,還有寫框架都覺得煩躁了
,如果單純使用是還能接受範圍,比較愛它的 ppof 等等原生工具,這是比 Js , Ts 強
一千萬倍的點。
Js, Ts 雖然是動態語言,很好入門,但是學的精是真的比 Java, Go 還要再更難。
Java 入門比較高,後續寫的很煩,回頭寫覺得自己宣告那些東西,很浪費時間跟生命,
但是初期還是有覺得自己是 OO 大師的錯覺。
Go 入門其實有語言基礎,很簡單,就是寫的煩,ppof 多用就知道自己哪裡寫的有問題,
就能快速提升了。
對了,初學 Go 曾經用 interface 來當作 Ts 功能打折後的 any 來使用,也有一陣子快
樂過,後來發現效能跟屎一樣,就乖乖宣告了。
後來負責架構設計之後,才沒在管那個語言,服務之間怎麼跑的順,那個語言都能交叉實
現。
玩了四個語言心得,老闆叫你用啥,你就要去學。
附帶一個心得,老闆不知道的時候,用那個實現快就用那個,用那個效能好就用那個,多
學才有選擇,堅持一種語言薪水高不起來的,相同的邏輯撰寫下,有時候 Go Benchmark
真的會跑輸 Js 喔,大部分還是贏啦 XD
Java 還是很棒的也有適合的場景跟團隊,只是老了,還是選擇適合自己的語言好了。
黑其他語言的人,不要劃地自限了,這樣你的薪水也被你自己限制了。
通常看到語言戰爭都覺得很可笑,是應用場景跟遇到的團隊文化太少,才會一直拿A語言
優點打B語言的缺點。
半桶水響叮噹。
這篇純使用上的心情分享,不代表真的亂寫,要自以為你的自以為,那我也沒空跟你回。
作者: x246libra (楓)   2020-11-06 02:32:00
寫業務 GO 用 interface 想噓 後續維護者真雖我說的是 空介面
作者: CoNsTaR ((const *))   2020-11-06 05:20:00
用 any 是很無奈 type system 表達能力不夠強不能描述你想寫的 type,只好用 any 來說明無法表達好嗎...突破限制????
作者: samuel1988 (小羊快跑啊)   2020-11-06 06:44:00
看到這篇就知道javascript鬆散和無知了。Any情況怎麼發生有想過嗎?是ts沒建立字典檔還是你domain 沒清楚再寫程式不爽就用orm可以減少你浪費生命
作者: x246libra (楓)   2020-11-06 07:28:00
寫技術需求的 lib 空介面 無法避免, lib 我覺很難寫寫業務類型 還用 ANY 只感覺是在偷懶沒想過 業務行為同意 JS 精通熟悉運作 比靜態語言難太多
作者: samuel1988 (小羊快跑啊)   2020-11-06 07:35:00
浪費生命的語言交給前端就好了。一堆免洗筷套套framwork就以為是大師。
作者: dreamnook (亞龍)   2020-11-06 08:28:00
go那邊用interface亂玩有同感www
作者: MOONY135 (談無慾)   2020-11-06 08:44:00
interface亂玩有demo code嗎 想知道亂玩的意思是甚麼
作者: dreamnook (亞龍)   2020-11-06 09:12:00
樓上是問我嗎O.o我記得當初我只是為了讀取json與用類似json的形式保存資料所以用interface亂寫一通吧
作者: MOONY135 (談無慾)   2020-11-06 09:20:00
Playground可以demo 想看看亂玩的長相
作者: dreamnook (亞龍)   2020-11-06 09:24:00
三年前前公司的code欸 沒留著惹 囧
作者: cha122977 (CHA)   2020-11-06 09:33:00
不就單純討論缺陷 沒要戰好壞吧0.0
作者: leo5916267 (小葉)   2020-11-06 09:37:00
反正想不到就先any了啦 debug定義就好
作者: ssccg (23)   2020-11-06 09:41:00
在寫的時候省下的時間和生命,常常反而花掉之後很多人看的時候的時間和生命,寫起來很自由說真的聽起來像缺點不過的確也有適合自由寫速度最重要的場景啦,之後也不用看
作者: superpai (超級白)   2020-11-06 09:44:00
我堅持寫網頁一定要用CSS
作者: dreamnook (亞龍)   2020-11-06 10:15:00
呃 用呀 css是好東西
作者: samuel1988 (小羊快跑啊)   2020-11-06 11:19:00
如果你沒把握就不要寫一些給人戰的。然後讓人戰你。你的分享是把any當作理所當然。被戰剛剛好自以為是就是別人給你不同意見和在擺譜說別人找碴。你可以證明你的case下用type。我不知道哪家公司在寫domain 時code review看到any會給你過?是sa要被抓起來打ok?https://fullstackbb.com/typescript/typescript-unknown-as-top-type/技術也在更新看看別人取代any作法unknown
作者: newhandfun (新手方)   2020-11-06 12:25:00
同意前幾樓,敝人認為在能用型態規範的情況下執意用弱型態只是懶或無知
作者: WTFCN (WTFCN)   2020-11-06 12:58:00
超討厭ts寫一堆any的人==
作者: ku399999   2020-11-06 14:47:00
原來大家都喜歡strong type
作者: superpandal   2020-11-06 15:02:00
我是不覺得為何用db一定得用物件 db指令也就只是字串
作者: laputaflutin (很恐怖,不要問)   2020-11-06 15:14:00
又來這種李姓中壢人,主題就在討論js缺陷,偏偏要來個語言只是工具,你們吵語言很無聊。哪個人不是公司要什麼語言寫什麼語言,這麼無聊你別回阿
作者: dream1124 (全新開始)   2020-11-06 15:16:00
推 laputaflutin
作者: laputaflutin (很恐怖,不要問)   2020-11-06 15:20:00
再來前幾篇內文頂多提到js或編譯成js的語言,最多也只討論一點wasm跟後端模板,都還算在主題範圍之內,講 go或java 就真的不知道在幹嘛
作者: dreamnook (亞龍)   2020-11-06 16:20:00
曾經用go寫產js的程式碼 抱歉錯頻(誤
作者: newhandfun (新手方)   2020-11-06 17:31:00
推laputaflutin補噓any
作者: DerLuna (陽月)   2020-11-06 20:04:00
邏輯正常的人都會討厭js吧XD
作者: shter (飛梭之影)   2020-11-07 15:20:00
不見得吧,邏輯正常反而不擔心 js 的坑會造成問題
作者: ku399999   2020-11-07 20:45:00
前面有人提到Date超廢 深有同感 moment套件又神肥 後面出的date-fns之類的套件才比較好一些雙等號避開不用也沒問題 this也用不到 畢竟不寫OO
作者: netburst (133 134 592)   2020-11-08 17:05:00
js舒服
作者: Geison (Angels)   2020-11-11 21:53:00
推 寫得很好

Links booklink

Contact Us: admin [ a t ] ucptt.com