从骨子里看C#和Java:是两种不同的语言_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 从骨子里看C#和Java:是两种不同的语言

从骨子里看C#和Java:是两种不同的语言

 2013/7/16 15:49:29    程序员俱乐部  我要评论(0)
  • 摘要:我相信有很多人认为学会了Java,同时也学会了C#,或者认为学了Java,C#几小时内就会了。但现实的情况是,热爱Java的人用了C#的人可能会觉得浑身不舒服,热爱C#的人也不是很喜欢Java.Java的设计者是因为讨厌C++的复杂,于是Java非常简洁,GC也让内存管理非常方便,C#是看中了Java的GC,和虚拟机技术,希望把微软的几大语言集成到.NET上来。因此C#从语言上来讲并不简单甚至可以算的上复杂。两种语言的设计思路也不一样,Java是编译解释语言,C#是编译然后编译运行语言
  • 标签:C# Java
class="topic_img" alt=""/>

  我相信有很多人认为学会了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学起比较好

发表评论
用户名: 匿名