中國人是更好的程式設計師,外國人不是,從兩者對世界的命名是否良好中就十分明顯的表達了這一點。

開源礦工發表於2020-12-12

英文世界的很多概念都是一團糟,詞彙太多不像中文那樣無需改變,每個字都直指最低層的時空,所有的詞彙都是基本概念的組合。英文太複雜太混亂了,外國人迷失在了address、reference、place、location、pointer等詞彙中去了我們不想迷失。中文更加準確變化更少,無論什麼領域只要使用中文詞彙重新編碼都可以望文知義。

 

老外的英文系統十分糟糕,但老外的計算機語言還是比英文良好些的,老外用&mut T區分&T和可變的&T的區別而不是用&T和xzdscdgxxx真是一大進步。老外要是像造英文那樣將&T和&mut T造成abdsdd和fssgs就令人發狂了,&mut T和&T很像中文。f(a: int)中的a叫int魔方體(空間結構體)或者叫一段int長度的樹枝(空間結構體),f(a: &int)叫空間結構體的位置。
中文只有兩個概念,英文得有十來個概念十來個詞彙吧?

 

所有的程式語言的設計無非是造一套詞彙描述同一件事情:一種理解方法是讓記憶體空間不動,去掉過程中記憶空間位置的能力,然後在外層過程中呼叫f(&a)意思是外層空間將a的位置傳給f即忘記了a的位置,另一種理解方法是去掉記憶體空間的位置和容量不動的性質,使在函式體們中行走線上程(擬人,執行緒是個人)可以攜帶著空間結構體運動,他搬動、摘掉/複製、搬起、攜帶、行走、放置。這是兩個維度,一個從記憶體靜止的維度出發,一個從執行緒運動的維度出發,一個時間維度一個空間維度,合適的層次使用合適的方法,結合和隔離並用,同一個事物不能同時出現在不同的空間。

因為所有的程式語言都是在使用相似或相異的詞彙描述同樣的事情,所以描述的是否直觀、是否有畫面感、是否同時使用了左邊的邏輯順序能力和右邊的空間圖形能力就是評判一個程式語言的詞彙系統是否良好的標準。

 

如果說命名是評判程式設計師良好程度的重要標準,那麼中國人是比外國人更好的程式設計師。
老外的世界太混亂,比如':='叫'海象運算子',無論從外在的造型還是邏輯的內涵都和海象扯不上關係。老外的混亂到處都是,不只表現在計算機程式設計中,在對更廣泛的世界的程式設計中體現的混亂更是隨處可見:比如居然用人名命名地點、什麼莫斯科、華盛頓,我們的文化中從來沒有這麼隨意的命名過世界,濟南一定在濟水的南面,濟一定和水有關,四川一定有四條川,貴陽、瀋陽一定在某條水的北面或者某個山的南面,天津一定有水有渡口,北京一定是首都不是首都的時候叫北平,南京應該改名因為它破壞了我們的良好的知識系統它的名字在作惡,老外的世界太亂太沒有章法了。我們根本就不可能將:=命名成海象,因為這樣命名無法節能、高效、持久下去,所以就無法跨越千年,不利於後人的維護則必然被後人糾正或遺忘在歷史長河中,短時間小範圍沒有問題,但是可以肯定華盛頓、莫斯科1千年以後肯定不是還叫華盛頓莫斯科,但可以肯定濟南1千年後還叫濟南(除非我們的文化記憶力不再有能力持久千年或這片土地發生了面目全非的地殼運動,像我這樣的人依舊知道黃河中下游以前叫濟水並且持續千年的知道但黃河改道週期只有幾百年,我們的記憶力導致我們有能力容忍百年甚至千年的不良,但話說回來理想情況下應該要麼濟南改名要麼黃河改回濟水)。濟南、商丘、貴陽、北京、上海、四川等不僅一看就是地名而且知道這個地點的重要性質,這就是良好的變數命名法則,程式設計就是應該這樣命名。村莊部落要麼依山要麼依河,無論山還是河都是‘川’字造型的,依‘川’放置幾個村落就是點幾個點就是‘州’,這是一種抽象和形象並用的概況能力,我們(包括先人、今人、後人)有一種從衛星看地球的能力,為了區分是更加依山還是更加依水同理只需再點三個點‘洲’,你看我們的先人是多麼良好的在編碼這個世界,他/她們是多麼良好的程式設計師。中國人是更好的程式設計師,外國人不是,從兩者對世界的命名是否良好中就十分明顯的表達了這一點。
當然,我們在小的尺度下並非時時處處良好,倪家橋沒有找到橋所以應該改名而沒改名,但可以肯定以前肯定有過橋或者那個村子裡的人是外來移民他/她們用的他/她們老家的橋命名的新家的名所以叫倪家橋,這種情況很多,這不是好的命名方法不利於後世編碼者的維護無法跨越千年存在,將來這些名字都會遺忘在歷史中的。

相關文章