最近总看到很多讨论Java走下坡路的帖子,新人求澄清!
虽说发自内心的不怎么喜欢C#,但是C#有很多特性真的比Java好,用起来方便多了,而且近几年来,C#的确是抢占了Java越来越多的市场啊,照这种趋势发展下去,再过5年,Java不会真的被淘汰了吧?
随便举几个例子:
1. C#里DateTime别提多好用了,Java里的Calendar相比起来就垃圾多了,最后还得去用apache的DateUtils来弥补
2. C#的struct简化了很多操作,Java里还要装箱拆箱
3. C#的ADO.NET,Java里有可以类比的好东西么?
4. C#的as关键字,Java里有对应的好东西么?
5. C#的LINQ,lambda expression,Java里有这么好的东西么?
总结起来就是:Java有的好东西C#都有,C#有的很多好东西,Java一个都没有!
新手在此迷茫的请教各位Java前辈,10年内到底Java会不会被C#取代而没落??
------解决方案--------------------
好吧,上面那个2011年的,这个是2012年九月的,你自己欣赏吧
一个库做没做好是衡量一个语言优良的标准??既然apache 的DateUtils能让你满意,就是说java能做到,
你觉得你这个观点站得住脚?更何况Calendar哥用的挺顺手的,没觉得比什么DateTime差
这真的可笑,你都开的什么网站??还就是几张网页??先开拓开拓你的视野,再来bb
------解决方案--------------------
未来的事谁也说不清楚。
目前的事实是:Java仍有大量的拥护者,.Net想短时间内蚕食掉这么多的用户似乎不太现实。
其实最近对Java前景不看好的帖子多起来的原因并不是针对Java自身的,而是Oracle的一些做法确实让人很失望。
另外,下面的内容可能有人会喷。在下这里只强调一下,本人只是站在中立的立场描述事实而已。
关于跨平台和开源。
MS并没有在其它平台上做.Net,但这不表示没人做。Unix/Linux上的Mono存在其实已经不是一年两年的事了,还有人不断的说.Net只能在Windows上运行……就算是反对使用C#的,知己知彼也是要做到的吧。
对于开源,.Net虽然没有公布源代码,但可以通过反编译工具查到类库的IL(相当于Java的字节码)。别人怎么看在下不清楚,至少在下觉得看Java源代码和字节码没什么区别的吧。
------解决方案--------------------Java的集合类比C#写得好。
Java的泛型是类型擦除的,比C#更灵活更好用。
Java的泛型+反射+Annotation威力强大,轻松实现aop编程,C#没有。
Java的枚举类比C#强很多。
Java的instanceof关键词很好用,C#没有。
Java的反射类库比C#好用。
Java的DataFormat比C#的好用。
Java对开源数据库的支持更好,对Oracle的支持也更好。
还有很多。。。
现在这2个语言差异越来越大,向着不同方向发展,C#以易用性为目的,容易限制程序员的自由发挥。微软喜欢推倒重来,说不定到了某个版本,它会把C#的某些特性删除造成不兼容,或者发明一种更好用的语言,把C#晾在一边不理它了。
C#是微软的,所以windows 图形界面编程得到一定强化,但是好点的界面还是靠C++,C#是个摆设。
目前Java与Oracle公司关系密切,数据库编程的能力将会变得更牛,还有分布式系统的开发会更牛。
Oracle目前推出了Swing的升级版JavaFx融入JDK,做出的界面很漂亮,比Flex更漂亮更易开发,开发桌面程序很合适,可以代替VC++开发的界面,比VC++容易多了。
------解决方案--------------------
这些东西提出来就说明了,你还停留在初级阶段啊
哪有人拿类库来比两个语言优劣的
或者这么说,即使是你说的这几个也无非就是一种坐井观天的青蛙式想法
datatime比calendar好用吗?java对于时间的支持又何止一个calendar?对于date的包装timestamp,sql.date,long等等,或者说只是你自己觉得那玩意儿好用罢了
struct难道不破坏面向对象完整性吗?何况,用一个类来实现struct有什么区别吗?
ado.net和java比数据库技术?你想要笑死大牙米?或者说你只用过jdbc?jdbc不好用?spring的jdbc包装怎么样?还不够?mybatis怎么样?再不够?hibernate够了不?
关键字...我服了...这都能拿来比...C#有instanceof关键字吗?这也能拿来比一下
LINQ,lambda expression是很好,但是又怎么样那?说穿了也就是种变种的脚本,你怎么就知道java没有这种东西了,哪个人能站出来说他知道java所有的扩展库? 题外话,要说扩展到话javaCC用过吗,C#能自己做编译器吗
多喷就该变成愤青了...
这话我也听了10年了吧,貌似至今为止java活得还是好好的,当年叫的最凶的几个人连脸都看不到鸟,希望10年后LZ能拍着胸脯说,java已死
------解决方案--------------------