用漢語能開發出計算機軟、硬體嗎?

其實我本意是想問如果世界上沒有英語一類的字母文字,只有漢語這類文字還能不能發明出計算機。(我覺得應該是可以的,歷史發展的潮流嘛。實在不行先發明英語唄。)如果能,是不是難度很大?如果用漢語發明了計算機,鍵盤會是什麼樣?(只有幾個部首或者是五筆那樣的?)編譯語言會是什麼樣?(一大堆眼花繚亂的偏旁部首還是漢字?)


謝謝邀請。

中文編程語言一直都有,易語言,還有中蟒計劃,都是例子。但沒有意義。

程序設計語言不是自然語言,它只是一種控制計算機的方式。理論上,你直接在紙帶上打孔,也能做到我們現在能做到的一切。我們在編譯前端所做的所有工作,是讓我們能夠以一種更高效率的方式表達自己的意圖,而在這一過程中,我們從未創造過任何新的表達方式——我知道這對很多編譯狂熱者來說很難接受,可惜這就是事實。所以程序設計語言和自然語言並無關係。即使以英文為母語的人,如果沒有受過計算機教育的訓練,他們也不能理解程序員們在做什麼。而如今國內的程序員們,英文並不一定都很好。就是明證。

如果僅僅從語言學意義上說,計算機程序設計語言的基本構造實際上非常少:存儲、條件判斷、循環(或遞歸,如果你希望以函數式的觀點看待問題),剩下的,諸如跳轉,過程,甚至如今迷倒萬千眾生的所謂面向對象「思想」和類型系統「理論」,事實上都屬於附加的東西——它們的目的是讓我們寫出的程序更有效率地被閱讀和檢驗,而不是寫出程序的充分條件。所以,如果歷史真的給了我們一個機會讓我們用中文表達,我相信最終生成的語言也不會相差多遠。因為這些語言背後的基本原理,其實都是一樣的。

至於我們選擇英文作為主要的表達方式,僅僅是歷史的巧合。而全球的程序員之所以沒有憤然選擇自己的母語重新發明語言,最直接的原因,是因為如今的程序大部分都是全球合作的結果——即使是本地公司,也需要國外程序員們開發的工具和程序庫。對嚴肅的工程師來說,語言是交流和驗證想法的工具,而非佈道的武器。如果國際合作不可避免,那麼我們會選擇對交流最有效的工具。對我們而言,效率即價值。

靠程序設計語言來增強民族自豪感,聽起來似乎很不錯,但不過是幻想而已。


說實話,你在C的編譯器外面加個殼,然後把C語言所有的關鍵字翻譯過來(如果=IF,else=否則。。。。),然後再搞一套變數命名規則,新鮮的中文版C語言就出爐了。
所以說,計算機語言和自然語言的關係不大,反正關鍵字就那麼幾個,至於變數的命名規則,你可以寫拼音嘛。


完全可以。類似的問題還有如能開發出三進位的計算機嗎?能用木頭造出計算機嗎?答案都是可以的。

不過為了不扯遠。就只說漢語問題。

現在的軟體開發可以說90%的部分都是用英語在做。這其中的根本原因還是在於,對於計算機最了解的人,還是以英語為母語的歐美人士居多。大多數高質量的軟體工具以及通行的軟體開發理論都是由他們創造的。因此無論是編程語言、工具、還是其他東西,基本都是英文的。

圖1 阿蘭·麥席森·圖靈(英國人) - 計算機科學之父

圖2 約翰·馮·諾依曼(美籍匈牙利人) - 現代計算機理論開創者

但這只是由於歷史原因造成的。雖說是現狀,但是也並不是因此就武斷的認為只有通過英文才能創造軟體,而中文日文泰文等等其他國家的語言就不行。

事實上,如果我們仔細的觀察計算機的運作原理,必然會發現一個基本的道理——計算機內部只有處理數字的能力,而根本不認識除此之外的任何東西。也就是說,即使是英文編寫的軟體,本身也是轉化為計算機能處理的數字序列來執行的。其實語言和文化這樣人類才能明白的東西,到了計算機那裡,什麼也不是了。

這背後的原因,倒不是計算機的發明者為了兼顧其他國家的人而特別設計的。只不過是因為計算機本身的使命就是「計算」,因此必然是以數字為核心的了。

這對於全世界來說倒是非常棒的了。因為這樣一來,使用什麼語言(中文日文泰文等等)來開發軟體其實在理論上來說都應該都是沒問題的。只要最終把這些語言所寫的軟體統統翻譯為計算機能理解的數字序列,那麼就能正確的執行。

但這不由得讓人疑惑,既然如此,為什麼大家不用中文日文泰文來編寫軟體呢?還要堅持用英文來編寫?難道使用自己國家的文字和語言不是更好嗎?

這說起來頗為無奈。前文已經說過,對計算機最了解的人,還是歐美人士居多。在這樣的背景下,即使是日本這樣的發達國家都還尚處於追趕和學習歐美的階段,更不用說像我們這樣的發展中的國家了。我們雖然可以在現階段創造出以中文為基礎的軟體開發方法,但是成為主流的可能性微乎其微。難以適應目前的市場發展需求。

