教室裡瀰漫著一陣微妙的沉默。筆記本上連兩個字都還沒寫下,老師就將「球」踢回給學生們——這種教學方式顯然讓大家有些不適應。站在講台上的冒號老師並未開口,只是帶著鼓勵的微笑靜靜注視著台下。
打破僵局的是問號:「老師——」
冒號揮手打斷:「這裡沒有老師,唯一的老師是你自己。本班的特色在於:師生角色模糊,大家自主學習,相互啟發,教學相長。」
問號愣了愣,隨即改口:「老冒——」全班爆發出一陣善意的笑聲,「學軟體開發,當然得先學語言。程式語言這麼多,到底哪個好?或者說學哪個好?」
冒號笑道:「這個問題很典型、很實在,也很初級。」問號被「初級」二字刺得臉頰泛紅。「如果信奉流行的就是好的,或許可以給你一個參考答案。」
冒號轉身在黑板上寫下一串數據——根據 TIOBE 2008 年 3 月統計,流行度超過 1% 的 12 種程式語言佔據了超過 90% 的總份額:Java (20.7%)、C (15.6%)、VB (10.8%)、PHP (10.1%)、C++ (9.8%)、Perl (5.8%)、Python (4.6%)、C# (4.1%)、Delphi (2.7%)、Ruby (2.7%)、JavaScript (2.5%)、D (1.1%)。
引號舉手疑惑:「怎麼那麼流行的 ASP 和 JSP 都不在其中?」
逗號附和:「對啊,還有 HTML 和 XML 怎麼不算?」
冒號解釋道:「ASP、JSP 和 PHP 是動態網頁三大主流方案。它們幾乎採用同樣方式——在靜態頁面植入伺服端可執行代碼。ASP 和 JSP 中的代碼並不涉及新語言,稱之為模板、框架或腳本環境更恰當。PHP 則不同,它本身是一門程式語言,除服務端外還能編寫命令列腳本與桌面應用。至於 HTML、XML、XHTML、WML 等,均為 SGML 子集,屬於標記語言。它們是被處理的『資料對象』,而非處理的『主體』,更接近 CSV、JSON 這類資料格式標準。當然也有例外,XSLT 雖為 XML 形式,卻包含變量定義與處理邏輯,學術上稱為『圖靈完備』,應歸類為程式語言。」
問號殺個回馬槍:「那 CSS、RSS 算程式語言嗎?」
冒號從容作答:「CSS 是樣式語言,非 XML 形式,它將 HTML 樣式邏輯抽離,豐富並簡化了標記。但它缺乏執行指令,更談不上圖靈完備,故非程式語言。RSS 僅是用 XML 描述的資料交換規範,連語言都算不上。」
句號敏銳地指出:「就算這些不是程式語言,也是電腦語言,該學的還是得學。」他察覺老師似有偷換概念之嫌。
冒號點點頭:「不錯,不僅要學語法,還要熟悉開發環境、工具鏈,最重要的是學習其中的思想。」
歎號感嘆:「唉,學完這些頭髮都白了,程式設計師可是吃青春飯的。」
冒號掃視全班:「現在每個人都開口了,這是個很好的開始。開放言論才能解放思想,思想解放了才能產生靈感與激情。缺乏靈感與激情的程式設計師,學起來吃力、做起來辛苦,最後只能感嘆這是吃青春飯的職業。」
歎號不好意思地搔搔頭:「靈感或許能偶爾閃現,激情可就難喽!」
冒號注視著他,一字一頓:「沒有激情作氧氣,靈感的火花注定轉瞬即滅。」