IngramChen 積分 3

好像討論的前題有點不大一樣?你說的我了解,也同意,不過我想你的說法可能比較適用只有兩個人一直開發同個專案二、三年這樣?不然就是要有個很有 sense 的團隊,很穩定地一起工作了一段時間。

我的前題比較類似這樣:

一個十萬行以上的專案,由 2 ~ 4+ 人開發,每年大概會替換 1~2 人,然後開發了 2 年以上。

說真的其實可以只把 scala 當作語法調整過的 java,一樣可以不走 FP ,全部都使用 OO paradigm。也聽過一些純 FP 擁護者認為 scala 根本不能算 FP 語言,因為 scala 並沒有防止你寫 OO 之類之類。

scala 的問題不在 FP 或是 OO,而是兩個都能寫,所以程式碼經過兩、三年;兩、三人經手開發後,就會開始混亂了,什麼寫法都會有。接手的人變成全部的寫法都要會,這不是說你想遵守某些原則就能解決的,因為人員會流動,計畫也會變更,很容易就變成拖彊野馬無法控制。這就是給太多功能的缺點之一。寫法太多又混了兩種 paradigm,門檻還不高嗎?

跟 promise 的 then 一樣,其實要用 Rx 只需要會 flatMap 跟 map 這兩個 function 就可以做到你所有想要做的事情,剩下的都是 helper method 而已。甚至,有些人根本只把 rx 當 event bus 用而已。

RxJava 的 helper method1 太多了,複雜到還要作圖來解說,這圖… 真的沒有比較好懂啊。而且你說的跟我想要的其實是一樣的東西啊。我就是比較希望有一個簡化版的 RxJava,flatMap/map 再加 5,6 個 helper,thread model 再簡化一點,這樣就夠了。寫法統一,維護的人門檻也不會太高。

scala 被黑是因為開發者圈用實作的方式給了答案

scala 在 200x 年的時候記得還蠻紅的 (在 startup 圈),但經過兩年後就有導入的人自己出來吐嘈,不過那些還可以說是個人的意見。但看看近幾年的新世代語言的風向,沒有人走 scala 的路子 (a scalable language, 一直不斷加強悍的功能)。我說的開發者圈 (設計語言的人) 用實作的方式給了答案,指的是這些設計者實作了新的語言,但他們的成品和 scala 的理念卻是相反的,換句話說就是認為 scala 的強項在他們眼中反而是缺點…

總之,我的想法就是語言和 library 本身提供的功能和概念,要限制在某種難度與自由度下。不然到後期就會失控。我不太相信靠開發者本身自律可以避免這種問題。(這某種程度上還真像法律與道德,道德的自律就是到某種程度以上就無能為力了)

這是文章的子討論串,你可以回到上層查看所有討論和文章