一起说说C++和Java那些事

luoweifu 阿里巴巴钉钉 高级前端开发工程师  2014-01-08 01:54:28
写了这么多年的java,现在重新写起C++来,感觉有诸多的不便。现在把自己的感觉说一吧。C++写的代码格式比较乱,可读性比较差,远没有纯面向对象的java那么干净整洁。这也是有其原因的,个人觉得有以下几点:
1.C++是从C语言发展过来的,其中保留了大量C语言的元素,而C语言是面向过程的语言,是结构化的程序设计,没有类的封装,结构比较乱,很多的C++程序员也都从c语言发展而来的,自然也保留了C语言的编程习惯和思想。
2.C++没有像java那样智能的集成开发环境(IDE),这一点我深有体会。java的话,不管你用的是Eclipse、MyEclipse还是IntelliJ IDEA,都有强大的编程功能和重构功能,能够随时方便地对变量、方法进行重命名;自动化格式对齐;还有智能提示。而且还可以自动生成gets和sets方法、构造方法和重载方法。但是C++却没有强大的编程工具,像经典的Visual c++6.0以及轻量级的C Free和Dev-C++都没有这么强大的编辑功能(VS2012、2013功能比较强大,介下了一个VS2012没装成功),要修改一个变量,还得一个一个地改,效率低而且易出错。

但各有各自的公优缺点和不同的用场,Java主要是结合其它web技术用于大型商业网站开发,而在游戏开发和要求高效率的算法方面,C++却有着得天独厚的优势。

