程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 4何以成為微軟鋒利的刀——動態編程語言(1)

C# 4何以成為微軟鋒利的刀——動態編程語言(1)

編輯:關於C語言

近幾年來,在TIOBE公司每個月發布的編程語言排行榜[1]中,C#總是能擠進前10名,而在近10年的編程語言排行榜中,C#總體上呈現上升的趨勢。C#能取得這樣的成績,有很多因素在起作用,其中,它在語言特性上的銳意進取讓人印象深刻(圖 1)。51CTO向您推薦《8月編程語言排行榜:微軟鋒利的刀C#

圖 1 C#各版本的創新點

2010年發布的C# 4,最大的創新點是擁有了動態編程語言的特性。

1 動態編程語言的中興

動態編程語言並非什麼新鮮事物,早在面向對象編程語言成為主流之前,人們就已經使用動態編程語言來開發了。即使在Java、C#、C++等面向對象編程語言繁榮興旺、大行於世的年代,動態編程語言也在“悄悄”地攻城掠地,占據了相當的開發領域,比如 JavaScript業已成為Web客戶端事實上的主流語言。

最近這幾年,動態編程語言變得日益流行,比如Python、Ruby都非常活躍,使用者眾多。

這裡有一個問題,為什麼我們需要在開發中應用動態編程語言?與C#和Java這類已經非常成熟且功能強大的靜態類型編程語言相比,動態編程語言有何優勢?

簡單地說,使用動態編程語言開發擁有以下的特性:

(1)支持REPL(Read-evaluate-print Loop:“讀入à執行à輸出”循環迭代)的開發模式,整個過程簡潔明了,直指問題的核心。

舉個簡單的例子,圖 2所示為使用IronPython[2]編程計算“1+2+……+100”的屏幕截圖,我們可以快速地輸入一段完成累加求和的代碼,然後馬上就可以看到結果:

圖 2 使用IronPython編程

如果使用C#開發就麻煩多了,您得先用Visual Studio創建一個項目,然後向其中添加一個類,在類中寫一個方法完成求和的功能,再編寫調用這一方法的代碼,編譯、排錯,最後才能得到所需的結果……

很明顯,對於那些短小的工作任務而言,動態編程語言所具備的這種REPL開發模式具有很大的吸引力。

(2)擴展方便。用戶可以隨時對代碼進行調整,需要什麼功能直接往動態對象上“加”就是了,不要時又可以移除它們。而且這種修改可以馬上生效,並不需要像C#那樣必須先修改類型的定義和聲明,編譯之後新方法才可用。

換句話說:使用動態語言編程,不需要“重量級”的OOAD,整個開發過程迭代迅速而從不拖泥帶水。

(3)動態編程語言的類型解析是在運行時完成的,可以省去許多不必要的類型轉換代碼,因此,與靜態編程語相比,動態編程語言寫的代碼往往更緊湊,量更少。

動態編程語言主要的弱點有兩個:

(1)代碼中的許多錯誤要等到運行時才能發現,而且需要特定的運行環境支持,對其進行測試不太方便,也不支持許多用於提升代碼質量的各種軟件工程工具,因此不太適合於開發規模較大的、包容復雜處理邏輯的應用系統。

(2)與靜態編程語言相比,動態編程語言編寫的程序性能較低。不過隨著計算機軟硬件技術的不斷進步,比如多核CPU的廣泛應用,動態編程語言引擎和運行環境不斷地優化,動態編程語言編寫的程序性能在不斷地提升,在特定的應用場景下,甚至可以逼近靜態語言編寫的程序

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved