作者 | Gabriel Gonzalez譯者 | Sambodhi策劃 | 劉燕本文作者對(duì)
編程歷史的終結(jié)作了一番暢想,這是作者的一家之言,我們無(wú)法準(zhǔn)確判斷未來(lái)編程將會(huì)轉(zhuǎn)向何處,但是我們可以根據(jù)其發(fā)展軌跡,就像本文作者一樣,做出大概的判斷(未必準(zhǔn)確)。
本文最初發(fā)表于作者個(gè)人博客,經(jīng)原作者 Gabriel Gonzalez 授權(quán),InfoQ 中文站翻譯并分享。我花了不少時(shí)間思考這個(gè)問(wèn)題:
編程歷史的終結(jié)
可能是什么樣子的。我所說(shuō)的“歷史的終結(jié)”,就是編程范式不再有重大發(fā)展的時(shí)候。對(duì)于編程的“命運(yùn)”我很關(guān)心,因?yàn)槲腋敢鈪⑴c那些讓我們接近終極編程模式的開(kāi)源項(xiàng)目。從我的經(jīng)驗(yàn)來(lái)看,這類工作壽命更長(zhǎng),影響更大,有助于推動(dòng)整個(gè)編程領(lǐng)域的發(fā)展。那么,對(duì)于編程而言,歷史的終結(jié)會(huì)是怎樣的呢?是不是:
一些人將編程視為已經(jīng)解決的問(wèn)題,并將所有新的語(yǔ)言和范式視為舊語(yǔ)言或范式的翻版。在他們看來(lái),剩下的工作就是慢慢地優(yōu)化事物,排除錯(cuò)誤,或者解決非技術(shù)性的問(wèn)題(比如人事管理或者資金),從而完善我們的工藝。這一觀點(diǎn)我個(gè)人并不認(rèn)同,因?yàn)槲蚁嘈?,至少,函?shù)式編程范式將逐漸取代面向?qū)ο蠛兔钍骄幊谭妒剑m然函數(shù)式編程未必就是終極編程范式)。
或許機(jī)器可以將我們的自然語(yǔ)言指令翻譯成代碼,從而減輕了我們準(zhǔn)確表達(dá)意圖的負(fù)擔(dān)?;蛟S一些足夠智能的、人工智能驅(qū)動(dòng)的 IDE 可以為我們自動(dòng)地完成大多數(shù)程序。同樣,我也不相信這一觀點(diǎn),而且我認(rèn)為 Dijkstra 在他的文章《論“自然語(yǔ)言程序設(shè)計(jì)”的愚蠢性》(
On the foolishness of "natural language programming**")中很好地推翻了這一觀點(diǎn)。老實(shí)說(shuō),我不能肯定什么是正確答案,但是我會(huì)給出我自己關(guān)于編程的歷史終結(jié)的猜測(cè)。
數(shù)學(xué)DSL我的觀點(diǎn)是,編程的下一個(gè)邏輯步驟是分成兩個(gè)沒(méi)有重疊的編程領(lǐng)域:
- 運(yùn)行時(shí)構(gòu)建
- 數(shù)學(xué)編程語(yǔ)言
具體地說(shuō),我預(yù)期
編程語(yǔ)言在本質(zhì)上將發(fā)展成為更具數(shù)學(xué)特性的語(yǔ)言,讓用戶編寫的程序像純粹的數(shù)學(xué)表達(dá)式一樣表達(dá)其意圖。舉例來(lái)說(shuō),考慮下列布爾邏輯“和”運(yùn)算符和函數(shù)合成運(yùn)算符的數(shù)學(xué)規(guī)范:
True