回覆列表
  • 1 # 鴨脖子

    一些科普常識和結論(例如 UTF-16 因為變長特性導致的無能,以及內碼表是不合理的爛設計)是沒有問題的。但是,從動機、論證的目的以及參照的依據看,存在相當多的低階錯誤,應予視為誤導。

    1-3

    第一個錯誤是混淆了“文字”的用途。文字首先是人類書寫系統的直觀具象。文字編碼的最初設計也遵循這個基本要點,雖然之後作為妥協混入了“控制字元”也已有相當長的歷史了,但那隻應該是妥協。

    文中提到文字作為通訊協議表現形式的常用現狀。這仍然只是妥協。注意通常稱為二進位制編碼的非文字是無法被文字取代的,因為嚴格地來說文字充其量只是二進位制編碼的一種。原用於反映書寫系統、之後作為妥協折衷產物的這種形式具有非常多不適合編碼的普遍糟糕特性(例如浪費資源),只是體現不合理的 worse is better 渣設計的歷史包袱的例項而已,其被普遍接受並非來自於自身的技術優勢——換句話說,也是妥協。

    造成使用者不得不“享受”這種現狀的,早年罪魁禍首之一是 UNIX 係為首的業界通行設計,近年來則是 Web 。 Unicode 承前啟後不假,但在“流行”充其量是拾人牙慧—— UTF-8 幾乎全是借 Web 的東風而大勢所趨,儘管技術上來講對 Linux userland 來說它更能發揮作用。

    這些規範在標準化的意義上來講相當不得體。作為其中影響最巨大的幾個餘孽(和妥協失敗品),基於 UNIX 早年對文字處理的過於簡化的錯誤假設,ISO C 長期以來沒能說清楚什麼叫“字元”(character) ; ISO C++ 也有類似的問題。(並且相關術語定義的混亂和微妙的不一致仍然存在於正式(normative) 文字中。)

    4

    不透明“引數”是此文較有建設性的論點,可惜並沒有給出實用的做法。因為語言設計中普遍缺乏約束,這基本只能靠使用者(程式設計師)自覺,效果沒法指望。更正確的姿勢是,對“字符集”和編碼方案透明,減少字符集特性的冗餘假設。這樣,簡單起見只有 ASCII 自然擴展才是 UTF-8 的核心優勢。“完整” Unicode 支援從頭到尾都是沒有說服力的。

    5

    之所以 Unicode 有必要單獨抽出來評價,是因為在概念混淆和把妥協強行扶正為正式慣用技倆推廣的不可替代的消極作用。

    技術上 Unicode 有顯著的問題。作為妥協的以“字符集”為中心特性之一的規範,一個明顯的笑話是“字符集”無法精確定

  • 中秋節和大豐收的關聯?
  • 有兩種教育:假定學生是智慧的而維護之,或假定學生是愚昧的而開化之,你認為哪種好?