NT_*_*NT_ 24 c# java language-features programming-languages
C#目前势头良好.为了切换(或返回)到Java ,您需要具备哪些功能?
如果人们为当前的Java版本发布了这些的变通方法,例如Nullables被自定义类包装,那么这将是非常有用的,以使这个更有趣的wiki.
Nat*_*ate 33
作为.NET/C#开发人员,这里缺少让我烦恼的功能.这个列表没有特别的顺序 - 正如想到的想法:
我很少使用Java,当我这么做时,我会有各种各样的WTF时刻.
编辑:我删除了每个评论基于它自1.5以来不再缺少Java功能的事实.
jsi*_*ght 20
根据我的经验,Java vs. .Net更像是商业决策,而不是技术决策.拥有MS经验的商店趋向于.Net和拥有Java体验趋势的Java和OSS商店.我看到很少有人根据语言特征进行切换.另一方面,我看到商店大量倾向于一个或两个关键员工的平台b/c,他们想雇用他们在该领域知识渊博.
Bli*_*ndy 16
没有特别的顺序:
yield return
构建体 ; c#是如此用户友好,这很疯狂我会说这是最重要的一个:
Kon*_*man 13
我是一名C#程序员,大约一年前我不得不参与Java应用程序的开发.我最想念的是:
当我回到C#时,我错过了一个单独的Java功能:方法签名中的显式异常声明.
免责声明:我说的是一个有点旧项目,我不知道当前版本的Java中是否存在其中一些功能.
Mat*_*all 11
减少令人发指的XML解析和操作工具.在Java中用XML做任何事都很糟糕.
Joh*_*mez 10
我也会反过来给出一个答案.C#需要像Java一样的枚举实现.Java的枚举摇滚!
我也可以在此列表中添加匿名覆盖.很抱歉离开主题,但C#需要能够匿名覆盖方法.我一直在Java和C#之间来回切换,我不得不说对单元测试遗留代码,没有比匿名类重写更好的了.
我需要某种函数指针.在C#中使用委托的能力非常有用.在Java中有很多次我想创建一个委托或函数指针的映射作为解决方案,但我不能.我知道你可以在Java中模拟类似的东西,但将抽象作为语言的一部分是一个巨大的优势!
动量.我在两个平台上都做了很多开发.由于C#语言的发展方式,我更喜欢.NET方面.Java的演变似乎更像是对C#的反应,而不是对实际愿景的反应.所以我认为Java要做的最好的事情就是忽略.NET并创建自己的新东西.
另一个我想要的是一些等同于LINQ.当我尝试进行顶级编码器竞争并意识到它们只支持.NET 2.0时,我注意到我实际上依赖于使用LINQ的能力.一旦习惯使用LINQ解决问题并使其成为常规编程词汇表的一部分,就很难从根本上看不出问题.它类似于使用泛型,然后无法使用泛型.
我认为,Java和C#之间的选择不是语言特征的问题,而是平台和生态系统选择的问题.
所以,我怀疑Java或C#中的任何新的语法糖都会导致平台之间的大量切换器.
毕竟,JVM世界有Scala,许多语言敏感的开发人员正在以某种方式使用它.
我认为,你应该考虑将这个神圣战争从"Java vs C#"转换为"JVM vs CLR",因为JVM(在过去几年 - 主要是)不仅是Java,还有Scala,Groovy,Clojure,JRuby,Jython和十几种JVM语言.