《黑客與畫(huà)家》第14章讀書(shū)筆記

編程語(yǔ)言發(fā)展的方向

Lisp和Fortran代表了編程語(yǔ)言發(fā)展的兩大方向。前者的基礎(chǔ)是數(shù)學(xué),后者的基礎(chǔ)是硬件架構(gòu)。從那時(shí)起,這兩大方向一直在相互靠攏。直到如今最高級(jí)的主流語(yǔ)言也只是剛剛接近Lisp水平。

按照J(rèn)ava,Perl,Python,Ruby的順序觀察這些語(yǔ)言,你會(huì)發(fā)現(xiàn)一個(gè)有趣的結(jié)果,至少如果你是一個(gè)Lisp黑客,你就看得出來(lái),排在越后面的語(yǔ)言越像Lisp。

為什么Lisp語(yǔ)言很特別?

它包含了9個(gè)思想,至今還有2個(gè)是Lisp獨(dú)有的。

  1. 條件結(jié)構(gòu)(即if-then-else結(jié)構(gòu))
  2. 函數(shù)也是一種數(shù)據(jù)類(lèi)型。它有自己的的字面表達(dá)形式,能夠存儲(chǔ)在變量中,也能當(dāng)做參數(shù)傳遞。
  3. 遞歸
  4. 變量的動(dòng)態(tài)類(lèi)型,所有的變量都是指針,所指向的值有類(lèi)型之分,而變量本身沒(méi)有。復(fù)制變量就相當(dāng)于復(fù)制指針,而不是復(fù)制它們指向的數(shù)據(jù)
  5. 垃圾回收機(jī)制
  6. 程序由表達(dá)式組成。Lisp程序是一些表達(dá)式樹(shù)的集合,每個(gè)表達(dá)式都返回一個(gè)值。
  7. 符號(hào)類(lèi)型。它實(shí)際上是一種指針,指向存儲(chǔ)在散列表中的字符串。
  8. 代碼使用符號(hào)和常量組成的樹(shù)形表達(dá)法
  9. 無(wú)論什么時(shí)候,整個(gè)語(yǔ)言都是可用的。Lisp不真正區(qū)分讀取期,編譯期和運(yùn)行期??梢栽谧x取期編譯或運(yùn)行代碼,可以在編譯期讀取或運(yùn)行代碼,可以在運(yùn)行期讀取和編譯代碼

語(yǔ)言流行的因素

優(yōu)秀的語(yǔ)言不一定會(huì)被市場(chǎng)接受,很可能無(wú)人使用,因?yàn)檎Z(yǔ)言的流行不取決于它本身。它取決于:

  1. 專(zhuān)家級(jí)黑客的看法和使用
  2. 廣告宣傳
  3. 某一個(gè)流行計(jì)算機(jī)系統(tǒng)的腳本語(yǔ)言
  4. 找到一個(gè)流行的依附的系統(tǒng)
  5. 免費(fèi)的實(shí)現(xiàn),實(shí)體書(shū)和在線文檔

再設(shè)計(jì)

最好的文字來(lái)自不停的修改,對(duì)軟件開(kāi)發(fā)也適用,編程尤其如此,再多的修改都不過(guò)分。為了寫(xiě)出優(yōu)秀的軟件,同時(shí)具備兩種沖突的信念

  • 出生牛犢一般,對(duì)自己的能力信心萬(wàn)丈,對(duì)解決難題的可能性保持樂(lè)觀
  • 對(duì)當(dāng)前解法的合理性保持懷疑

任何措施,只要能讓“再設(shè)計(jì)”周而復(fù)始地進(jìn)行下去,就都是可取的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容