簡單介紹VB.NET C#區(qū)別和動(dòng)態(tài)語言
大家有的時(shí)候會(huì)很迷茫,不知道到底VB.NET還是C#好,其實(shí)我認(rèn)為個(gè)有個(gè)的好處,看個(gè)人喜歡什么,拿不準(zhǔn)主意的朋友看看這里,就VB.NET C#分析一下。當(dāng)前來自軟件的最首要的信息之一是針對(duì)Microsoft Visual Basic .NET開發(fā)者的。VB.NET和Microsoft Visual C#都是構(gòu)建在通用語言運(yùn)行時(shí)(Common Language Runtime—CLR之上,這意味著它們都向下編譯成通用中間語言(Common Intermediate Language—CIL)。
#T#由于二者均向下編譯成相同的代碼,因而兩個(gè)語言內(nèi)部也不存在很大的差別。但是,兩種語言卻由微軟兩個(gè)不同的團(tuán)隊(duì)來維護(hù),而且?guī)啄陙淼倪@種分離由于開發(fā)團(tuán)隊(duì)在各自產(chǎn)品上有不同的視角和理念,導(dǎo)致VB.NET C#這兩種語言演變出許多語言方面的特性。許多令人興奮的特性最初出現(xiàn)在C#中***卻成了VB.NET的特性,很多VB.NET開發(fā)者都感到了這一點(diǎn)。自然地,這引起了VB.NET陣營的不滿。
聯(lián)合發(fā)展是微軟的一個(gè)承諾,借此承認(rèn)VB.NET C#為相同重要的語言,而且微軟承諾在語言特性的發(fā)展方面,這些特性會(huì)同時(shí)加入到兩個(gè)語言中。開發(fā)者不再需要為了某個(gè)特性而選擇某個(gè)語言,也不再需要討論到底哪個(gè)語言更好,他們要做的只是從語法方面來選擇自己的語言就可以了。也許C#開發(fā)者會(huì)有一點(diǎn)揮之不去的優(yōu)越感,VB.NET開發(fā)者會(huì)為此不爽,但聯(lián)合發(fā)展后VB.NET開發(fā)者可以提醒“驕傲”的C#開發(fā)者,因?yàn)閮煞N語言只是不同外表下的同一個(gè)東西。
動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime)的介紹
微軟很敏感地意識(shí)到.NET Framework并不是構(gòu)建應(yīng)用時(shí)的唯一選擇??焖俚乜纯船F(xiàn)在的開發(fā)環(huán)境,你會(huì)發(fā)現(xiàn)有很多語言選擇。人們花費(fèi)時(shí)間和精力用這些語言來寫出有用的組件,問題來了:怎么能夠讓這些用其他語言寫出的組件不至于在.NET上重寫?
也許即將發(fā)布的.NET 4.0最令人激動(dòng)的新特性是動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)。就像通用語言運(yùn)行時(shí)(Common Language Runtime—CLR為靜態(tài)型語言如C# 和VB.NET提供了通用平臺(tái)一樣,動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)為像JavaScript, Ruby, Python甚至COM組件等動(dòng)態(tài)型語言提供了通用平臺(tái)。這代表.NET Framework在互操作性方面向前邁進(jìn)了一大步,提供了一種語言操作的抽象,共享存儲(chǔ)空間避免數(shù)據(jù)在進(jìn)程中反復(fù)的集結(jié),像垃圾收集一樣的一套通用語言特性,以及將一種數(shù)據(jù)表達(dá)轉(zhuǎn)換成另一種。
在更高層,你可以認(rèn)為動(dòng)態(tài)語言運(yùn)行時(shí)(Dynamic Language Runtime—DLR)有三個(gè)層:
.NET語言集成(.NET Language Integration)
DLR核心組件(DLR Core Components)
語言結(jié)合(Language Binders)