C#和Java骨子里是兩種不同的語言
51CTO最近給大家貢獻了幾篇很有爭議文章,很多朋友對“青春期的Java不會衰亡”以及“微軟最鋒利的刀C# 4”各執一詞。51CTO專家Xhinker特意對此發布博文,全文如下:
我相信有很多人認為學會了Java,同時也學會了C#,或者認為學了Java,C#幾小時內就會了。但現實的情況是,熱愛Java的人用了C#的人可能會覺得渾身不舒服,熱愛C#的人也不是很喜歡Java.
Java的設計者是因為討厭C++的復雜,于是Java非常簡潔,GC也讓內存管理非常方便,C#是看中了Java的GC,和虛擬機技術,希望把微軟的幾大語言集成到.NET上來。因此C#從語言上來講并不簡單甚至可以算的上復雜。
兩種語言的設計思路也不一樣,Java是編譯解釋語言,C#是編譯然后編譯運行語言。Java沒有委托,C#有委托。Java傾向于用Interface實現委托的功能,而在C#中,Abstract Class比Interface發揮了更大功能。
Java遵循camal命名規則,C#遵循Pascal命名規則。但是如今越來越多的Java人開始使用C#,同時也把camal命名規則帶到了C#,這可能會讓C#代碼越來越難讀。為什么當初C#為什么不遵循camal呢?我看不出camal命名規則有什么不好的。
帶著Java投奔C#的人,和帶C#投奔Java的人,不要帶著成見去批評。
使用C#的人最好能總結出自己的一套使用子集,比如拋棄out和ref關鍵字,永遠不使用structs.不使用事件event所有event的相關功能用delegate實現。你要是不喜歡delegate那就統統拋棄,用interface,像java一樣。盡量少用interface,多用Abstract Class.然后讓整個team的人遵循相同標準。c#太大,如果每個人用自己的一套習慣,會給將來帶來無窮的麻煩。
C#是為生產效率而設計,Java一半是為Geek設計。
C#和Java在各自領域發揮作用,在不遠的將來,誰都不會取代誰。
要真正理解計算機編程,還是從C學起比較好。
本文出自“Xhinker”博客,請務必保留此出處http://xhinker.blog.51cto.com/640011/380601
【編輯推薦】