中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

我心目中理想的編程語言

2018-07-20    來源:編程學習網

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

  一個好的編程語言應該讓你馳騁在自己的腦海中,自由飛翔,而不是設置重重障礙拖累你。除了這個籠統(tǒng)的說法之外,我自己有一套語言評分標準,我理想中的語言必須符合這篇文章所描述的各點(依重要次序排列)。你也可以拿這些條件來檢視目前你正在使用的語言(例如 Java、C#、Ruby),看看你 的語言表現如何。

  【支持 Unicode】 

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

  【寫一次,到處都可執(zhí)行】

  最好支持 Windows、MacOS、Linux、BSD 等主流 OS,甚至 iOS、Android 等手機 OS。

  【支持各種軟件開發(fā)】

  我希望能用一個語言做系統(tǒng)開發(fā)、驅動開發(fā)、DLL 開發(fā)、應用開發(fā)、服務器開發(fā)、腳本開發(fā)。

  【超小的執(zhí)行環(huán)境】

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

  【包含 GUI】

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

  【用更少,做更多】

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

  【支持 Meta-Programming】

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

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

  【好用的剖析器】

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

  【能夠調用 C 的庫】

  許多時候,光靠語言本身還是做不到的事,必須呼叫 OS 或其他廠商的 C 程序庫。如果語言和 C 之間能有良好的調用規(guī)范,那么調用外部程序庫就會很容易。我希望不只能調用 C,也可以做成 call-back 函數,讓 C 回調。

  【具有良好的 Web 與數據庫方案】

  現在做軟件開發(fā),十之八九都是 Web 加上數據庫。如果該語言可以輕易地做出這樣的方案,會相當具有吸引力。

  【能嵌入匯編語言】

  寫 C 程式時,我們可以嵌入 x86 匯編語言,以提升速度。我希望現在一般的語言也能夠有類似的作法,讓我可以嵌入比較低階的語言,舍棄一些檢查(例如型態(tài)檢查,數組邊界檢查),換取速度的提升。

  【豐富的數據類型 Literal】

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

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

  【輕量級的 RPC / SOA】

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

  【有交互操作模式】

  對于初學者來說,交互模式是相當好的學習方式,而且也可以當作 Shell,進行日常一些基本的操作(例如文件系統(tǒng)管理)。

  【免費與開放源碼】

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

  【有很強的社群】

  社群可以幫我們解決技術問題,告訴我們到哪里取用資源。社群的存在,可以幫助語言健康地發(fā)展。

  【支持瀏覽器】

  代碼可以編譯成 JavaScript/HTML5,讓程序可在瀏覽器內執(zhí)行。

  我到現在還沒有找到完全符合這些條件的語言;蛘,你已經發(fā)現了這樣的語言?

標簽: linux 代碼 服務器 腳本 數據庫

版權申明:本站文章部分自網絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:圖文大話編程語言史

下一篇:什么是最好的編程語言?(怎樣才能愛上編程呢?)