浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 通信網(wǎng)絡(luò)

看看C#與Java相似之處的對(duì)比

發(fā)布時(shí)間:2008/9/11 0:00:00 訪問次數(shù):612

  c#和java都是很不錯(cuò)的語言。他們通過類似的方式達(dá)到了類似的目的,盡管c#比java多出來一些和句法相關(guān)的東西,例如foreach關(guān)鍵字和一些更加讓人高興的擴(kuò)展/實(shí)現(xiàn)架構(gòu)。不幸的是,這些改進(jìn)的光芒被削弱的東西掩蓋掉了。在本文里,我將比較兩種語言,并盡量避免深入到j(luò)vm和clr層。

  java:無可爭(zhēng)辯地具有c++所有的精華

  在比較java和c#的時(shí)候,你不可能不注意到它們諸多的相似之處,這在某種程度上要?dú)w結(jié)于它們共同的來源:c和c++。但是,當(dāng)gosling和他的同事們坐下來創(chuàng)造java的時(shí)候,他們不僅吸取了c++的能力,而且更重要的是,他們減掉了一些無用特性,后者讓c++更容易出錯(cuò)誤而且更難學(xué)習(xí)。c#的設(shè)計(jì)者加入了很多c++的特性,而java也加入了這些特性,但是c#卻沒有去掉c++的最糟糕的一些特性。其結(jié)果就是這樣一門語言,它仍然為所有人提供了所有的特性,但其結(jié)局是內(nèi)部沖突不斷,而且過于復(fù)雜。

  散漫的句法缺陷

  最容易找出的錯(cuò)誤是流控制和句法。c#提供了goto command,將其作為更改程序執(zhí)行點(diǎn)的機(jī)制。自從edsger w. dijkstra在1968年出版了他的《關(guān)于go to陳述式害處的考慮(go to statement considered harmful)》。goto語句導(dǎo)致代碼難以調(diào)試,而且很難被測(cè)試工具處理。

  在另一種不同的情況下,操作符過載同樣也有很大問題,只不過層次不一樣罷了。當(dāng)“+”根據(jù)操作數(shù)的類型而代表任何東西的時(shí)候,代碼的功能就不再透明,難以預(yù)料的副作用就會(huì)發(fā)生。

  c#在安全上的削弱

  c#有一個(gè)用于將代碼區(qū)域標(biāo)示為不安全的簡(jiǎn)單機(jī)制。在這些不安全的區(qū)域里,java以及后來的c#安排到位了一些安全措施,用以防止程序員直接修改內(nèi)存位置,以及使用點(diǎn)運(yùn)算,但是這些措施是值得懷疑的。在使用具有垃圾清理功能的高級(jí)語言時(shí),如果下到內(nèi)存地址這一層,就會(huì)把對(duì)象/內(nèi)存之間有意作出分離弄混。錯(cuò)誤就會(huì)容易出現(xiàn),調(diào)試成了惡夢(mèng),緩沖區(qū)溢出再次抬頭,c和c++里著名的安全漏洞再次現(xiàn)身。

  c#還允許對(duì)主機(jī)系統(tǒng)上本機(jī)庫的簡(jiǎn)單訪問。這個(gè)與非.net對(duì)象相結(jié)合的訪問同java本機(jī)接口(jni)所提供的功能類似,但是它更加危險(xiǎn)。jni被設(shè)計(jì)用來小心地限制java代碼以及本機(jī)代碼同已定義好的接口之間的交互操作,.net使得調(diào)用本機(jī)對(duì)象文件變得極其簡(jiǎn)單,結(jié)果導(dǎo)致開發(fā)人員在做這的時(shí)候,無法意識(shí)到他們?cè)谶@一過程中把平臺(tái)的可移植性也扔出了窗外。

  soap的集成

  c#,及其更大的擴(kuò)展.net,已經(jīng)同soap web服務(wù)緊密地集成在一起。soap是使用xml指定參數(shù)和結(jié)果值來進(jìn)行遠(yuǎn)程過程調(diào)用的好標(biāo)準(zhǔn),但是它并不是唯一的方式。利用用于web服務(wù)的外部庫能夠允許java開發(fā)人員輕易地更改其web服務(wù)的風(fēng)格,使其成為soap、xml-rpc,或者什么還沒有發(fā)明的東西。當(dāng)然,c#的開發(fā)人員總是能夠選擇將外部庫用于soap的web服務(wù),但是由soap標(biāo)準(zhǔn)的緊密集成所造成的限制要比它能夠做的東西更多。

  所有者的恐慌

  c#里最令人恐慌的特性可能就是其所有者了。微軟已經(jīng)為將c#和.net用于非windows平臺(tái)進(jìn)行了精心的展示,但是這在很大程度上還只是作秀。其用于非windows平臺(tái)的clr是問題多多,錯(cuò)誤多多。它通過ecma標(biāo)準(zhǔn)化過程來運(yùn)行c#??這一步連sun也不敢在java上邁出。其擔(dān)心來自于微軟對(duì)此可能封鎖的程度,如果它愿意的話。微軟已經(jīng)申請(qǐng)了一個(gè)專利,以排斥他人編寫第三方的crl,例如mono計(jì)劃。如果微軟決定對(duì)免費(fèi)的c#和.net社區(qū)施壓,它就有能力拿票子和法律的大棒把其開發(fā)活動(dòng)趕回到win32平臺(tái)??當(dāng)然這也不是它想看到的情況。

  而java語言則相反,不是ecma標(biāo)準(zhǔn)的,真可惜sun沒有遵從這一標(biāo)準(zhǔn)。但是,它是可以實(shí)現(xiàn)的,而且沒有專利的阻礙,其虛擬機(jī)和核心類庫都有來自第三方的開放和封閉源代碼的實(shí)現(xiàn)。c#看起來是免費(fèi)的,其實(shí)不然,而java看起來限制很多,但是它能夠依據(jù)法律通過免費(fèi)的途徑來實(shí)現(xiàn)。

  最后,我從來都沒有想到我會(huì)說這個(gè),但是java具有更好工具的支持,即使是在考慮到集成開發(fā)環(huán)境(ide)的情況下。visual studio .net是一個(gè)很不錯(cuò)的ide。它代表了多年的努力,而且特性很豐富。但是,eclipse ide包括了對(duì)java的支持,它在穩(wěn)定性、易用性和所提供的特性上超過了visual studio。ibm對(duì)eclipse的貢獻(xiàn)舉足輕重,而且如果你信奉原來的軟件格言“創(chuàng)建一個(gè)扔掉的(build one to throw away)”,那么你可以把visual age作為第一個(gè)(被拋棄掉了的)嘗試。對(duì)于使用c#的開發(fā)人員來說幸運(yùn)的是,eclipse的.net版本正在開發(fā)中。

  不是那么差,但是還不是java

  客觀一點(diǎn)評(píng)價(jià),c#里并沒有什么很恐怖的東西。它沒有visual basic里的那些很恐怖的東西,而且它事實(shí)上也沒有繼承像c里的一些東西,而這些東西會(huì)讓開發(fā)人員開槍卻打中自己腳。但是,底線是,c#并沒有做

  c#和java都是很不錯(cuò)的語言。他們通過類似的方式達(dá)到了類似的目的,盡管c#比java多出來一些和句法相關(guān)的東西,例如foreach關(guān)鍵字和一些更加讓人高興的擴(kuò)展/實(shí)現(xiàn)架構(gòu)。不幸的是,這些改進(jìn)的光芒被削弱的東西掩蓋掉了。在本文里,我將比較兩種語言,并盡量避免深入到j(luò)vm和clr層。

  java:無可爭(zhēng)辯地具有c++所有的精華

  在比較java和c#的時(shí)候,你不可能不注意到它們諸多的相似之處,這在某種程度上要?dú)w結(jié)于它們共同的來源:c和c++。但是,當(dāng)gosling和他的同事們坐下來創(chuàng)造java的時(shí)候,他們不僅吸取了c++的能力,而且更重要的是,他們減掉了一些無用特性,后者讓c++更容易出錯(cuò)誤而且更難學(xué)習(xí)。c#的設(shè)計(jì)者加入了很多c++的特性,而java也加入了這些特性,但是c#卻沒有去掉c++的最糟糕的一些特性。其結(jié)果就是這樣一門語言,它仍然為所有人提供了所有的特性,但其結(jié)局是內(nèi)部沖突不斷,而且過于復(fù)雜。

  散漫的句法缺陷

  最容易找出的錯(cuò)誤是流控制和句法。c#提供了goto command,將其作為更改程序執(zhí)行點(diǎn)的機(jī)制。自從edsger w. dijkstra在1968年出版了他的《關(guān)于go to陳述式害處的考慮(go to statement considered harmful)》。goto語句導(dǎo)致代碼難以調(diào)試,而且很難被測(cè)試工具處理。

  在另一種不同的情況下,操作符過載同樣也有很大問題,只不過層次不一樣罷了。當(dāng)“+”根據(jù)操作數(shù)的類型而代表任何東西的時(shí)候,代碼的功能就不再透明,難以預(yù)料的副作用就會(huì)發(fā)生。

  c#在安全上的削弱

  c#有一個(gè)用于將代碼區(qū)域標(biāo)示為不安全的簡(jiǎn)單機(jī)制。在這些不安全的區(qū)域里,java以及后來的c#安排到位了一些安全措施,用以防止程序員直接修改內(nèi)存位置,以及使用點(diǎn)運(yùn)算,但是這些措施是值得懷疑的。在使用具有垃圾清理功能的高級(jí)語言時(shí),如果下到內(nèi)存地址這一層,就會(huì)把對(duì)象/內(nèi)存之間有意作出分離弄混。錯(cuò)誤就會(huì)容易出現(xiàn),調(diào)試成了惡夢(mèng),緩沖區(qū)溢出再次抬頭,c和c++里著名的安全漏洞再次現(xiàn)身。

  c#還允許對(duì)主機(jī)系統(tǒng)上本機(jī)庫的簡(jiǎn)單訪問。這個(gè)與非.net對(duì)象相結(jié)合的訪問同java本機(jī)接口(jni)所提供的功能類似,但是它更加危險(xiǎn)。jni被設(shè)計(jì)用來小心地限制java代碼以及本機(jī)代碼同已定義好的接口之間的交互操作,.net使得調(diào)用本機(jī)對(duì)象文件變得極其簡(jiǎn)單,結(jié)果導(dǎo)致開發(fā)人員在做這的時(shí)候,無法意識(shí)到他們?cè)谶@一過程中把平臺(tái)的可移植性也扔出了窗外。

  soap的集成

  c#,及其更大的擴(kuò)展.net,已經(jīng)同soap web服務(wù)緊密地集成在一起。soap是使用xml指定參數(shù)和結(jié)果值來進(jìn)行遠(yuǎn)程過程調(diào)用的好標(biāo)準(zhǔn),但是它并不是唯一的方式。利用用于web服務(wù)的外部庫能夠允許java開發(fā)人員輕易地更改其web服務(wù)的風(fēng)格,使其成為soap、xml-rpc,或者什么還沒有發(fā)明的東西。當(dāng)然,c#的開發(fā)人員總是能夠選擇將外部庫用于soap的web服務(wù),但是由soap標(biāo)準(zhǔn)的緊密集成所造成的限制要比它能夠做的東西更多。

  所有者的恐慌

  c#里最令人恐慌的特性可能就是其所有者了。微軟已經(jīng)為將c#和.net用于非windows平臺(tái)進(jìn)行了精心的展示,但是這在很大程度上還只是作秀。其用于非windows平臺(tái)的clr是問題多多,錯(cuò)誤多多。它通過ecma標(biāo)準(zhǔn)化過程來運(yùn)行c#??這一步連sun也不敢在java上邁出。其擔(dān)心來自于微軟對(duì)此可能封鎖的程度,如果它愿意的話。微軟已經(jīng)申請(qǐng)了一個(gè)專利,以排斥他人編寫第三方的crl,例如mono計(jì)劃。如果微軟決定對(duì)免費(fèi)的c#和.net社區(qū)施壓,它就有能力拿票子和法律的大棒把其開發(fā)活動(dòng)趕回到win32平臺(tái)??當(dāng)然這也不是它想看到的情況。

  而java語言則相反,不是ecma標(biāo)準(zhǔn)的,真可惜sun沒有遵從這一標(biāo)準(zhǔn)。但是,它是可以實(shí)現(xiàn)的,而且沒有專利的阻礙,其虛擬機(jī)和核心類庫都有來自第三方的開放和封閉源代碼的實(shí)現(xiàn)。c#看起來是免費(fèi)的,其實(shí)不然,而java看起來限制很多,但是它能夠依據(jù)法律通過免費(fèi)的途徑來實(shí)現(xiàn)。

  最后,我從來都沒有想到我會(huì)說這個(gè),但是java具有更好工具的支持,即使是在考慮到集成開發(fā)環(huán)境(ide)的情況下。visual studio .net是一個(gè)很不錯(cuò)的ide。它代表了多年的努力,而且特性很豐富。但是,eclipse ide包括了對(duì)java的支持,它在穩(wěn)定性、易用性和所提供的特性上超過了visual studio。ibm對(duì)eclipse的貢獻(xiàn)舉足輕重,而且如果你信奉原來的軟件格言“創(chuàng)建一個(gè)扔掉的(build one to throw away)”,那么你可以把visual age作為第一個(gè)(被拋棄掉了的)嘗試。對(duì)于使用c#的開發(fā)人員來說幸運(yùn)的是,eclipse的.net版本正在開發(fā)中。

  不是那么差,但是還不是java

  客觀一點(diǎn)評(píng)價(jià),c#里并沒有什么很恐怖的東西。它沒有visual basic里的那些很恐怖的東西,而且它事實(shí)上也沒有繼承像c里的一些東西,而這些東西會(huì)讓開發(fā)人員開槍卻打中自己腳。但是,底線是,c#并沒有做

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

耳機(jī)的焊接
    整機(jī)電路簡(jiǎn)單,用洞洞板搭線比較方便。EM8621實(shí)際采... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!