首輪提問
敬畏老師莫如敬畏真理 ——題記
眾人面面相觑,一陣沉默後開始竊竊私語,顯然有些不太習慣這種教學方式——筆記本上還沒寫兩個字呢,老師就把球給踢回來了。
冒號也不說話,只是微笑地望著大家。
還是問號打破僵局,開始發問:“老師——”
冒號揚手打斷他:“這裡沒有老師,唯一的老師是你自己。本班的一個特色是:師生角色模糊,大家自主學習,相互啟發,教學相長。”
問號頓了頓:“老冒——”全班哄堂大笑,“學軟件開發,當然得先學語言,計算機語言這麼多,到底哪個好,或者說學哪個好?”
冒號笑道:“這個問題很典型,很實在,也很初級。”問號被“初級”這個字眼刺得面上一紅,“如果信奉流行的就是好的,那麼也許可以給你一個參考答案。”
冒號轉身在黑板上寫下一串清單——
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%)
“根據TIOBE截至2008年3月份的統計結果,選出以上流行度超過1%的12種程序語言。從中可以看出,它們的總占有率超過90%,應該算得上是當今主流語言的代表。”
引號很疑惑:“怎麼可能那麼流行的ASP和JSP都不在其中呢?”
“對啊,”逗號附和著,“還有HTML和XML怎麼不算呢?”
冒號解釋道:“ASP、JSP和PHP是動態網頁最流行的三種解決方案。動態網頁的實現方式很多,但它們采取的幾乎是同樣的方式——在靜態網頁中植入一些能在服務器端運行的代碼。在ASP和JSP中,這些代碼並不涉及新的語言,故稱之為模板、框架或腳本環境更合適些。PHP則不同,本身是一種新的程序語言,並且除了應用於服務端外,還能編寫命令行腳本和桌面應用程序。至於HTML和XML,還有XHTML、WML等,均為SGML(Standard Generalized Markup Language)的子集,屬於標記語言(Markup Language)。與通常意義上的程序語言有所不同,它們是處理的對象而不是處理的主體。可以說它們更接近數據格式標准,正如CSV和JSON一樣。當然也不絕對,XSLT是一種特殊的XML,但卻包含變量定義和處理邏輯,更學術地說,它是圖靈完備的(Turing-complete),應當屬於程序語言。”
問號殺了個回馬槍:“那CSS、RSS算是程序語言嗎?”
冒號從容作答:“與XSLT類似,CSS是一種樣式語言(Stylesheet Language),但不是以XML的形式出現。它將傳統的HTML中的樣式邏輯提煉出來,大大豐富和簡化了HTML。不過它基本沒有執行指令,更談不上圖靈完備,因此不屬程序語言。至於RSS,只是一種用XML來描述的數據交換規范,甚至連語言都算不上。”
“就算這些不是程序語言,那也是計算機語言,該學的還是得學。”句號想起問號開始問的是計算機語言,老冒有偷換概念之嫌。
“不錯,”冒號點點頭,“不僅要學語言,還要熟悉相應的開發環境和開發工具等等,當然最重要的是學習其中的思想。”
“唉,學完這些頭發都白了,程序員可是吃青春飯的。”歎號歎息道。
冒號掃視了一下,說道:“現在班上每個人都尊口已開,這是一個很好的開始。開放言論才能解放思想,思想解放了才能產生靈感和激情。缺乏靈感和激情的程序員,學習起來吃力,工作起來辛苦,最後就會感慨這是吃青春飯的職業。”
歎號不好意思地撓了撓頭:“靈感嘛,偶爾也許能閃一下,激情可就難喽!
冒號注視著他,一字一頓地說:“沒有激情作氧氣,靈感的火花注定轉瞬即滅。”