程序員現在只考慮文本。壹些語言取得了突破,例如 Smalltalk 和 Hypercard。Smalltalk 承擔了文本的很多復雜性,並將程序的整體結構置於文件系統、瀏覽器和編輯器的環境中。
我們還開始了電子表格中的函數式編程系統,其中每個單元格代表壹個基於立即值的函數或其他單元格中的函數。
因此,電子表格可以被視為壹個完整的編程系統。
然而,電子表格只是壹種方式,對於壹般編程(自己編寫電子表格程序),我們需要更通用的方式,比如 Smalltalk。
文本是線性和二維的,但程序是圍繞更復雜的維度構建的。基於文本的編程的難點在於將多維映射到二維。
許多程序員考慮使用文本編輯器進行編程(vi 和 emacs 是糟糕的例子),但我們應該使用程序編輯器,以便在沒有基於文本的滾動的情況下輕松訪問系統中的“遠程”定義。大多數 IDE 對此感到失望,因此我們也需要超越 IDE。
我們應該將超文本的鼻祖 Ted Nelson 的思想應用到編程中。
文本只能用於程序中執行某些操作的部分(功能),而不應用於整個系統的結構或框架。
壹句話提醒。當我說我們應該從 1960 年代基於文本的思維中解放出來時,我們應該只拋棄文本,我們應該將結構化思維保留在語法背後,尤其是指稱和公理語義中基於語義的語言定義。這些先進技術的應用使編程變得足夠簡單,可供我們其他人使用。
這樣做的壹個重要影響是語言和風格之戰可以成為過去。編程基於程序的語義(以前的中間分析樹),可以以不同語言和風格的幾種視圖呈現給任何程序員的口味。
但首先,我們需要擺脫許多程序員的心理偏見,他們認為他們采用的語言在某種程度上是神奇的。這在很大程度上是幾十年來糟糕的教學和認為編程必須是壹種特殊方式的人的結果。我們需要改變整個行業的態度。
計算和編程是關於探索的。我們應該恢復這種探索的感覺和興奮,拋棄過去奄奄壹息的基於文本的語言。