近幾年來,在TIOBE公司每個月發(fā)布的編程語言排行榜[1]中,C#總是能擠進(jìn)前10名,而在近10年的編程語言排行榜中,C#總體上呈現(xiàn)上升的趨勢。C#能取得這樣的成績,有很多因素在起作用,其中,它在語言特性上的銳意進(jìn)取讓人印象深刻(圖 1)。
圖1 C#各版本的創(chuàng)新點
2010年發(fā)布的C# 4,最大的創(chuàng)新點是擁有了動態(tài)編程語言的特性。
1 動態(tài)編程語言的中興
動態(tài)編程語言并非什么新鮮事物,早在面向?qū)ο缶幊陶Z言成為主流之前,人們就已經(jīng)使用動態(tài)編程語言來開發(fā)了。即使在Java、C#、C++等面向?qū)ο缶幊陶Z言繁榮興旺、大行于世的年代,動態(tài)編程語言也在“悄悄”地攻城掠地,占據(jù)了相當(dāng)?shù)拈_發(fā)領(lǐng)域,比如 JavaScript業(yè)已成為Web客戶端事實上的主流語言。
最近這幾年,動態(tài)編程語言變得日益流行,比如Python、Ruby都非常活躍,使用者眾多。
這里有一個問題,為什么我們需要在開發(fā)中應(yīng)用動態(tài)編程語言?與C#和Java這類已經(jīng)非常成熟且功能強(qiáng)大的靜態(tài)類型編程語言相比,動態(tài)編程語言有何優(yōu)勢?
簡單地說,使用動態(tài)編程語言開發(fā)擁有以下的特性:
(1)支持REPL(Read-evaluate-print Loop:“讀入à執(zhí)行à輸出”循環(huán)迭代)的開發(fā)模式,整個過程簡潔明了,直指問題的核心。
舉個簡單的例子,圖 2所示為使用IronPython[2]編程計算“1+2+……+100”的屏幕截圖,我們可以快速地輸入一段完成累加求和的代碼,然后馬上就可以看到結(jié)果:
圖2 使用IronPython編程
如果使用C#開發(fā)就麻煩多了,您得先用Visual Studio創(chuàng)建一個項目,然后向其中添加一個類,在類中寫一個方法完成求和的功能,再編寫調(diào)用這一方法的代碼,編譯、排錯,最后才能得到所需的結(jié)果……
很明顯,對于那些短小的工作任務(wù)而言,動態(tài)編程語言所具備的這種REPL開發(fā)模式具有很大的吸引力。
(2)擴(kuò)展方便。用戶可以隨時對代碼進(jìn)行調(diào)整,需要什么功能直接往動態(tài)對象上“加”就是了,不要時又可以移除它們。而且這種修改可以馬上生效,并不需要像C#那樣必須先修改類型的定義和聲明,編譯之后新方法才可用。
換句話說:使用動態(tài)語言編程,不需要“重量級”的OOAD,整個開發(fā)過程迭代迅速而從不拖泥帶水。
(3)動態(tài)編程語言的類型解析是在運行時完成的,可以省去許多不必要的類型轉(zhuǎn)換代碼,因此,與靜態(tài)編程語相比,動態(tài)編程語言寫的代碼往往更緊湊,量更少。
出處:CSDN
責(zé)任編輯:bluehearts
上一頁 下一頁 拓展動態(tài)編程的新領(lǐng)域 [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|