更具體的來說,別說是中文開發的軟體,就算是中國人開發的軟體,只要和歐美同類產品一比,立馬就會有很多人覺得應該還是國外的更好一些吧。這其實和許多人買車時,總覺得進口車才好,國產車總是差一些一樣,屬於類似的道理。

歸根結底,當國家的整體經濟實力不強時,不僅僅在科技領域只能充當追隨者的角色,在文化領域同樣處於弱勢地位(哪怕你的文化再有特色)。

這就是現實的無奈,但也是我們奮鬥的方向。


這個其實很好回答,計算機語言其實就是數學,建立在數學邏輯上的產物。語言是表達方式,只要看看是不是象形語言就不能產生高級邏輯的數學成果就知道了。到現在為止,所有產生高級文明的語言,都有自己的數學、天文、物理、化學成就,這些表明,語言是建立在計算機語言之上的表達方式,用任何一種語言來表達,都沒有問題,也沒有關係。
諸如某位大神所言漢語的輸入、指代等,只能說明其漢語功底之薄弱,也註定了他在計算機領域的造詣也不會過於的深厚。英文在計算機中的應用,正如某位仁兄所言完全是巧合,歷史及經濟的原因使得計算機基礎研究產生於英語國家,而計算機從產生到如今各種高級編程語言的過程,早已解決了英文作為編程語言的各種問題及難點,這些問題是全世界的科學家和程序員共同努力所解決的。而重新以一種語言來表達,在當今世界發展來說,不值得,也不現實。國內某位海歸失敗的原因其實也是這個,想以一人之力段時間完成此壯舉,同樣不現實。除非,,,舉國科學家從基礎開始,舉國換語言,產生以漢語作為表達計算機語言的環境,並以此不屑努力,堅持50年,那時才會有人說「我們有些程式和邏輯,你們英語表達不了」的感慨。但是不要忽略,人家也在同時進步。


其實從另一個角度來看,也可以說是為了提高效率而使用字母文字。
中國之前推行的漢字簡化工作就是為了提高文化普及程度,方便學習與辨識。
到了最近,對於非專業人士來說,拼音輸入也要比五筆輸入簡便的多。漢字的特殊結構決定了它不能像字母文字一樣易於表示。所以我個人覺得就算中國佔領了主導地位,也會尋找一種替代辦法,比如現在的拼音。
如果說開發環境要中文,那其實不難,而各種指令不了解詞語本源的意義也不是大問題,重要的是能在短時間內熟練掌握技巧,這樣來看,一種簡單的語言是最佳選擇。


硬體我不太懂,但是我知道:你要是高興,完全可以用0-1兩個數字來編程,來開發軟體。事實上,現在也是這麼做的。各種操作系統,軟體,最後都會變成指令,也就是類似001100111110101101這樣的。操作系統,軟體什麼做的事情就是「翻譯」,把人話翻譯成01001010010010001111。英語可以這樣翻,中文也可以,德語,泰語,斯瓦西里語,阿拉伯語……都可以這樣做。


當然可以。不過國外已經英文寫了底層的代碼,而且這些涉及國際合作,兼容各種,英語做為國際語言,比中文當然有很大優勢,而且中文語法複雜,多音字呀各種,要是做計算機語言要訂各種規則,現在的大環境下,用中文做計算機語言沒有多大的實際意義,只是為了增加點民族自豪感而已,與其研究新的規則,不如在現在的語言下做創新研究,或許中文變世界語言後就有人來制定相關的規則和協議了


有一個叫做易語言的,你可以去看一下,不過感覺上就是把許多關鍵詞換成了漢語而已。

至於為什麼中文沒有在編程語言中佔有一席之地,原因其實很簡單:成本高,利益少。計算機科學的發展中心一直都在美國,美國人發明和奠定了CS的很多building block,比如彙編和C。之後的語言或多或少都是在此基礎上延伸而來的。所以英語已經是程序員這個圈子的標準工作語言了(事實上說英語也是不恰當的,只是英語裡面非常小的一個子集而已)。另起爐灶,改用中文或者別的語言,受眾就大大的減少了。發明一門語言,並且其目的不是自娛自樂,如果因為語言原因無法推廣,自然沒有人去做這種吃力不討好的事情。


有」海龜「人士認真做過漢語操作系統(說的不夠嚴謹,但大致是這麼回事),失敗了。


硬體設計看起來和語言無關,可能談不上用中文設計硬體吧。
軟體本質上是數學,用哪國語言表達倒是其次。
還可以擴展一下原來的問題:可以用法文、德文嗎?可以用廣東話嗎?可以用某縣的特殊的廣東話嗎?


能。關鍵是決心。


推薦閱讀:

什麼是函數式編程思維?
王小波的計算機水平到底有多好?
epoll 或者 kqueue 的原理是什麼?
作為一個進大學才學編程的學生,如何能以後達到溫趙輪三位大神的水平?
從零基礎開始想發一篇深度學習的論文要提前準備什麼?寫論文的周期大概多久?

TAG:編程 | 計算機 | 計算機科學 | 計算機專業 |