{eval=Array;=+count(Array);}
當然能!我能,你也能。
下面是原創的中文語法的類似LOGO語言的編程環境,用JavaScript實現:
全部業余完成。先做了一個月,出了雛形之后擱置了一年,又拿起來斷續做了一個月做些性能優化。
實現時,在JavaScript代碼中盡量用了中文命名標識符,因為JavaScript本身支持:
市面上也有不少從零開始實現編程語言的書,我參考了之后用Java實現了一個通用中文編程語言,效果如下:
當然Java源碼里也盡量用了中文命名標識符:
這是在那本書自帶的現成代碼上修改后實現的,前后大概用了十天。
你當然也可以,如果愿意學的話。
先給出結論:中文編程一定能開發出來,而且會逐步在國內達到普及程度,但是一定不會是專業程序員的首選,而是成為其他人員在生活、學習、研究、工作上的強有力輔助工具。
習慣限制了我們的想象力。全世界主流編程語言都是用的英語,才讓我們認為英語過去、現在、未來都是編程語言的不二選擇。
以前,人們認為操作系統不可能用中文,直到簡體中文版的Windows出現,甚至連主板界面都是中文的。以前,人們認為打字就是英文世界的強項,認為中文天生不適合計算機,永遠沒有英文速度快,直到五筆的出現以及后來的智能拼音、中文語音輸入法的普及。以前,人們認為計算機只有高級知識分子才能玩,直到智能手機的普及,連老太太都玩的不亦樂乎,甚至不用鍵盤和鼠標,就用手指劃來劃去。以前,人們認為只有學會了Photoshop才能處理、美化照片,直到美圖秀秀、大眼瘦臉軟件的出現,隨便一個人都可以輕松美化手機拍的照片。以前,安卓系統剛出來時,人們認為國外的APP(特別是游戲)比國內的好用太多,而后來,大家發現手機上竟然95%以上的APP(包括游戲)都是國產的。
例子舉得有點多,但都與本問題有相通之處。中國文化的影響力逐步提高,國人在各方面的水平也在逐年提升,很多高端玩法逐步平民化、大眾化。
我們再回到中文編程這個專業技術上來。計算機高級語言大致分為兩大類。一種叫編譯型語言,一種叫解釋型語言。
編譯型語言,最終都會編譯成計算機能理解的二進制形式,機器指令。也就是說,編譯是將人類能看懂的語言翻譯成計算機能看懂的指令。不論計算機語言是什么,最后編譯出來的東西都是幾乎無差別的。這個計算機語言,可以是英文形式的,也可以中文形式的,可以是語音形式的,也可以是框圖形式的。形式不重要,因為有了編譯過程,最終都會變成機器語言。
解釋型語言是將計算機高級語言就地解釋執行,由宿主程序負責運行。腳本語言通常就是解釋型語言。大家見得最多的就是網頁上的JavaScript腳本了,這個腳本必須依賴于瀏覽器這個宿主才能運行。瀏覽器負責解釋JavaScript腳本。宿主(解釋器)即可以解釋英文形式的腳本,也可以解釋中文形式的,哪怕是語音也照樣可解釋。解釋很多時候都是一句一句地解釋。你對著一個機器人用普通話或粵語說“過來”,它就乖乖地過來,這就是最簡單的腳本解釋。你還可以對著一個空調,按一堆按鈕,讓它解釋成“如果凌晨3點室外溫度低于25度,就關空調,否則凌晨5點再關空調”。連說話和按按鈕都能編程,還擔心中文文字編不了程序?
有的人說,中文一個漢字占用2字節,英文只占用1字節,所以中文極端低效。這里姑且不討論到底漢字占用2個還是3個字節,也別考慮聯合國的文件到底是中文的薄還是英文的薄。就算中文打字更多、更長,又有什么關系呢?很多業內人士都明白,語言不是重點,重點是算法、思想。寫過C++或JAVA的人,去寫Python,就會覺得同樣一個功能,Python的代碼真的好短很短。JAVA這樣寫
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
Python這樣寫
map={}
map["key1"]="value1"
但仔細想想,這個簡單或復雜的形式真的那么重要嗎?這個差別,難道比中英文的差別還要大嗎?如果能忍受C++和JAVA等冗長語法,難道就忍受不了中文?
我們還可以借助先進的IDE自動補全,借助先進的輸入法。所以別再糾結來回切換輸入法這些細節問題了。 習慣限制了我們的想象力。以前,我們用慣了鼠標和鍵盤,誰能想到會有手機上的多點觸控和手勢輸入呢?同樣,我們也無法想象未來的輸入法會進化到什么程度。所以不要用輸入法的暫時的局限性,去限制中文編程的可能性。
而至于認為編譯出來的代碼,中文占用更多的硬盤空間,更多的內存,那就完全是外行了,完全是大錯特錯。之前已經說過了,如果是編譯型語言,編譯出來的東西都是無差別的,代碼里的中文私有函數,中文注釋,中文局部變量名統統都消失了,最后全部成為了機器指令,內存地址,堆棧操作。
總結一下,中文編程,在技術上沒有任何問題,不論是開發效率,還是執行效率,都沒有明顯弱于英語編程的地方。
技術上的可能性說完,再討論一個繞不開的話題,叫做“生態”。目前中文編程一直沒有火起來,主要就是生態問題。也就是說使用中文的國家很少,很多編程大牛都來自歐美、日本、印度等非中文國家。而使用的人少,大家貢獻的庫函數,框架,攻略,教材等就少。這就稱為生態差。生態差,意味著寫個程序,找不到現成的代碼庫,得自己從頭開始寫。生態好,則網上一堆現成的,開箱即用。比如像訓練個神經網絡,如果用Python,直接就有類似tensorflow這類成熟穩定久經考驗的開源庫,而如果是中文編程,若生態差,那沒辦法,自己寫。這工作量…………
中文編程的生態差,意味著,中文編程短期之內不可能成為職業程序員的首選語言。職業程序員是靠編程吃飯的,代碼復雜性很高,體量大,效率、穩定性非常重要。所以會盡量選擇成熟的,生態環境好的語言。
但是,除了職業程序員,還有其他的人群。正如同,除了職業翻譯,還有更多的人要學外語用外語,除了職業攝影師,還有更多的人要照相、發朋友圈發微博。
絕大多數人學英語不是為了當職業翻譯,學籃球不是為了進職業球隊,學office辦公軟件不是為了當文員。
很好理解了,未來,更多的人學編程,不是為了當職業程序員。編程就像是英語、office辦公軟件一樣屬于必備技能。
可以預測,非職業玩家,會更喜歡用腳本語言。腳本語言會在大眾中大量普及。比方說未來,在公有云上購買一個服務,需要使用一段簡單腳本進行高度定制化,從而可以快速實現一個個人網站,可以實現一個深度學習的訓練任務。
那么,這些非職業程序玩家,就會更多地選擇中文編程語言。對于他們來說,不需要高深的,最新的技術,只要夠用就行。這一條規律,對于職業程序員同樣適用。行業分工只會越來越細,比如現代的多數程序員已經不像過去那樣去關注算法,關注匯編了,他們比過去更關注的是選擇什么框架以及學會該框架,更加關注需求。因為高深的技術細節有更專業的人員去實現。再強調一下,這是由社會分工引起的。分工沒有高低貴賤之分。做算法的,做芯片的,做基礎框架的不見得就比做業務編程的更厲害。再比如在很多游戲公司,寫程序看似難度最高,實際上工資不一定有做美工和做策劃的高。而美工和策劃甚至完全不會編程。同樣,只會中文編程,只會調用現成框架(可能是英語寫的)的人,也絕對不會低人一等。
牛逼的思維 不是靠語言來承載的
語言只是個工具 哪個方便 哪個好用 用哪個
不是漢語不好
也不是英語牛逼
編程只是需要一套符號系統,再加上相應的語法。
發明者套系統的人們,他們大多是拉丁語系的,而且還有幾百年的數學物理里面用到的符號代數系統,用的是拉丁字母和阿拉伯數字。
他們只能用他們自己的語言,挑了幾十個英文單詞來作為語法的關鍵字,設計了用拉丁字母加數字加符號的方式來命名,剛好他們有了ascii這套東西可以用。
題主是只針對這幾個英文單詞和命名用的字母嗎?
那簡單替換很容易的。
但是如果一定要出一套自己的編程系統(不只是編程語言),可以參考一下現在的少兒編程吧,圖形界面的,比這種簡單替換的,意義更大。
有可能,但是沒有意義,主要兩點,第一,中文是表意文字,適合于寫文章等,中文可以極大提高閱讀速度和易于理解文字含義,認識中文的人,相信看到的文字一定是含義,而不是一個符號,而英文是符號化的表音語言,而計算機正好是符號化,所以英文更適合計算機程序。
不能...
你有這種想法...
是因為你誤以為0123456789是中文...
其實中文是零一二三四五六七八九...
0123456789是古印度文...
...
所以...
中文有其劣勢...也有一定的優勢...
不是什么場合都適用的...
...
先要回答一個問題:開發以以中文為基礎的編程語言,有什么必要性?以中文為基礎的編程語言,與現有的編程語言相比有什么優越性?
如果僅僅是以中文為基礎的編程語言,中國人看起來方便,或者可以昭顯中國文化的博大精深。那就免談。因為這個建議昭顯了一小部分人的沒出息,又暴露了他們太小看中國的理科生。
10
回答10
回答9
回答10
回答0
回答8
回答9
回答10
回答4
回答6
回答