PTT推薦

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

看板Soft_Job標題Re: [討論] 請大家聊聊 JavaScript的缺陷作者
ggttoo44
(thai)
時間推噓 1 推:6 噓:5 →:48

小弟介紹自己語言的圖譜。
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語言的缺點。

半桶水響叮噹。

這篇純使用上的心情分享,不代表真的亂寫,要自以為你的自以為,那我也沒空跟你回。

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.154.235 (臺灣)
PTT 網址
※ 編輯: ggttoo44 (111.251.154.235 臺灣), 11/06/2020 02:07:42 ※ 編輯: ggttoo44 (111.251.154.235 臺灣), 11/06/2020 02:09:18

x246libra11/06 02:32寫業務 GO 用 interface 想噓 後續維護者真雖

x246libra11/06 02:32我說的是 空介面

CoNsTaR11/06 05:20用 any 是很無奈 type system 表達能力不夠強不能描述你

CoNsTaR11/06 05:20想寫的 type,只好用 any 來說明無法表達好嗎...

CoNsTaR11/06 05:20突破限制????

samuel198811/06 06:44看到這篇就知道javascript鬆散和無知了。

samuel198811/06 06:45Any情況怎麼發生有想過嗎?是ts沒建立字典檔還是你do

samuel198811/06 06:45main 沒清楚再寫程式

samuel198811/06 06:55不爽就用orm可以減少你浪費生命

x246libra11/06 07:28寫技術需求的 lib 空介面 無法避免, lib 我覺很難寫

x246libra11/06 07:29寫業務類型 還用 ANY 只感覺是在偷懶沒想過 業務行為

x246libra11/06 07:32同意 JS 精通熟悉運作 比靜態語言難太多

samuel198811/06 07:35浪費生命的語言交給前端就好了。一堆免洗筷套套framw

samuel198811/06 07:35ork就以為是大師。

dreamnook11/06 08:28go那邊用interface亂玩有同感www

MOONY13511/06 08:44interface亂玩有demo code嗎 想知道亂玩的意思是甚麼

※ 編輯: ggttoo44 (111.251.154.235 臺灣), 11/06/2020 08:55:57

dreamnook11/06 09:12樓上是問我嗎O.o

dreamnook11/06 09:15我記得當初我只是為了讀取json與用類似json的形式保存

dreamnook11/06 09:15資料所以用interface亂寫一通吧

MOONY13511/06 09:20Playground可以demo 想看看亂玩的長相

dreamnook11/06 09:24三年前前公司的code欸 沒留著惹 囧

cha12297711/06 09:33不就單純討論缺陷 沒要戰好壞吧0.0

leo591626711/06 09:37反正想不到就先any了啦 debug定義就好

ssccg11/06 09:41在寫的時候省下的時間和生命,常常反而花掉之後很多人看的

ssccg11/06 09:42時候的時間和生命,寫起來很自由說真的聽起來像缺點

ssccg11/06 09:44不過的確也有適合自由寫速度最重要的場景啦,之後也不用看

superpai11/06 09:44我堅持寫網頁一定要用CSS

dreamnook11/06 10:15呃 用呀 css是好東西

samuel198811/06 11:19如果你沒把握就不要寫一些給人戰的。然後讓人戰你。

samuel198811/06 11:19你的分享是把any當作理所當然。被戰剛剛好

samuel198811/06 11:21自以為是就是別人給你不同意見和在擺譜說別人找碴。

samuel198811/06 11:21你可以證明你的case下用type。我不知道哪家公司在寫d

samuel198811/06 11:21omain 時code review看到any會給你過?是sa要被抓起

samuel198811/06 11:21來打ok?

samuel198811/06 11:22nown-as-top-type/

samuel198811/06 11:22技術也在更新看看別人取代any作法

samuel198811/06 11:22unknown

newhandfun11/06 12:25同意前幾樓,敝人認為在能用型態規範的情況下執意用弱

newhandfun11/06 12:25型態只是懶或無知

WTFCN11/06 12:58超討厭ts寫一堆any的人==

ku39999911/06 14:47原來大家都喜歡strong type

superpandal11/06 15:02我是不覺得為何用db一定得用物件 db指令也就只是字串

laputaflutin11/06 15:14又來這種李姓中壢人,主題就在討論js缺陷,偏偏要

laputaflutin11/06 15:14來個語言只是工具,你們吵語言很無聊。哪個人不是

laputaflutin11/06 15:14公司要什麼語言寫什麼語言,這麼無聊你別回阿

dream112411/06 15:16推 laputaflutin

laputaflutin11/06 15:20再來前幾篇內文頂多提到js或編譯成js的語言,最多

laputaflutin11/06 15:20也只討論一點wasm跟後端模板,都還算在主題範圍之

laputaflutin11/06 15:20內,講 go或java 就真的不知道在幹嘛

dreamnook11/06 16:20曾經用go寫產js的程式碼 抱歉錯頻(誤

newhandfun11/06 17:31推laputaflutin補噓any

DerLuna11/06 20:04邏輯正常的人都會討厭js吧XD

shter11/07 15:20不見得吧,邏輯正常反而不擔心 js 的坑會造成問題

ku39999911/07 20:45前面有人提到Date超廢 深有同感 moment套件又神肥 後面

ku39999911/07 20:45出的date-fns之類的套件才比較好一些

ku39999911/07 20:49雙等號避開不用也沒問題 this也用不到 畢竟不寫OO

netburst11/08 17:05js舒服

Geison11/11 21:53推 寫得很好