您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
为什么Java程序员在C++程序员面前有一种挫败感?
语言,程序员,都是为什么Java程序员在C++程序员面前有一种挫败感?
发布时间:2019-02-08加入收藏来源:互联网点击:
为什么Java程序员在C++程序员面前有一种挫败感?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
作为一个写了十几年代码的老司机,对于这两种语言都有过涉猎,本人倒是没觉得两种语言之间有多少感觉,两种编程语言的主题思想都是面向对象的编程,只不过应用场景还是略有差异,先是在c++下面做项目,后来转化到java项目中,作为两种编程语言都使用的人,现在简单介绍下。
c++主要用在客户端系统级开发上面,算是编程语言中比较难的,不建议初学者直接选择c++就编程思想而言显得没有那么复杂,但是就具体的语法细节还是相当的繁琐,这也是很多编程高手对于c++不爽的地方,但是真要挑选一种编程语言,既能贴近底层又能有面向对象的编程思想恐怕只能是c++,所以很多客户端的框架代码都是基于c++完成,像安卓框架层,浏览器内核等都是c++作为主力开发语言,虽然这是一门很难的编程语言,但是很多架构师的最爱。
java语言相比c++在语法细节上已经简化太多了,java主要氛围两个方向,一个是客户端一个是服务端方向,客户端主要指的是app的开发,两者共同的点需要把java基础弄扎实。从c++转战到java开发有一种比较轻松的感觉,终于摆脱了语法繁多的细节问题,相对来讲java入门比较容易,但要成为高手还是相当困难。
单纯的比较两种意义不是很大,每种编程语言都有其存在的必要性,真要不堪一击早就被市场淘汰了,每一种编程语言都有其自身优点,不需要比较一个高低贵贱,找到合适的触发场景就够了,在现实的生活中可能会存在做高级语言羡慕底层开发语言,觉得底层编程比较难,毕竟还需要和指针打交道,觉得特别难,做c/c++又会觉得高级语言变通性太强,需要很强的框架支持,会觉得脑子不够用的,要说之间会产生什么挫败感之类基本上不存在的事情,无论是什么编程语言,合适的就是最好的。
希望能帮到你。
回答于 2019-09-11 08:43:50
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语言。
回答于 2019-09-11 08:43:50
反了,完全反了。曾经我的导师调侃,“当人家前端程序员在各种讨论框架和设计模式的时候,我们c++程序员还在纠结线程同步的问题。”
有一个事实必须要承认,c++的业务开发效率,真的不是一般的低。在开发的时候你需要注意各种鸡零狗碎的东西。
比如你得小心指针的使用,一不小心就会遇到空指针和野指针的问题,而且一旦出了这样的问题导致了崩溃,真的很难查。厉害高级程序员,在一个c++大型项目中遇到野指针难题,十个里面能找出八个就已经是高手了。
还有就是臭名昭著的内存管理问题,全都得自己控制申请和释放,真的好难。
而Java就少了指针同时也增加了内存回收机制,对于开发业务的程序员来讲,简直就是福音。真的,一个c++十天能搞定的项目,人家Java最多五天就搞定了。
生产力是第一要素呀,c++怎么敢在人家Java面前抬高头颅装高贵呢。
我是编程历史主义者,c++的存在的价值很大一部分是为了兼容c语言,因此也为此付出了生产力不高的代价。
最后,不要比来比去了,如果真的要比的话,还是得针对不同的应用场景去分析,要不然就找不到比较的那把尺子!
我是coder李,欢迎大家关注我
回答于 2019-09-11 08:43:50
哪里来的逻辑?不考虑业务场景单说语法和标准库,c++是真难用,纯c写代码有时都比c++舒服。编程语言和代码最重要的还是解决实际问题而不是找优越感。
上一篇:什么样的气垫才是好用的?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |