哈哈。看了这个帖,觉得好搞笑,LZ搞了8年VC,竟然认识还停留在偶刚开始学JAVA的认识上。可谓LZ牛也。。小弟佩服。。希望LZ在做VC18年后,能有个清晰的认识。。

VC 那么好 还要.net 、C# 有什么用

没技术含量,Java的技术很大部分象C++

你说的>java的语法极端丑陋。主要体现在:
那些jar什么的,每个变量名都很长;看java代码,总是密密麻麻的,看着累,不如c语言简洁。
命名不应以长短,主要能不能表达这个类的功能

VC 那么好 还要.net 、C# 有什么用

没技术含量,Java的技术很大部分象C++

你说的>java的语法极端丑陋。主要体现在:
那些jar什么的,每个变量名都很长;看java代码,总是密密麻麻的,看着累,不如c语言简洁。
命名不应以长短,主要能不能表达这个类的功能

会VC不代表你真的懂C++ 你也不一定真的了解OO.....

Java语言是迄今为止最成功的计算机编程语言,这是不争的事实!

不是Java没前途,而是LZ没前途,搞了七年C/C++,还不知道Java为何物的CC,丢人哪...

晕哦,这么极端的评论,有意义吗???

我做了9年的VC,呵呵。
个人感觉,比较C++和Java的语法意义不大。C++的语法比较复杂,但是没有成型的框架,数来数去只有MFC和ATL比较成型,但这两个东西时至今日微软自己都放弃了。所以说C++复杂的地方首先在于其语法和底层,其次在于,如果你做的东西比较上层(非底层的算法),你经常需要自己构建一个自己的框架。
Java用的不多,但能体会到Java非常不错,Java复杂的地方不在于其语法,而在于它的框架!C++的语法比Java复杂,但相比起MFC和ATL来,Java的框架就要复杂和丰富得多了。其中大量使用OO中的概念:Ioc、大量使用接口、浅层次的继承、大量使用聚合替代继承、内置了许多设计模式、广泛使用组件等等。
不能否认,一直用VC/C++,没有接触过Java,的人,如果不是自己特意去关注,在理解OO上是有缺陷的。我接触过一个用过5年VC的朋友,他没有听说过“设计模式”这个名词,让我震撼不已,而且这不是个例。用Java的朋友应该不会发生这样的事。

这不是找骂吗?

java不会完蛋
1.java发展到现在已相当成熟(特别企业级应用)
2.java社区有丰富的资源(几乎要啥有啥)
Java的确没粉丝们吹嘘的那么好:
什么“Java还是稳坐头名”,你封的头名吧!
多上上国际上的技术论坛和wiki吧,就连国际上有名的java牛人都去搞别的了。(注意我并没说java要完蛋,我在重申java10内完不了)

吵架???我喜歡!!!

ORACLE公司有很多產品是JAVA做的,有C/S的也有B/S的.他們都沒罵JAVA垃圾,你什么公司的啊?有資格說這個話嗎???

这个话题很有趣,我很有兴趣讨论,因为这个问题如果不讨论清楚,中国很难生产出优秀的JAVA程序员.
其实VERYFATMAN说的某些方面确实很有道理,但是有些方面却因为其对JAVA的认识还比较肤浅而走向了极端. 我用过C++,也用过JAVA,C++在面向对象的表达性方面确实没有JAVA那么强, 那是因为C++还没办法摆脱机器, 它缺少一种类似"虚拟机"的中间物体, 所以C++代码对藕合性问题更加讲究, 一但藕合性问题得不到解决,根本连编译都通不过, 这是因为它没办法摆脱机器, 没办法摆脱"过程", 机器和"面向对象"本来就是一对矛盾,因为机器的运作方式和思考方式本来就是一种"过程", 而"过程"和"面向对象"本来就是一对矛盾.
对于语言的可读性方面, VERYFATMAN是因为习惯了多年的对"代码"的阅读,而不是一种类似"文章"的阅读,所以才会对JAVA得出批评. 其实比起JAVA里过长的名词, C++里的头文件,一大堆的define undef if endif, static 变量还要专门找个地方给它们初始化,那才叫头疼呢,指针里一大堆的*号和->号那就更不用说了,总之,我觉得C++的代码书写是面向对象里的一种糟粕,但也没办法,因为它摆脱不了机器,摆脱不了过程,或者换句话说它没办法真正地实现面向对象.
  对于JAVA,真的不知道说什么,说实话,真的和VERYFATMAN有同感.JAVA领域已经开始逐步地把原来的优越性去掉,开始越来越走向复杂化,学JAVA的人很多都是一群数典望祖,以为学了一点点设计模式就自以为是,却不知所谓的设计模式说好听点只不过是一些设计上的技巧,或者说难听点是从面向对象特性里得出的编程上的一些技巧,却被某些人神圣话,升级为"模式",真可笑,好像老子搞设计还必须得跟着"四人帮"的屁股;国内搞JAVA的人大部分都是一群趋之若骛,连外国人放个屁都觉得香的人,但是也没办法,本身技术上的肤浅再加上对祖宗的抛弃让他们没有办法真正做到"拿来主义".
  总之,事物的好坏自然有待历史的证明,不好的东西迟早会被淘汰的,就好像EJB当年成为找工作的门槛,但最终还是得到它应有的下场.

