農林漁牧網

您現在的位置是:首頁 > 農業

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

2022-01-01由 博士聊IT 發表于 農業

計算機語言一共有幾種

最近低程式碼無程式碼成為社會關注的焦點,但低程式碼並不是憑空出現的。從程式語言的發展歷史來看,提高編碼效率是無數軟體前輩的初衷和心血凝結,也是程式語言不斷進化的結果。今天我們就來捋一捋計算機語言的發展歷史,其中既有令人嘖嘖讚歎的成就,也有令人扼腕嘆息的失敗。

從現在主流的觀點來看,計算機語言一共分為1-5代。

最早的計算機,是透過修改其電路或設定物理控制組來程式設計的,這時候的計算機還用不到任何語言,完全依靠硬體線路來進行計算。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

最早的計算機

第一代程式語言(1GL):這時的程式基本採用機器語言編寫,程式大多采用十進位制或二進位制編寫。透過打孔卡、紙帶、磁帶等硬體輔助讀取程式的內容。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

計算機透過紙帶讀取程式

第二代程式語言(2GL)也叫組合語言,它們仍然與特定計算機的指令集和體系結構密切相關,但組合語言使程式更具可讀性,並使程式設計師從繁瑣且容易出錯的地址計算中解脫出來。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

我們所說的第三代程式語言就叫做高階程式語言了,如果放寬界限來看,現在大部分主流的程式設計工具都採用第三代程式語言。首先是ALGOL[1]和LISP[2],然後是用於資料計算的Fortran[3]和麵向物件的Smalltalk[4],C語言是從 1969 年開始開發,到 1973 年間完成的,C語言不僅作為Unix[5]作業系統的系統程式語言,至今還能夠一直保持流行,主要原因還是與硬體聯絡緊密。所以直到今天,C語言一直在擔負和硬體打交道重要職責。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

C語言

迪傑斯特拉(Edsger Dijkstra)是荷蘭著名的計算機學家,是把計算機從工具層面提升到計算機科學層面的重要奠基者。他的貢獻覆蓋了計算機科學的各個領域,包括編譯器、作業系統、分散式、程式設計正規化、程式語言(他和wirth一起參與發明了Algol語言)計算機演算法等多個領域,很多演算法都是以他的名字命名。現在軟體的教科書中都有Dijkstra關於最短路徑計算的演算法以及他的程式“死鎖”的案例。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

Edsger Dijkstra是荷蘭人,與Wirth開發ALGOL(ALGOrithmic Language)

Dijkstra是最早提出軟體架構的科學家,他從多個角度強調,結構正確對軟體成敗至關重要。在他的不斷堅持下,程式語言中清除了Goto語句,使得後續語言都形成了結構化語言的程式設計風格。

隨著Dijkstra對語言結構化的努力,Alan Kay等人發明了面向物件的程式設計方法。C++, JAVA、PHP、Python等語言逐步成為了高階語言的核心。

軟體架構師必讀:面向物件程式設計思想(OOP)的由來與本質

我認為現代程式設計師都應該感謝Dijkstra,正是因為他的努力,才把程式設計這一工作從一門“手藝”變成一門“學問”。可是,大師都慢慢離我們遠去,我們正在把程式設計從一門“學問”變回一門“手藝”。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

多種高階語言

隨著CPU和記憶體等硬體不斷高速發展,軟體需求也變得越來越複雜。我們當前使用的程式語言中有很多類庫,使得程式設計師不必陷入重複造輪子的體力勞動中,當程式設計師要系統執行某個功能時,只需要發出指令,計算機就知道要呼叫並執行對應的程式碼。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

CPU等硬體快速發展

第四代程式語言的提出者當屬 James Martin[7],他是IBM的著名專家,在《

不使用程式設計師的應用程式開發

》一書中首次正式使用術語 4GL(第四代程式語言) 來指代具備一定自動生成程式能力的語言。隨著圖形化介面的進一步的普及和發展,視覺化程式語言逐漸普及,如果在第四代程式語言的基礎上,把系統執行的過程以更視覺化的方式呈現出來,例如圖示、表格、圖表等形態。那就可以做到低程式碼程式設計甚至實現無程式碼平臺。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

James Martin最早是IBM的高階軟體顧問

當時4GL主要包括以下內容:

