民初思韻網

加入收藏   設為首頁
選擇語言   簡體中文
你好,請 登陸 或 注冊
首頁 人文思韻 傳奇人物 歷史思潮 時代作品 話題討論 國民思韻 民初捐助 賬戶管理
  搜索  
    人文精神 >>> 技術話題—商業文明的嶄新時代
字體    

我心目中的理想語言
我心目中的理想語言
蔡學鏞     阅读简体中文版

文 / 蔡學鏞

主動學習各種新語言是我的習慣,於是我經常到PLnews網站上,看看各種語言的消息,遇到不認識的語言,就會花一些時間研究一下值不值得學。我自己有一套語言評分標準,我理想中的語言必須符合這篇文章所描述的各點(依重要次序排列)。我到現在還沒有找到完全符合這些嚴苛條件的語言。

你也可以拿這些條件來檢視目前你正在使用的語言(例如Java、C#、Ruby),看看你的語言表現如何。

【支援Unicode】 所有不支援Unicode的語言,都應該被埋在上個世紀的歷史灰燼中。雖然Unicode早就已經是主流,但是還有許多語言不支援Unicode,這是相當重大的缺點。即使號稱有支援Unicode,也有支援程度的差異,例如有的語言對Unicode的支援是添加上去的,有點格格不入,且有些語言對Unicode的支援相當有限。

【寫一次,任何地方都可以執行】 最好支援Windows、MacOS、Linux、BSD等主流OS,甚至Windows Mobile、Symbian等手機的OS。

【超小的執行環境】 現在的軟體都大得很可怕。幾乎所有現代的語言,都需要10MB以上的執行環境,而30MB以上的也不少見。執行環境太大有什麼不好:(1) 下載、安裝時耗費時間與資源; (2) 執行時速度「可能」會比較差;(3) 潛藏其中的bug「可能」比較多。因此,我極度抗拒癡肥的語言與框架。

【有包含GUI】 大多數Open Source的語言,都不包含GUI,而是使用外部的Tk、wxWidget等套件,這些外部套件往往:(1) 相當龐大;(2) 效率「可能」不是很好; (3) 不見得和語言本身的paradigm吻合,使用起來可能會導致精神錯亂。除了GUI套件,我也希望具有比較好的2D / 3D繪圖引擎。

【用更少,做更多】 程式寫得越長,不代表越有價值。能夠用精簡的程式碼,做出許多重要的事,才是我們追求的目標。寫出來的程式短,會比較好維護。

【支援Meta-Programming】 我希望能夠不用再透過ANTLR等工具,而是可以直接用語言本身,輕易地寫程式處理另一種(我自己發明的)小語言,並讓兩種語言之間可以互相融合,達到最佳的DSL(Domain Specific Language)境界。如此一來,開發的效率會相當高,且需要的程式碼會相當少。

我希望重要的DSL都已經有人先建立好了,我可以直接採用,特別是Web、資料庫、GUI這些部分。

【好用的剖析器】 現在程式需要剖析文字檔的機會很高,我不喜歡Regular Expression,也不想用外部的ANTLR,我希望能有更方便使用的剖析器,讓我可以利用BNF(Backus-Naur Form)的語法。

【能夠呼叫C】 許多時候,光靠語言本身還是做不到的事,必須呼叫OS或其他廠商的C程式庫。如果語言和C之間能有良好的介面,那麼呼叫外部程式庫就會很容易。我希望不只能呼叫C,也可以做成call-back函式,被C回頭呼叫。

【具有良好的Web與資料庫方案】 現在做軟體開發,十之八九都是Web加上資料庫。如果該語言可以輕易地做出這樣的方案,會相當具有吸引力。

【嵌入組合語言】 寫C程式時,我們可以嵌入x86組合語言,以提升速度。我希望現在一般的語言也能夠有類似的作法,讓我可以嵌入比較低階的語言,捨棄一些檢查(例如型別檢查,陣列邊界檢查),換取速度的提升。

【豐富的資料型別Literal】 我希望語言能有豐富的資料型別,且能夠用literial的方式寫出這些型別的值,如此一來,寫起來非常簡短方便,表達力更好,並可能有其他的好處(例如讓DSL的設計更容易)。

可惜目前主流的語言,Literial的寫法都只有不到10種,不外乎是整數、小數、字串、陣列,距離我所謂的「豐富」,還有好幾倍的差距。

【輕量級的RPC / SOA】 我希望語言能支援RPC / SOA,且使用輕量級的方式,不要搞得像IBM的SOA那麼複雜。複雜的東西又貴又難上手,失敗告終的機會很高。

【支援RIA】 提供瀏覽器Plug-In,讓程式可以在瀏覽器內執行,也可以獨立於瀏覽器而執行。為了要支援RIA,也要提供許多標準協定(例如HTTP)。

【有互動模式】 對於初學者來說,互動模式是相當好的學習方式,而且也可以當作Shell,進行日常一些基本的操作(例如檔案系統管理)。

【免費與開放源碼】 軟體開發的錢很難賺,能省則省。另外,開放源碼的語言比較有保障,比較不會因為廠商關門而使得該語言產品的用戶變成孤兒。

【有很強的社群】 社群可以幫我們解決技術問題,告訴我們到哪裡取用資源。社群的存在,可以幫助語言健康地發展。

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jerryxycai/archive/2008/02/29/2132485.aspx

2010-07-15 08:32

歡迎訂閱我們的微信公眾賬號!
春秋茶館訂閱號
微信號 season-tea(春秋茶館)
每天分享一篇科技/遊戲/人文類的資訊,點綴生活,啟迪思想,探討古典韻味。
  清末民初歷史人物  民初人物
晚清改革家強權人物
袁世凱(1859年9月16日-1916年6月6日),字慰亭,號容庵,河南項城人,故又稱袁項城,清末民初的軍事和政治人物,北洋系統的領袖。袁世凱出生於清咸豐九年八月二十日(....
從國務總理到修道士
陸徵祥(1871-1949年),字子欣,一作子興,上海人。中國近代著名的天主教人士,也是著名的外交官。他出生于一個基督教家庭,父親是一位基督教新教徒,曾經在倫敦傳教會工作....
資助民初精神網
        回頂部     寫評論

 
評論集
暫無評論!
發表評論歡迎你的評論
昵稱:     登陸  註冊
主頁:  
郵箱:  (僅管理員可見)

驗證:   验证码(不區分大小寫)  
© 2011   民初思韻網-清末民初傳奇時代的發現與復興   版權所有   加入收藏    設為首頁    聯繫我們    1616導航