为什么Java程序员在C++程序员面前有一种挫败感?

heruilive


反了,完全反了。曾经我的导师调侃,“当人家前端程序员在各种讨论框架和设计模式的时候,我们c++程序员还在纠结线程同步的问题。”

有一个事实必须要承认,c++的业务开发效率,真的不是一般的低。在开发的时候你需要注意各种鸡零狗碎的东西。

比如你得小心指针的使用,一不小心就会遇到空指针和野指针的问题,而且一旦出了这样的问题导致了崩溃,真的很难查。厉害高级程序员,在一个c++大型项目中遇到野指针难题,十个里面能找出八个就已经是高手了。

还有就是臭名昭著的内存管理问题,全都得自己控制申请和释放,真的好难。

而Java就少了指针同时也增加了内存回收机制,对于开发业务的程序员来讲,简直就是福音。真的,一个c++十天能搞定的项目,人家Java最多五天就搞定了。

生产力是第一要素呀,c++怎么敢在人家Java面前抬高头颅装高贵呢。

我是编程历史主义者,c++的存在的价值很大一部分是为了兼容c语言,因此也为此付出了生产力不高的代价。

最后,不要比来比去了,如果真的要比的话,还是得针对不同的应用场景去分析,要不然就找不到比较的那把尺子!

我是coder李,欢迎大家关注我


李coder


作为一个写了十几年代码的老司机,对于这两种语言都有过涉猎,本人倒是没觉得两种语言之间有多少感觉,两种编程语言的主题思想都是面向对象的编程,只不过应用场景还是略有差异,先是在c++下面做项目,后来转化到java项目中,作为两种编程语言都使用的人,现在简单介绍下。

c++主要用在客户端系统级开发上面,算是编程语言中比较难的,不建议初学者直接选择c++就编程思想而言显得没有那么复杂,但是就具体的语法细节还是相当的繁琐,这也是很多编程高手对于c++不爽的地方,但是真要挑选一种编程语言,既能贴近底层又能有面向对象的编程思想恐怕只能是c++,所以很多客户端的框架代码都是基于c++完成,像安卓框架层,浏览器内核等都是c++作为主力开发语言,虽然这是一门很难的编程语言,但是很多架构师的最爱。

java语言相比c++在语法细节上已经简化太多了,java主要氛围两个方向,一个是客户端一个是服务端方向,客户端主要指的是app的开发,两者共同的点需要把java基础弄扎实。从c++转战到java开发有一种比较轻松的感觉,终于摆脱了语法繁多的细节问题,相对来讲java入门比较容易,但要成为高手还是相当困难。

单纯的比较两种意义不是很大,每种编程语言都有其存在的必要性,真要不堪一击早就被市场淘汰了,每一种编程语言都有其自身优点,不需要比较一个高低贵贱,找到合适的触发场景就够了,在现实的生活中可能会存在做高级语言羡慕底层开发语言,觉得底层编程比较难,毕竟还需要和指针打交道,觉得特别难,做c/c++又会觉得高级语言变通性太强,需要很强的框架支持,会觉得脑子不够用的,要说之间会产生什么挫败感之类基本上不存在的事情,无论是什么编程语言,合适的就是最好的。

希望能帮到你。


大学生编程指南


作为 曾经的C++程序员,现在做着Java程序员,不明白为什么会有所谓的挫败感.

从以下几个方面论述我的观点

应用层面

c++的应用场景大多在嵌入式领域,后台底层技术,图像处理方面等等

java的应用场景更广泛,后台开发,android开发,大数据平台应用,都是主流的语言应用

c++对于系统底层的控制和字节流的控制更为精细和高效.java在系统的应用层上比较顺手

语言方面

c++相对java较难入门和精通,光c++的指针应用和内存泄露问题,就可以浇灭部分程序员的热情,同等精力和时间的前提下,语言的难度使得c++程序员的开发效率相比java程序员逊色一筹.同时java有各个方面完整的第三方类库,可以省去重复造轮子的麻烦,并且java更易于实现各种设计模式和系统架构

薪资待遇

这个和工作年限,工作行业,职场机遇,公司关系较大,两种语言在一线城市的年薪20w,30w以上的很正常,彼此之间并没有什么挫败感


jsonformat


c++和Java没有可比性。

c++完全兼容c语言,主要用于底层开发,比如:驱动、操作系统、内核(目前内核大多用c开发)、虚拟机、开发工具、引擎、服务器等,Java虚拟机就可以用c++开发。c++具有更高灵活的内存控制、指针控制、高效的运行效率。以前的端游服务器,全是由c++开发(c++90%以上代码,场景脚本、ai、技能扩展脚本用lua开发),启动服务器瞬间开辟玩家、场景等内存池,游戏玩家上线不会频繁new操作,只需要从内存池中取相应的内存,同时避免了内存碎片化问题。【更多说明: 魔兽世界、剑网三、传奇,大家熟知的大型网游都是采用c++开发。有兴趣的可以研究Trinity源码(魔兽世界服务器模拟),网络库采用boost.asio开发】

Java主要是上层开发,现在很多服务器都是用Java开发。语法和c#类似,语法相对简单干净,容易上手,现代服务器开发流行的语言。现在很多手游都选择Java做服务器了,没必要考虑那么多性能问题,快速开发上线才是首要目标。目前的Android系统之上就运行着一个庞大的java虚拟机,所以同样的配置情况下ios的效率吊打Android。

除此以外,c++做跨平台比较麻烦,需要用大量的#if #define做跨平台代码处理,由于Windows和Linux内核不一样,网络socket、线程等都需要单独处理。Java就完全不用考虑这方面的问题,Java虚拟机已经帮你做好了跨平台处理,你只需要把Java源码拷过去就OK了。

对于语言选择上,如果没有特别高的性能要求,或者对c++指针、内存把握不到位的话,建议选择Java语言。


风吹胯下蛋蛋凉oo


也没有吧。我之前写c/c++。写了半年java又 现在写python。给我的感觉是操作数据库和网络编程方面java python是真tm好用……但是性能方面不敢恭维。语言没有高低之分。触类旁通吧。重要的是思维


JustCodecodecode


没有这种说法。C++确实要比Java难度大,但难度大并不代表这是优势,更不代表这种语言更高级。写程序牛不牛逼不取决于语言,而取决于你做的是什么项目,用的是什么算法、什么架构、什么思想、什么模型等等...

如现在越来越牛逼的机器学习、深度学习等AI项目大多用的是比Java更为简单易学的Python语言或Lua和R语言。如Python更是成为了科学项目专业户语言,你能说用python的就比如C++不牛逼?


标记清除


为什么。谁告诉你的,在it业十几年从来没听到这种说法。java就业率对比c++遥遥领先。倒是很多c++程序员因为公司产品转型,为了不被裁迫不得已转做公司的java项目。


一冷残月


哪里来的逻辑?不考虑业务场景单说语法和标准库,c++是真难用,纯c写代码有时都比c++舒服。编程语言和代码最重要的还是解决实际问题而不是找优越感。


aCHAOS


当需要开发一个强人机交互系统时,需要c++,比如安卓环境、CAD工具。当需要开发一个需要持续集成、众多人协同工作的、功能碎片化的系统时,java了可作为首选。介于两类之间的企业应用,可同时使用c++和java开发,他们的兼容性很好。


景151276607


因为不会多继承啊。。。


分享到:


相關文章: