1. 程式人生 > >中英文程式碼對比之ZLOGO 4 & LOGO

中英文程式碼對比之ZLOGO 4 & LOGO

基於前文中文程式語言之Z語言初嘗試: ZLOGO 4的一些評論, 此文嘗試作一個非常簡單的程式碼對比, 使討論更加有例項根據. 下圖是節選自前文最後的示例程式碼, 由於選取的對照LOGO版本 (alancsmith.co.uk/logo/, 2002年第一版) 不支援單行內多條語句, 特意將所有語句分行編寫. 另外, ZLOGO暫不支援迴圈, 因此也不使用LOGO中的迴圈語法.
LOGO vs. ZLOGO程式碼對比
之前有評論中提到有的LOGO版本支援"FD 10", FD應該是Forward的縮寫. 在現今的程式碼風格中, 一般將可讀性放在追求程式碼簡短之前, 而且在硬碟價格白菜價的今天, 一般只有幾KB的原始碼檔案完全不需要考慮佔用硬碟的問題. 選取的這個版本的LOGO的關鍵詞更可讀也更與ZLOGO接近.

下面是一些個人的觀感:

  1. "色"和"度"的字尾使用, 使這些操作的語義更加一目瞭然.
  • "SetPenColour 0"還需要額外記住0對應的是白色, 2是紅色.
  • 因為和"Foward 20"的結構相似性, “Left xx"給我這樣的LOGO新手的第一感覺是"向左走xx(長度)”, 轉念才意識到這是"左轉xx度"的意思.
  1. "前進"和"左轉"這樣長度相同的詞語使得程式碼看上去相對於使用"Forward"和"Left"更加齊整.
  2. SetPenColour這樣的Camel風格是為了使一個關鍵字能夠包含多個單詞而採用的一種風格, 也在很多主流程式語言中常用, 它比全大寫更加可讀. 但在英文自然語言中, 這種風格幾乎已經不再使用. 另外, "Left xx"在英語自然語言中是"Turn Left xx degrees"的意思, 這裡已經大大簡寫了. 相比之下, ZLOGO中的詞法語法基本與中文自然語言一致.
  3. 還是SetPenColour, 由於這個版本是英國開發者編寫的, 它使用了英式英語拼寫"Colour", 而不少中國人學習的應該是美式英語, 這種微小的差別很容易導致誤寫.
  4. 在兩者自帶的幾乎是純文字編輯器的開發環境中編寫程式碼的過程中, 程式碼輸入的時間遠小於測試/查錯/調整演算法的時間, 而且不少程式碼段是拷貝貼上生成的. 個人感覺英文輸入的筆誤率大於中文的(本人的一個Forward寫成了Foward).

寫到這裡, 發現這個版本還是支援簡寫的, 於是一併比較(右側):
LOGO vs. ZLOGO程式碼對比簡寫版
上面的#1和#3仍然適用. 另外, “FD/LT"相對於"前進/左轉”, 個人覺得後者更加對中文使用者友好. 當然, 以少兒的優良記憶力, 這些一眼看去無意義的縮寫也可以在不明白其原意的情況下在短期內記住.

但如果寫了這個程式碼之後, 不碰LOGO語言, 半年後再看這段程式碼, 或者十年後再看呢? 恐怕又要重新查一遍使用者手冊. 當然可以說, 這隻要供小學生學兩個學期而已以後不可能再碰了, 但如果有一種無論放下多久再拿起時仍然一目瞭然的語法設計(甚至對於完全不懂LOGO的人), 又何樂而不為呢?