冒號老師將程式語言比作宗教:每種語言都有忠實信徒,易引發「宗教戰爭」。信徒們往往只熟悉一兩門語言,卻敢妄評優劣。冒號點破:「無知與偏見總是相輔相成。」真正的比較需要深入理解,正如武學招式,刀法以劈為主、槍法以扎為主,強行互換自然別扭。
C++ 之父 Stroustrup 語錄:「語言只有兩種:一種怨聲載道,一種無人問津。」語言發展史實際上是「批判史」:Stroustrup 嫌 Simula 慢、BCPL 太底層發明 C++;Gosling 嫌 C++ 不爽發明 Java;微軟惱恨 Java 請 Hejlsberg 發明 C#;Matsumoto 用 C++ 不順手發明 Ruby。冒號引用辯證法:「發明新語言是對舊語言最高的贊美——承認其價值並試圖超越。」
針對「語言只是工具,哪種都差不多」的偽高手論調,冒號嗤之以鼻:「能拿錘子當刀使嗎?」圖靈獎得主 Alan Perlis 指出:若語言不影響你對程式設計的看法,就不值得學。理解語言獨特之處至關重要,沿襲舊習慣會鑄成大錯。例如「學會 C 就會 C++」是誤區:C++ 真正源頭是 Simula,C 的背景若不理解 OOP 反成障礙。C++ 與 Java 差異巨大:指標運算、記憶體控制、運算符重載、自由函數、標準庫豐富度等貫穿始終。
冒號拋出問題:程式設計師最不能離開的軟體是什麼?IDE?編輯器?答案是編譯器/解釋器——語言實現的標誌。強調「語言為本,餘者為末」,警惕本末倒置:沉迷 IDE 新功能、框架比較,卻忽視語言本身的寶藏。語言包含語法、範式與設計思想。即使未來拖拉元件生成程式,本質仍是元程式設計,依賴更高階語言。技術含金量與薪資成正比,需比別人多一門扎實功夫。
綜合學員意見,冒號公布計劃:先談動態語言,再評主流語言,隨後以 Java 為主、C++/C# 為輔專題討論,最後實戰專案。採用「迭代學習法」:在具體知識與抽象理論間折返,增量式螺旋上升。「著陸後還會再次起飛」,周而復始。