1、資料庫表驅動(低程式碼)程式設計,通常與框架和庫一起執行。開發人員不使用編碼,而是採用視覺化的操作形成各種所需表單,例如著名的PowerBuilder[8]。實際上,在後來的微軟的Visual Basic 和 Borland 的Delphi上,大家已經體會到了什麼是低程式碼開發的高效率。現在的低程式碼只是那些工具的瀏覽器升級版本。

2、資料報告生成器的程式設計。這些語言對資料格式和將要生成的報告進行描述,並從中直接生成所需的報告或生成程式來生成報告。其實我們現在應用最廣泛的SQL語言,就是在用英文說我們要什麼資料。此外,還有如SAS[9]、SPSS[10]和Stat等資料分析工具,資料管理類的4GL操作介面,主要用於生成報告和統計分析。當前低程式碼有一部分也是資料分類別的工具。

3、軟體模型化的工作成果。軟體工程CASE[11]工具以及可能還有一些附加處理邏輯的規範中,自動生成程式框架甚至整個系統。例如OMG標準組織的BPMN2。0,眾多低程式碼的流程工具正是源於此類成果。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

4GL主要內容

從第四語言的發展來看,我們都可以從當前“低程式碼”軟體中看到這些軟體發展方向的延續。低程式碼正是第四代語言的延續,無程式碼將是第四代語言的終點。

第五代語言旨在讓計算機在沒有程式設計師的情況下解決給定的問題。這樣,使用者只需關心需要解決什麼問題,需要滿足什麼條件,而不必擔心如何實現一個程式或演算法來解決它們。從 1982年到1993 年之間,日本在第五代計算機系統專案中投入了大量研究和資金,希望使用這些工具設計一個龐大的計算機網路。但事實證明,在給定一組定義特定問題的約束下,推匯出一個有效解決問題的演算法,本身就是一個非常困難的問題。

低程式碼無程式碼平臺的未來在哪裡?程式語言的進化史告訴你答案

5GL需要人工智慧助力

從軟體程式設計的歷史來看,第五代語言顯然為時過早。人工智慧的研究沒能為第五代語言插上智慧的翅膀,反倒是第五代語言的失敗直接導致了“符號派”人工智慧領域的沒落,因此在程式語言方面的進展就更慢了,大多數計算機科學家都認為短期內此路不通。雖然,五代機後期趕上網際網路的崛起,分散了技術的注意力。雖然第五代語言失敗了,但也真正地為程式語言探索一把“未來”!

[1] ALGOL是演算法語言(ALGOrithmic Language)的簡稱。

[2] LISP是定位編號分離協議的英文Locator ID Separation Protocol的縮寫。實質是一個IPinIP的協議。

[3] 公式翻譯器,是FormulaTranslation的中文翻譯。

[4] Smalltalk,被公認為歷史上第二個面向物件的程式設計語言,和第一個真正的整合開發環境(IDE)。Smalltalk由艾倫·凱,Dan Ingalls,Ted Kaehler,Adele Goldberg等於70年代初在Xerox PARC開發。

[5] Unix是20世紀70年代初出現的一個作業系統,除了作為網路作業系統之外,還可以作為單機作業系統使用。

[6] 艾茲格·W·迪科斯徹在1972年獲得過素有計算機科學界的諾貝爾獎之稱的圖靈獎。

[7] 詹姆斯·馬丁(James Martin),牛津大學計算機專業教授,博士,美國著名的管理和資訊科技專家,馬丁顧問公司的主席。

[8] 它包含一個直觀的圖形介面和可擴充套件的面向物件的程式語言PowerScript,提供與當前流行的大型資料庫的介面,並透過ODBC與單機資料庫相連。是客戶機/伺服器結構下,基於Windows3。x、Windows95和Windows NT的一個整合化開發工具。

[9] statistical analysis system統計分析系統。

[10] SPSS(Statistical Product and Service Solutions),“統計產品與服務解決方案”軟體。

[11] CASE工具原來指用來支援管理資訊系統開發的、由各種計算機輔助軟體和工具組成的大型綜合性軟體開發環境,隨著各種工具和軟體技術的產生、發展、完善和不斷整合,逐步由單純的輔助開發工具環境轉化為一種相對獨立的方法論。

【博士聊IT】,感興趣,加關注。

「博士聊IT」一文看懂程式設計的本質,程式設計師有前途麼?

七步成詩,軟體是如何把人類思維翻譯成機器程式碼的

軟體架構師必讀:面向物件程式設計思想(OOP)的由來與本質

中國為什麼沒有自己的程式語言?哲學、數學和語言學基礎是關鍵