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