亲!你们觉得呢!
...全文
356 1 收藏 33
写回复
33 条回复
vipcxj 2014年01月11日
引用 32 楼 ForestDB 的回复:
个人还是很喜欢eclipse+Java的重构功能的。
用eclipse+Java的感觉就是编译器和语言的配合真是掉渣天,比如写了一个写某个类要实现某个接口,编译器能自动补完代码,把所有需要实现的接口都写好。还有抽象类也是。还有自动更名的功能也很厉害,代码补完毫无延迟,不需要编译,反正比C++方便很多。要是C/C++也有这么牛叉的编译器就好了
回复 点赞
ForestDB 2014年01月11日
个人还是很喜欢eclipse+Java的重构功能的。
回复 点赞
zhcosin 2014年01月11日
引用 24 楼 luoweifu 的回复:
[quote=引用 23 楼 zhcosin 的回复:] [quote=引用 17 楼 luoweifu 的回复:] [quote=引用 6 楼 zhcosin 的回复:] 楼主你太没文化了: 第一条,难道 JAVA 就不是在 C 语言的基础上发展出来的? 第二条,你知道这世界上有个东东叫 visual studio 吗? 笑喷了。
文化高的人会说自己水平一般,而不会笑别人愚蠢 第一:你能说汇编和C++是同一个级别的吗? 第二:知道visual studio就是有文化吗?visual studio2010我用过,且问你用 过IntelliJ IDEA开发过java项目吗?[/quote] 严重怀疑你的语言理解能力, 第一,我哪个地方说汇编和C++是一个级别的?你自己说的C++源出于C,所以造成诸多不便,貌似 JAVA 不是源出于C似的。 第二,你说的JAVA的IDE的那些功能,难道visual studio不具有吗?[/quote] 第一,本人没有对C++敌意,各有优势; 第二,本人没有刻意攻击C++的开发者,只是客观地说一下自己的感受; 请不要语出伤人,作为程序员不会不知道网络文明吧! 你这么拽!你妈知道吗?[/quote] 我有多么拽你妈肯定知道!
回复 点赞
luoweifu 2014年01月10日
引用 25 楼 mujiok2003 的回复:
C++有很好的IDE, Visual Studio + Visual Assitant, eclipse + cdt, ... C++用其来不自然是因为你习惯了java, 再适应一下就好,但是不要拿C++当java使用,可以看看C++的一些习惯用法(比如RAII)
嗯嗯,谢谢指教!
回复 点赞
SweetTimeRose 2014年01月10日
自己用着习惯就行了,我到现在还觉得linux下的vi编辑器好用呢
回复 点赞
lm_whales 2014年01月10日
引用 25 楼 mujiok2003 的回复:
C++有很好的IDE, Visual Studio + Visual Assitant, eclipse + cdt, ... C++用其来不自然是因为你习惯了java, 再适应一下就好,但是不要拿C++当java使用,可以看看C++的一些习惯用法(比如RAII)
++ 应该就事论事 毕竟人家发帖,不是来搞辩论,和吵架的。
回复 点赞
mujiok2003 2014年01月10日
C++有很好的IDE, Visual Studio + Visual Assitant, eclipse + cdt, ... C++用其来不自然是因为你习惯了java, 再适应一下就好,但是不要拿C++当java使用,可以看看C++的一些习惯用法(比如RAII)
回复 点赞
luoweifu 2014年01月10日
引用 23 楼 zhcosin 的回复:
[quote=引用 17 楼 luoweifu 的回复:] [quote=引用 6 楼 zhcosin 的回复:] 楼主你太没文化了: 第一条,难道 JAVA 就不是在 C 语言的基础上发展出来的? 第二条,你知道这世界上有个东东叫 visual studio 吗? 笑喷了。
文化高的人会说自己水平一般,而不会笑别人愚蠢 第一:你能说汇编和C++是同一个级别的吗? 第二:知道visual studio就是有文化吗?visual studio2010我用过,且问你用 过IntelliJ IDEA开发过java项目吗?[/quote] 严重怀疑你的语言理解能力, 第一,我哪个地方说汇编和C++是一个级别的?你自己说的C++源出于C,所以造成诸多不便,貌似 JAVA 不是源出于C似的。 第二,你说的JAVA的IDE的那些功能,难道visual studio不具有吗?[/quote] 第一,本人没有对C++敌意,各有优势; 第二,本人没有刻意攻击C++的开发者,只是客观地说一下自己的感受; 请不要语出伤人,作为程序员不会不知道网络文明吧! 你这么拽!你妈知道吗?
回复 点赞
vipcxj 2014年01月10日
LZ有这种感觉很正常,C++比Java难得多,由C++入Java是件很容易的事,由Java入C++,就算是Java高手也得从小白做起
回复 点赞
bobo_包子 2014年01月10日
引用 9 楼 fighter0593 的回复:
能混饭吃就完了,管他C++ 还是JAVA。话说我看到某兄弟还在折腾 VB6
话说我还在折腾delphi呢
回复 点赞
Binzo 2014年01月09日
C++ 不是完全你想的那样,你用熟了就知道。 IDE 不能说明语言优势。 看你做的工作了。一般情况下,你不可能用Java实现服务器上的并行计算,是不是。
回复 点赞
luoweifu 2014年01月09日
引用 6 楼 zhcosin 的回复:
楼主你太没文化了: 第一条,难道 JAVA 就不是在 C 语言的基础上发展出来的? 第二条,你知道这世界上有个东东叫 visual studio 吗? 笑喷了。
文化高的人会说自己水平一般,而不会笑别人愚蠢 第一:你能说汇编和C++是同一个级别的吗? 第二:知道visual studio就是有文化吗?visual studio2010我用过,且问你用 过IntelliJ IDEA开发过java项目吗?
回复 点赞
liquanhai 2014年01月09日
习惯用哪种语言是个人的习惯问题,看看周围说普通话的和说英语的都活的好好的就知道了,你说的编辑器方便,就如同他们习惯各自的语言和文化一样,没有什么的。有些方便之处,会随着时间慢慢糅合到一起的。正如编辑器会慢慢的强大起来一样!C++编辑器确实有一些不便,下一步得靠像楼主一样的有志之士去改进了。
回复 点赞
luoweifu 2014年01月09日
引用 14 楼 luoweifu 的回复:
[quote=引用 13 楼 luciferisnotsatan 的回复:] [quote=引用 6 楼 zhcosin 的回复:] 楼主你太没文化了: 第一条,难道 JAVA 就不是在 C 语言的基础上发展出来的? 第二条,你知道这世界上有个东东叫 visual studio 吗? 笑喷了。
lz不是说了,他试着装vs2012,但没装成功。 微软的东西,点点鼠标,一路next都能装失败。。。。。。[/quote] VS2012不成功是因为下的版本不对,VS2010已经成功了,谢谢! C++刚学不如你们不能说明其它的就一定差,谢谢! 技术的是随着时间的积极越来越深的,现在不代表未来,谢谢![/quote] 说错了,C++不是刚学,是用的太少!
回复 点赞
luoweifu 2014年01月09日
引用 13 楼 luciferisnotsatan 的回复:
[quote=引用 6 楼 zhcosin 的回复:] 楼主你太没文化了: 第一条,难道 JAVA 就不是在 C 语言的基础上发展出来的? 第二条,你知道这世界上有个东东叫 visual studio 吗? 笑喷了。
lz不是说了,他试着装vs2012,但没装成功。 微软的东西,点点鼠标,一路next都能装失败。。。。。。[/quote] VS2012不成功是因为下的版本不对,VS2010已经成功了,谢谢! C++刚学不如你们不能说明其它的就一定差,谢谢! 技术的是随着时间的积极越来越深的,现在不代表未来,谢谢!
回复 点赞
luciferisnotsatan 2014年01月09日
引用 6 楼 zhcosin 的回复:
楼主你太没文化了: 第一条,难道 JAVA 就不是在 C 语言的基础上发展出来的? 第二条,你知道这世界上有个东东叫 visual studio 吗? 笑喷了。
lz不是说了,他试着装vs2012,但没装成功。 微软的东西,点点鼠标,一路next都能装失败。。。。。。
回复 点赞
luciferisnotsatan 2014年01月09日
连微软的vs都能装不成功,lz做java那时也是混日子的吧。
回复 点赞
珍惜生命远离CPP 2014年01月09日
VC6是98年的东西了 Eclipse是哪年的?
回复 点赞
FrankHB1989 2014年01月09日
纯面向对象洗脑受害者还是要补充一下基础知识了。别为了撸码而撸码。你有想过除了“商业需求”和“历史包袱”外,一个语言为什么非得设计成这个样子么。 不够干净整洁固然破烂,但比起罗嗦到快要脑损伤的程度,在不良作用的意义上还是小巫见大巫了。 也正是因为这点某些人才会纠结于IDE的某些特定编辑功能。不是说在编辑代码这事上文本编辑器就应该胜过IDE,而是说在规划“什么代码是必要的”来说,让用户缺乏自觉导致烂代码——包括用本不应当存在的罗嗦来换取莫须有的“可维护性”,包括“可读性”。 顺便,这些基于代码替换的自动生成accessor嘛,基本上没有C#内建的东西实用。虽然后者不伦不类的大杂烩的设计在一定程度上更可恶。
回复 点赞
zhcosin 2014年01月09日
引用 17 楼 luoweifu 的回复:
[quote=引用 6 楼 zhcosin 的回复:] 楼主你太没文化了: 第一条,难道 JAVA 就不是在 C 语言的基础上发展出来的? 第二条,你知道这世界上有个东东叫 visual studio 吗? 笑喷了。
文化高的人会说自己水平一般,而不会笑别人愚蠢 第一:你能说汇编和C++是同一个级别的吗? 第二:知道visual studio就是有文化吗?visual studio2010我用过,且问你用 过IntelliJ IDEA开发过java项目吗?[/quote] 严重怀疑你的语言理解能力, 第一,我哪个地方说汇编和C++是一个级别的?你自己说的C++源出于C,所以造成诸多不便,貌似 JAVA 不是源出于C似的。 第二,你说的JAVA的IDE的那些功能,难道visual studio不具有吗?
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告