你想比較的那四個點, 跟系統架構關聯性比較大, 跟程式語言的種類相依性很小...
兩種語言, 我都可以舉出在這四個項目中, 世界級的範例出來, 沒有誰比較好或差的問題...
這世界上也沒有:
只用一種語言, 只設計一次架構, 就能從最小規模一路用到最大規模的事情;
小規模用大架構, 你的預算肯定頂不住, 還沒盈利就關門了;
大規模用小架構, 你的客戶肯定忍不住, 還沒進門就離開了...
架構設計要分成不同階段來進行:
MVP 階段: C10K 以下
業務成長期: C10K~C1M
業務成熟期: C1M~C10M
獨角獸養成: C10M~C1B+
(請自行搜尋甚麼是 MVP, C10K~C10M...)
你把 C10K 的架構拿來給一千萬人用, 肯定會塞死;
但把 C10M 的架構拿來給 100 個人用, 老闆會哭死...
只要是團隊習慣且非常熟練技法的(包含熟悉你們服務需要用到的第三方程式庫), 都可以用; 等你用到某個階段, 發現某個功能非得用甚麼語言才能解決的時候, 正確的做法應該是: 開始把架構拆解成微服務 (Micro Service), 用不同特性的語言來設計他擅長的微服務, 這樣一方面可以維持團隊的熟練優勢, 另一方面又可以發揮特定語言的特性.