開篇闡述系列動機:為什麼選 Java 做對比標靶,為什麼用 C# 做挑戰者,以及比較的邊界與評價標準。
為什麼是 Java?
- 熱門度最高:TIOBE 長期榜首,影響力大,批判引發共鳴
- 確實落後:誕生初期簡化 C++ 有功,但長期固步自封,拖累生產力
- 認知偏差大:多數開發者因排行榜誤以為 Java 優秀,實際損失巨大
- 有替代方案:非 C 語言無替代的底層場景,Java 可整體遷移
- 作者熟悉:職業生涯始於 Java,曾深度使用 J2EE,後轉 .NET
為什麼是 C#?
- 博客主題契合:.NET 技術博客,讀者多為 C# 開發者
- 打破刻板印象:非單純「語法糖」,而是凝聚 Anders Hejlsberg 理想的生產力杠桿
- 最佳對比對手:TIOBE 前列中僅 C# 與 Java 平台應用類型高度重疊
- 史實見證:C# 1.0 發布至今,只有 Java 借鑒 C#,無反向案例
關於 LISP 的聲音
「LISP 之後無創新」不代表後續比較無意義。語言演進是站在巨人肩膀上向前,工程領域追求「更好用」而非「革命性」。神兵利器雖革命意義不如第一根鐵棍,但人類從未停止追求更好工具。
什麼是真正的「語法糖」?
作者眼中的語法糖:不改變思維方式、可用輔助函數替代、不帶來新編程範式的特性(如 Ruby 陣列減法、Python 交換變量)。
重點關注的語言特性標準(三個必要條件)
- 純粹語言特性(非庫/框架)
- 無法或極難用庫/框架彌補
- 能改變編程思維、引出新編程範式
例子:Ruby Mixin、Python Decorator、Scala 模式匹配+函數式語法支援 Actor 模型。Java 缺乏這類特性導致 Actor 框架難用無人問津。
聲明:不要求讀者
- 立即拋棄 Java
- 用 C# 替代 Java
- 用 .NET 替代 Java 平台
- 認為 .NET 平台優於 Java 平台 / CLR 強於 JVM
僅在語言層面給出建議,技術選型是多維平衡。下篇開始具體特性對比。