是說應該要定義什麼是好什麼是爛,
我是覺得啦, 能解決問題叫好, 不能解決問題叫爛.
但這就有一個操作空間, 就個人對語言的掌握程度/能力程度,
會影響到一個人對語言的判斷.
像是有人對直譯器(interpreter) 的理解不夠,
對 contract based 的程式邏輯掌握度不夠.
所以騎個腳踏車還需要裝兩個輪子(TS/TSX)在旁邊輔助, 才能正常寫程式.
這是能力的問題.
但雖然裝輔助輪慢了點, 久了總是會到終點了, 歡喜甘願就好.
當然, 自古以來許多人能力不好就怪環境不好,
這自然是可以理解的, 但這種情況要互相討論, 可能就有點高處不勝寒了.
動態語言跟強型別語言本來從開發工作,
開發方法, 工作做法都會不一樣,
拿十字鍬去伐木, 砍不斷樹是自然的.
所謂的缺點跟優點是相對於要解決的問題的,
就以控制 dom event, render html/css , 發起請求等來說, 他已經夠好了.
該有的語法特色都有, 喜歡 class 的也終於在 ES6 邁向皆大歡喜.
主流的 async 處理方針, async/await 也都在ES7 都跟上了.
如果我們今天說的是十年前, CORS 還沒發展好, fetch 不完整,
display 還沒好好的實裝, float 還很難用沒有 flexbox 的年代.
要說的話就是要引用的基礎類別有點多, 計算量有點大.
當年還要面對 js interface 不統一的問題 (該死的 document.all ),
而且當時還要引入 jQuery 才有 selector.
但到這個年代,早期最被詬病的那些問題早就都有解法,
要討論優點跟缺點, 要同時把要解決問題拉出來談, 不然這都是瞎談.
不然直接說一句 js 要移殖 c++ 程式很難寫, 大家就散會就好.
(啊 其實也有 wasm 可以用啦)
每個語言都有他的樣態跟生態, 跨語言比較的盲點就在,
你會其中一個, 但你不會另一個啊.
你不懂得理解兩個不同的語言的差異之處啊.
程式只是工具, 人才是決定 code 是不是垃圾的載體.