C#的神話與現(xiàn)實(shí)
發(fā)表時間:2023-08-12 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]2002年01月10日 這個星期,微軟終于發(fā)布了.Net的面向?qū)ο蟮钠炫炚Z言C# 。它是由Anders Hejlsberg也就是Turbo Pascal的設(shè)計(jì)者為Web 服務(wù)的開發(fā)量身定做的。微軟一...
2002年01月10日
這個星期,微軟終于發(fā)布了.Net的面向?qū)ο蟮钠炫炚Z言C#
。它是由Anders Hejlsberg也就是Turbo Pascal的設(shè)計(jì)者為Web 服務(wù)的開發(fā)量身定做的。微軟一年半多的時間以來一直把它說成是最美好的東西,而Java以及開放源代碼團(tuán)體則嘲笑它不過是一個惡人嘴里吐出來的另一種語言罷了。
換句話說,對C#的批評意見隨處可見。但是,在通過幾次電話采訪以后,我獲得了Derek Ruths的幫助,他是Advanced Reality項(xiàng)目的首席科學(xué)家和參與者,這個項(xiàng)目旨在使任何應(yīng)用程序都能夠相互合作。Ruths用Java開發(fā)了他的Resence AR程序,但是他也在積極的探索C#語言。他與Gartnet分析師David Smith的觀點(diǎn)成為了這篇關(guān)于C#的神話與現(xiàn)實(shí)的文章的要點(diǎn)。
C#是“類Java的!边@句話在一方面是對的,但是在其它方面看來卻不對。微軟否認(rèn)C#是對Java作出的一種“反應(yīng)”,并聲稱它是C++的直接的繼承物--雖然Java自身也可以這么認(rèn)為。據(jù)報道,將Java應(yīng)用程序移植到C++上來相對容易一些,而且它所使用的API函數(shù)和類有相同的名字。與Java一樣,C#也有垃圾內(nèi)存回收的功能,也就是說無用的內(nèi)存在應(yīng)用程序運(yùn)行的過程中被自動的回收。但是這兩種語言之間存在一個巨大的差別:Java是平臺無關(guān)的而C#在很大程度上只適合Windows操作系統(tǒng)。
Java仍然占有很大的優(yōu)勢。Java產(chǎn)生的原因部分的是作為C++的改進(jìn),C++是一種很難掌握但是非常強(qiáng)大的語言。但是Java的出現(xiàn)已經(jīng)有一陣子了,而C#則剛剛開始。“所以在Java中存在一些早期設(shè)計(jì)遺留下來的難以逾越的障礙,”Ruths說。而C#則在語法上增加了一些“甜頭,”(Ruths語)--它的關(guān)鍵字和概念能夠讓開發(fā)過程稍微容易一些。另一方面,他認(rèn)為C#的窗口模型與Java Swing相比顯得弱一些?偟恼{(diào)查顯示,在綜合了兩者的強(qiáng)項(xiàng)和弱項(xiàng)以后,C#和Java在它們的功能和易用性上是有得一比的。
C#最終會使Java程序員投降。Gartner的觀點(diǎn)與上面的有所不同。Java雖然還有很大的勢力。很少有人會懷疑C++和Visual Basic的程序員會很快轉(zhuǎn)移到C#上來--但是對于Java程序員來說,如果他們想轉(zhuǎn)移陣地的話,他們必須投身到由所有微軟平臺構(gòu)成的自我封閉的世界中來--而這些平臺對于企業(yè)后端應(yīng)用的滲透還很不夠。Java程序員為什么要拋棄這么多的東西呢?當(dāng)然,.Net計(jì)劃中很大的一個動機(jī)就是在企業(yè)后端應(yīng)用方面占領(lǐng)一席之地,但是這個過程需要時間。
如果你想開發(fā).Net Web 服務(wù),你就要學(xué)習(xí)C#。也許這是個好主意。微軟不斷重復(fù)的句子是“C#是C/C++家族中第一個面向組件的語言。”Ruths同意這個觀點(diǎn)“總的說來,它要更容易一些!钡.Net中的通用語言運(yùn)行庫使得你能夠使用任何其它一種不同的語言來編寫.Net組件。
另一個有趣的的觀點(diǎn):Ruths認(rèn)為C#可能會重走Java小應(yīng)用程序走過的可下載的,客戶端運(yùn)行的應(yīng)用程序的道路(但不會在移動計(jì)算領(lǐng)域出現(xiàn),這里Java仍然一統(tǒng)天下)。COM組件總是面向桌面的,所以這種想法也是合理的。有一點(diǎn)是肯定的:C#會是Bill Gates稱為微軟最重要的產(chǎn)品的Visual Studio.Net的關(guān)鍵部分。你將會在未來的幾個月內(nèi)學(xué)習(xí)