第242章 我來改變世界
能否使用漢語編程不是關鍵,看看英語相對於漢語在計算機學科上的優勢。
不少人在討論中文計算機,想像如果計算機是中國人發明的,那會是什麼樣?首先,鍵盤會是什麼樣?像算盤像八卦還是像古箏?其實當有一個成型的實例,所有的可能性就都沒了。所以,有了現在的計算機,中國人發明計算機會什麼樣就永遠無法知道啦。即使有,也會被說成了借鑒了現有計算機,或者是現在計算機的改進等等。
那麼,英語相對於漢語在現代計算機中到底有什麼優勢?我以為有兩個:
1、編碼。
英文天然是編碼語言,這顯然更適合機器實現。尤其是在計算機發展初期,硬體技術還很簡陋,較少的編碼顯然更容易實現。英文字母只有26個,加上常用符號也只需7位二進位便可表示。英文字母筆劃簡單,只要8x8點陣就可以顯示蠻好的字元。雖然隨著硬體技術的發展,現在字元少筆劃簡單已經不再是問題,但歷史積累卻留下了。現代計算機最小的操作單元是位元組,8位二進位。表示英文釣釣有魚。而其它字元只能以多位元組表示。現在的各種編碼方案都給英文字母是特殊地位。比如儘管unicode面向所有代碼,但英文字母卻特別地只用8位。所以,其它語言一旦不了解原有的編碼方案,就不能正確解碼,都成了亂碼。而英文字元卻永遠沒有亂碼。
2、積累
第二個優勢是沒有辦法的,也就是歷史的積累。現在計算機學科幾乎所有重要的文檔、軟體、論文都是英文的或者都有英文的,並都以英語習慣編寫。對於母語是其它語言的就是天然屏障。
那麼解決方案呢?第二個積累沒有辦法,只能靠時間慢慢解決。來說編碼。
根據前面分析,產生亂碼的原因是多位元組造成的。以前硬體不行,8位已經是天了(讓intel成名的是4004,4位機)。8位最多只有256個符號,表示漢字顯然不行。如果從軟硬體統一定義16位為最小操作單位,即一位元組為16位。那麼,漢字就與ASCII完全同等地位。同時顯示字模也以16x16為基本顯示模式,由硬體完成。那樣,漢字就與英文字母完全同等地位。這將更適合漢字在計算機中的應用。
舉報| 9樓|點贊|打賞|回復|評論
作者:樂橙垟垟1Lv 10 時間:2016-11-24 19:05:11
破譯編碼來了:
【鋤禾日當午,汗滴禾下土。誰知盤中餐,粒粒皆辛苦。雙位元組漢字就容易亂碼,而單位元組的英文字母就不會。中文計算機最重要的就是使漢字與英文字母得到同等地位同樣對?】
舉報| 10樓|點贊|打賞|回復|評論
作者:樂橙垟垟1Lv 10 時間:2016-11-24 19:10:59
【以前硬體不行,8位已經是天了(讓intel成名的是4004,4位機)】——計算機的位數,和處理能力沒一毛錢關係,一個位元組不夠不會用兩個或更多的位元組嗎?現在的計算機也只是32位、64位,難道只能處理4個、8個文字嗎?文字編碼,就是根據需要進行編碼,很正常呀,英文字元8位夠了,漢字至少要2位元組,這有啥問題嗎?就因為2比1大,就困難很多嗎?2位元組、1位元組對計算機來說,存儲容量不就多一倍嗎?有啥問題?
舉報| 11樓|點贊|打賞|回復|評論
作者:樂橙垟垟1Lv 10 時間:2016-11-24 19:24:05
能否使用漢語編程不是關鍵,看看英語相對於漢語在計算機學科上的優勢。
不少人在討論中文計算機,想像如果計算機是中國人發明的,那會是什麼樣?首先,鍵盤會是什麼樣?像算盤像八卦還是像古箏?其實當有一個成型的實例,所有的可能性就都沒了。所以,有了現在的計算機,中國人發明計算機會什麼樣就永遠無法知道啦。即使有,也會被說成了借鑒了現有計算機,或者是現在計算機的改進等等。
那麼,英語相對於漢語在現代計算機中到底有什麼優勢?我以為有兩個:
1、編碼。
英文天然是編碼語言,這顯然更適合機器實現。尤其是在計算機發展初期,硬體技術還很簡陋,較少的編碼顯然更容易實現。英文字母只有26個,加上常用符號也只需7位二進位便可表示。英文字母筆劃簡單,只要8x8點陣就可以顯示蠻好的字元。雖然隨著硬體技術的發展,現在字元少筆劃簡單已經不再是問題,但歷史積累卻留下了。現代計算機最小的操作單元是位元組,8位二進位。表示英文釣釣有魚。而其它字元只能以多位元組表示。現在的各種編碼方案都給英文字母是特殊地位。比如儘管unicode面向所有代碼,但英文字母卻特別地只用8位。所以,其它語言一旦不了解原有的編碼方案,就不能正確解碼,都成了亂碼。而英文字元卻永遠沒有亂碼。
2、積累
第二個優勢是沒有辦法的,也就是歷史的積累。現在計算機學科幾乎所有重要的文檔、軟體、論文都是英文的或者都有英文的,並都以英語習慣編寫。對於母語是其它語言的就是天然屏障。
那麼解決方案呢?第二個積累沒有辦法,只能靠時間慢慢解決。來說編碼。
根據前面分析,產生亂碼的原因是多位元組造成的。以前硬體不行,8位已經是天了(讓intel成名的是4004,4位機)。8位最多只有256個符號,表示漢字顯然不行。如果從軟硬體統一定義16位為最小操作單位,即一位元組為16位。那麼,漢字就與ASCII完全同等地位。同時顯示字模也以16x16為基本顯示模式,由硬體完成。那樣,漢字就與英文字母完全同等地位
【比如儘管unicode面向所有代碼,但英文字母卻特別地只用8位。】——錯的。UNICODE編碼是所有的文字全部用16
UNICODE編碼至少存在兩個嚴重的問題:1.對大量英語國家(特別是美國等發達國家就是用英語、英語也是世界使用最廣泛的語言)反而不兼容,原來一位元組表示一字母,UNICODE改用2位元組(一位元組和ASCII一樣,另一位元組是0);2.編程語言中如C,字元串使用編碼為0的作為結束符,而UNICODE字元有0編碼(特別是英文字元每個都有0),因此UNICODE不能用在C語言中。為此在UNICODE編碼的基礎上,重新定義了幾個變種的編碼,UTF-8/UTF-16等,其中UTF-8是最常用的一種編碼,它是一種變長度編碼,規定:英文和ASCII碼兼容,還是1位元組編碼,其它國家文字,用2-3位元組不等的長度表示(由於英文佔用了大量編碼空間,其餘還用2位元組就不夠用了,必須有3位元組的文字)。網頁編碼大量採用UTF-8,在同一網頁中,可顯示不同的文字。