冒號(hào)和他的學(xué)生們(連載4)——編程心法
冒號(hào)和他的學(xué)生們
——程序員提高班紀(jì)事
- 編程心法
言者所以在意,得意而忘言 ——《莊子·外物》
問號(hào)第一個(gè)從小說里走出來,問道:“剛才談到了低級(jí)語言和中級(jí)語言,現(xiàn)在該談高級(jí)語言了吧?”
冒號(hào)微嘆:“高級(jí)語言大概有近千種,流行的也不下幾十種,有時(shí)候選擇過多反而無所適從啊。”
逗號(hào)不以為然:“最流行的不就那么幾個(gè):Java、C++、C#還有VB嗎?”
不意此言遭到冒號(hào)連珠炮似的反問:“可你知道它們?yōu)槭裁磿?huì)流行嗎?是不是學(xué)會(huì)這幾樣就是一個(gè)合格的程序員了?它們會(huì)不會(huì)變得不那么流行,甚至被其他語言取代?如果不會(huì),為什么?如果會(huì),又怎么辦?”
逗號(hào)赧然語塞。
冒號(hào)口氣放緩:“掌握一門語言的語法、工具和技巧固然重要,但那只相當(dāng)于學(xué)會(huì)一門兵器的招法,更重要的當(dāng)然是心法。招法重形,心法重意。得形而忘意,無異舍本逐末;得意而忘形,方能游刃有余。下面要談的就是一種心法:編程范式。”
問號(hào)不解:“編程范式?聽上去很學(xué)究,那是什么東東?”
冒號(hào)續(xù)道:“范式譯自英文的paradigm,也有譯作典范、范型、范例的。如果說每個(gè)編程者都在創(chuàng)造虛擬世界,那么編程范式就是他們置身其中自覺不自覺采用的世界觀和方法論。”
嘆號(hào)吸口氣:“好抽象哦!”
句號(hào)心中一動(dòng):“您是說我們都是虛擬世界的創(chuàng)造者,都在創(chuàng)造自己的黑客帝國?”
大家不禁莞爾。
冒號(hào)動(dòng)情地說:“難道不是嗎?只不過帝國有大小之分、優(yōu)劣之別罷了。當(dāng)你編程之時(shí),便進(jìn)入到自己創(chuàng)造的世界之中。這是你的世界,只有注入你的想象力、創(chuàng)造力和激情,它才有勃勃生機(jī)。你編寫的豈止是代碼,分明還有樂曲;你敲擊的豈止是鍵盤,分明還有琴鍵;你運(yùn)行的豈止是程序,分明還有世界。當(dāng)優(yōu)美的旋律奏起,整個(gè)世界都隨之翩然起舞,一種莫可名狀的滿足是否會(huì)充溢你的全身?”
大家都被冒號(hào)詩化的語言感染了,沒想到編程也可以如此感性。
良久,引號(hào)試探地問:“面向?qū)ο缶幊叹褪且环N編程范式吧?”
冒號(hào)點(diǎn)頭:“不錯(cuò),它是時(shí)下最流行的一種編程范式。順便說一句,‘面向?qū)ο?#8217; 譯自Object-Oriented,但‘面向’二字令人費(fèi)解。據(jù)說有本書叫‘面向?qū)ο蠓椒?#8217;,比別的計(jì)算機(jī)書都暢銷,知道為什么嗎?不少同學(xué)把它當(dāng)成戀愛指南買走了。”
全班笑倒。
冒號(hào)認(rèn)真地說:“將Object-Oriented譯成‘對(duì)象導(dǎo)向’,雖然稍嫌拗口,但更貼切。并非刻意要咬文嚼字,這關(guān)系到對(duì)編程范式的理解。我們知道,編程是為了解決問題,而解決問題可以有多種視角和思路,其中普適且行之有效的模式被歸結(jié)為范式。由于著眼點(diǎn)和思維方式的不同,相應(yīng)的范式自然各有側(cè)重和傾向,因此一些范式常用‘oriented’來描述。換言之,每種范式都引導(dǎo)人們帶著某種的傾向去分析問題、解決問題,這不就是‘導(dǎo)向’嗎?而‘面向’ 的賓語往往是預(yù)先確定的目標(biāo),如面向世界、面向未來、面向用戶、面向問題等等。”
句號(hào)一語驚人:“找對(duì)象是‘對(duì)象導(dǎo)向’的,去約會(huì)是‘面向?qū)ο?#8217;的。”
全班再倒。
句號(hào)得意地解釋:“按夢(mèng)中情人的標(biāo)準(zhǔn)去找對(duì)象,目標(biāo)未定但傾向已定,這就是一種導(dǎo)向,而且是對(duì)象導(dǎo)向。找到之后再約會(huì),不就面向?qū)ο罅藛幔?#8221;
眾人稱絕。
posted on 2008-05-04 00:34 鄭暉 閱讀(3504) 評(píng)論(9) 編輯 收藏 所屬分類: 冒號(hào)和他的學(xué)生們