編程語言學(xué)習(xí)之惑
最近喜歡上了python,吸引我的地方的是其簡潔之美以及方面的類庫,于是最近一個月我?guī)缀醵紝I(yè)余時間交給了python,但是越學(xué)習(xí)越覺得迷茫。
“學(xué)習(xí)編程語言的過程實際上就是學(xué)習(xí)該編程語言的語法+該編程語言的類庫”,這句話不是我說的,也不止一個人提到過。一門編程語言的語法其實也很簡單,估計會任何一門編程語言的人拿出來一天甚至是半天的時間都可以學(xué)會,但是學(xué)習(xí)該編程語言的類庫又是一個漫長的過程,浩如煙海的類庫不是一朝一夕就可以搞定的,難道學(xué)習(xí)一門新的編程語言就是為了從一門語言的類庫泥潭中跳入到另外一門語言的類庫泥潭中嗎?
我也曾經(jīng)想借python的學(xué)習(xí),來系統(tǒng)的學(xué)習(xí)一下編程語言的設(shè)計,也曾掌握過大致編程語言的語法結(jié)果,這些東西估計在《形式語言在自動機》中會有更系統(tǒng)的闡述,但是有的時候琢磨琢磨學(xué)習(xí)這些有什么用呢?除非是要設(shè)計一種范式或者設(shè)計一門新的編程語言,當(dāng)前之下,編程語言五花八門,再怎么設(shè)計也趕不上現(xiàn)在的,何況也沒有那個功力。編程語言也就是一種編程的協(xié)議而已,我覺得跟HTTP協(xié)議、FTP協(xié)議差不多少,無非定義的就是動作+數(shù)據(jù)。
再說說那些浩如煙海的類庫,這些類庫其實就是造作考究的輪子,在解決問題方面,不過是多線程,還是網(wǎng)絡(luò)通信,還是其他的什么遍歷,都有一些比較成熟的模型和算法,各種不同的語言只不過根據(jù)這些模型和算法實現(xiàn)了輪子,這些輪子經(jīng)過技術(shù)大牛們的精雕細(xì)琢,也經(jīng)過廣大碼農(nóng)們的“聯(lián)合測試”,相對已經(jīng)比較成熟,所以我們不需要重新造,直接拿過來用即可。但是在沒有遇到對應(yīng)的case情況下,我覺得我很難去“精通”這個輪子,也許僅僅是用這個輪子寫了一個“Hello world”,或者使用場景有限的情況下也很難體會到其中的設(shè)計之妙。
語言只是工具,只是媒介,相當(dāng)于手中的劍,不管使用的銅劍,還是鐵劍,還是一把木頭劍,都可以去練那些高深的劍譜,都能玩出花來,只不過制造考究的劍能夠錦上添花而已。在這一點上,我覺得選擇C這把劍。python就當(dāng)是一把槍好了,隨身攜帶,使用方便。
原文參考自web開發(fā)網(wǎng):http://www.software8.co/wzjs/cxyyg/3635.html
原文參考自web開發(fā)網(wǎng):http://www.software8.co/wzjs/cxyyg/3635.html