赞成lptstr的意见。

这里谈两点,一,楼主对java有抵触情绪,或者是对新技术有抵触情绪,对于众多的框架无所适从。二,楼主对于高薪的说法才是重点。

最后劝楼主,大家好,才是真的好。(注重团队)

我也是一个刚学习java的人, 以前一直在做一些 asp vb 之类的小应用的开发。说句实在话,一开始转型向oo的时候,感觉都要放弃了,当时心里确实很烦oo,感觉干什么要弄那些继承阿,多态阿,抽象阿之类的……。 现在,我越来越喜欢oo了,很多时候,觉得自己浪费了太多的时间,如果早一点接触oo,就不会像以前做那么多无用的事情…… java让我们不用重复去做那些做过的事情,所以我们才有更多的时间来思考,来优化,来做没有做过的事情。

最后给自己一点鼓励,继续努力,相信我能学好oo的编程思想。

1基本是这样的。,快速开发肯定不是java了。因为java光搭个环境就半天,很烦。还一大堆破名词,什么hibernate....我做小东西肯定用C#,不会考虑java.
2.肯定不是这样了,要说难掌握,肯定c/c++超过java.要单比程序员,java程序员水平要求低。但一来语言不就是为了让大家能好用吗,二来程序员水平和薪水高低和语言没区别啊,自然语言是个人就会说,能说自然语言没前途吗?自然语言正好是说的最多的人啊。而且不会说自然语言就没法活啊。
3.不同意,你说的应该是书写习惯吧?因为语法他和c++,c差不了太多,就算有差别,也不是看两眼外观就能看出来的吧?

我觉得造成1的原因是因为学一门语言,心理很容易被这门语言的学习环境所影响甚至引导。
学java.上网一查,到处都是模式啊,框架啊,blah,blah,blah,很少谈基本程序设计的。由于大家好高骛远的心里(我学这个,就得学最好的啊,不能没面子啊,尤其是编程高手外加java新手更如此),就狂看这些东西,狂对比这些框架啊,模式
啊,ide啊,结果怎么做个小东西没学到。
学.net,上网一查,到处都是实现这个啊,实现那个啊,于是就跟着去看了,于是就很快学会了写小东西,就认为这就是开发的全部了,于是就不太顾及系统架构的设计了。

个人经验:
C++在做设计方面绝对不会比java差,而且大项目也绝对是要讲究设计模式,框架的。不然干不出来活啊,而且比java应该更重视框架,因为c++比java难控制,你不用框架控制一下,底下程序员就开始乱来了,想怎么干怎么干,你看吧,指针满天飞。变量乱加,调用总是跨层次,而且还总乱玩技巧,这可比java里面破坏力大!
反正我一上来就规定大家,不许用指针!用指针先经我批准,一般情况下都是加减乘除外加逻辑运算,指针不会总用到。另外更大些的C++项目(我那个只有10几万行)肯定要有自己的内存管理啊,都从一个内存池分,然后统一释放。怎么可能让你自己玩的那么痛快呢。所以上面一个哥们说的什么* ->都很少用了。另外,也有人用smartPOinter吧,不过我不用,看着那东西写法不爽!嘿嘿。

java绝对能快速解决一个问题(当然不包括那些他不擅长的,比如什么要用到jni之类的。),只不过大家都把眼光放在怎么合理的搭建平台和架构上了,连那些不该关心这些的人(就是那些基层程序员)也来关心这些了。你说你一新手,不先把基础弄好了,搞什么框架啊, 设计啊,关你甚事啊?思而不学则殆,总思考,但是没有一个让自己兴奋一下的成果是会让人发疯的。那些模式啊,框架啊,总要等你有点基础再考虑吧?不然怎么知道人家好在哪里呢?

总结:我现在做的大多是中小项目,所以基本上C#.net.以前做过大项目,电信的。C++. Java就研究过,没用过,不过感觉挺好。而且java开发由于要用到好多不同厂商的框架,所以这些框架的概念就很分明(因为不分明你就不知道怎么搭配他们),.net由于是微软一家,所以概念都被掩盖在一个大的完整的环境下了。