因为需求决定了。互联网用c的很少,基本只有传统的ITCT厂商和硬件结合的项目用c。 c以前比较牛逼,但是由于坑太多,现在新项目用c的也变少了。c依赖太多,太恶心了,因为c不属于任何一个公司,而且标准委员会只指定标准,不实现标准,而且c没有实际意义上的二进制abi规范,所以换一个编译器,升级一个编译器版本,不用编译器编出来的动态库混用,甚至换一个STL实现,都会出现不兼容的问题。而且现在c标准980311141720这么多标准,实现多少完全看编译器,而由于不属于任何一个公司,编译器也分好多种。各种不兼容,导致一个在g4。5版本下跑的好好的历史遗留项目,用的03标准。想开一个c11跑跑,结果n堆编译错误。在老标准可以用的写法,新标准禁止了。新标准的c其实很好用了,但是由于各种历史原因导致的,坑实在太多,技术水平一般的公司不容易hold住,而且随着硬件水平提升性能优势也不是很明显了,而且其实性能主要看写代码的人。 java属于一个公司,标准制订,编译器的制作要一致的多。而且升级版本不会有像c那么多问题。现代c非常好用,但是由于c的项目大多都是历史项目,所以升级不了编译器,还得继续用十几年前的c写代码,所以就显得c很难用了,这怎么和现代的java比。 还有一个重要原因是生态,java可以用的库,太多了,而且有强大的包管理。而c还是用的非常土的和c语言一样的头文件编译展开的方式。用第三方的库,都要用源代码自己编译,编译器等级高了不行,低了也不行,用了不同版本的STL还可能连接错误,就一个简单的引用第三方库就玩死一票人。 这里不谈语法表达性这种区别,大部分公司就是想快速做出项目来,容易上手,拿来就用的东西多,这才是重要的。所以某些语言就慢慢用的少了,但是在某些领域是不可替代的,所以在出现同类型语言前,并不会被淘汰。 国内互联网软件开发规模远超嵌入式和底层应用软件开发的规模。 Java应用领域比较单一,基本上都是互联网应用。比如,各类手机APP,网站等等。这类应用的开发门槛较低,投入小见效快,吸引了很多投资。这应该是Java人才需求旺盛的重要原因。Java开发的职业的特点是,就职门槛低,薪酬较高。由于技术层次不高,新手上路所需时间较短,新老更替周期短,职业稳定性较差。 CC的应用领域比较广,涉及到汽车电子,智能设备的底层驱动和平台,PC应用,游戏引擎等等。这类开发的门槛高,投入大风险高,很大程度上制约了投资的规模。这些原因导致CC人才需求低迷。CC开发的职业特点是,就职门槛高,薪酬待遇低。语言本身的复杂程度就高于Java,由于偏于底层开发,还需要掌握大量的操作系统,网络协议,硬件接口的知识。新手上路所需时间至少要3年以上,职业稳定性较好。 个人觉得国内IT人才市场的需求状况从一个侧面反映了中国IT行业偏重于上层应用,而底层的核心技术上投入不足的现状。举个例子说,物联网很火,但大部分都集中在网的开发,很少有企业在做物的开发。所谓物的开发就是芯片传感器之类的核心技术开发。这样看来互联网也好物联网也好繁花似锦的背后,存在着发展潜力不足的隐忧。 在讲理论之前,先分享个小故事。 我最开始在BAT实习的时候,用的是PHP,然后我有个同学只会C,希望我能帮忙内推一下。 这当然没问题啊,但是我们组没有写C的。 于是我就去问隔壁广告组的同学,人家说,我们只招写JAVA的,不收C的,但是我可以帮你再问问其他部门的。 于是,几经周折,才在隔壁楼找到一个招C实习生的项目组。 好在我同学够优秀,顺利通过了面试。 但是等到校招季的时候,我已经顺利拿到了offer,提前入职了,他却又开始找工作投简历了。于是我就问他怎么回事,他说C项目组今年校招绿色通道没有名额,他只能再另谋高就了。 上面这个亲身经验呢,是想说明两点 1目前招CC的确实很少 2招进去之后,可能还是没有headcount转正。 所以啊,从公司的角度都是如此,从招聘网站上看到很少招CC的职位,就更加在情理之中了。 那么,为什么现在用CC的越来越少了呢。 这就和两种语言的特性有关了。JAVAvsCC 与CC比起来,JAVA可以说是后来者居上,取长补短。它既保留了C语言的各种优点,又剔除了C语言里指针,多继承等晦涩的难点,更是增加了友好的trycatchthrow,极大了减轻了程序员在编程过程中的压力。 此外由于靠近底层,C语言的学习与调试成本也很大,导致其可移植性也远不如java灵活。 再进一步讲,由于语言难度大,如果想用C语言编写出一个程序或者平台,其人才培养与开发过程的消耗都远高于使用JAVA。因此,就算从成本的角度出发,java也是要比C语言更加优秀的选择。求职数据 最后,我们用一组数据来证明吧。 2019。2。1921:59,我在某求职网站上输入java,得到的在招岗位有1602条。 而随后,输入C,得到的信息只有可怜的282条。 市场的供需关系可见一斑。 基于此,我的观点是,既然CC已经逐渐没落,JAVA现在风头又一时无两,建议有学习C语言意向的同学考虑转去学JAVA。 毕竟,智者都是根据市场走势,来及时调整方向。 手动分割 真是服了评论里的各位了呢,都跟我说搜搜嵌入式试试。 好哒,我真的搜啦,看到没,各位朋友,228条,还不如搜C的多呢。 分割结束 如果你对我的回答有什么问题,欢迎在下方给我留言,我是苏苏思量,性别女,头像是本人,来自BAT的Java开发工程师,经常分享科技类见闻,欢迎关注我,与我交流哦。 最后,加个私心,也许你也愿意看看把分布式部署在同一个机器的血泪史。 https:m。zjurl。cnanswer6659350280661893379?iid62984567304appnewsarticleshareansid6659350280661893379appid13 因为中国底子薄,底层的东西欧美都走了一遍,中国不用走从无到有的路,直接拿欧美的过来就可以了。中国到现在为止还没有几个能大规模商用的硬件和编程语言,用c的比较少,c语言本身的问题就很大用过的都懂。新语言我比较喜欢golang。但是golang现在是没有办法撼动JAVA的地位的。JAVA是诞生在互联网崛起的时代,而中国互联网行业各个领域发展都非常好,所以JAVA的人才需求就很大,说白了就是JAVA占据天时地利人和 主要还是C和C太强大了,而现在的大部分互联网公司都只是追求快速开发,那么就诞生了很多封装非常完整的开发语言,远远摈弃了底层的东西,而这些封装完整的开发语言可以速成,而并不需要深挖底层的东西,忽略了很多实现的具体细节,这也是互联网企业对产品开发的需求导致的,但为什么C和C能保持常胜不衰,打个比方,就像C里的类一样,他们俩就是所有类都要继承的上帝类,至高无上,就是说,后来的这些快速开发的语言,或多或少有他们俩的影子。 这个标准是国内的标准看,如果放在全球的范围内这三种编程语言还依然还是排名前三名,但现在编程语言有个大趋势已经不可逆了,就是集成化编程语言的流行,符合这种特质的java和python,python好像集成度更加高一些,所以上升的势头非常猛,特别受到培训机构的推崇,毕竟学习周期会短很多,而且发展潜力非常大,但现在就python的实际就业机会相对还是比较少,有一个朋友搞了一年多的python结果在西安找工作,最后终于找个了真的需要python编程的工作,从而发表感慨千万不要相信所谓的发展前景,当下才是最重要的。 就现在实际情况看CC还在发挥极其重要的作用,现在很多客户端软件以及服务器的开发都离不开这两种编程语言,只不过不像java语言这么火热,现在很多底层开发语言的职位薪资也是非常高,而且入门的门槛也非常高,因为门槛高很多人做不了的导致索性现在很多人就不作为入行的编程语言了,毕竟入行找个更加简单点的工作会更好一些,现在的大学生喜欢做一些简单化的东西,即使现在流行的人工智能底层性能影响的也是这两种编程语言。 因为国内这两年互联网公司非常流行,主要开发在应用级别开发,无论在后端还是客户端几乎都离不开java,所以相对来讲java职业也是最多的,而且在二三线城市也有大量的java开发人员,职位数量就是第一存在,从全球范围看很多CC在一些核心技术层面使用范围还是非常广泛,特别是一些涉及到核心技术CA认证等等都是这两种语言搞的,所以不要觉得这两种编程语言已经退出历史舞台了,而且国内软件发展这么多年,还有很多核心技术还没能掌握,而且软件开发有些时候不完全是技术层面问题,还涉及到生态链的建立问题,就拿操作系统做例子,即使现在能够做出来也不一定能够建立生态圈子,所以落后在短时间内很难弥补上,需要时间以及生态的积累。 回到现实中初学者如何选择编程语言,除了市场供需因素之外,还需要根据个人的实际情况,如果觉得自己就想在某个方面施展,那就全力以赴的去学习,不要太在意别人的选择,有些编程语言可能开始学的费劲,坚持的时间长了薪资待遇自然就上去了,很多人花了几万块钱参加培训做了一段时间发现压根不是自己想做的工作,中间选择了放弃,所以不要看别人都去报班了自己也跟着去了,结果弄到最后发现不是自己需要的工作,很多人觉得C语言已经没有市场了,从市场的需求关系看,绝对的数量并不在少数,只不过比例相对低一些,但是薪资待遇真不会低了。 也没有必要觉得现在大家都去学习java了,是不是市场空间已经不足了,现在企业对于高级软件工程师大门永远敞开,学的能力上来了工作机会自然就会有了,至于是不是最流行的编程对于大众来有用,对于个体就要区别对待了。 希望能帮到你。 在回答这个问题之前,我想先向大家介绍一下编程语言的发展,这样在了解了一定的基础知识之后就能够更好的理解招聘网站上看到JAVA岗位很多,C语言和C相对很少。 编程语言的发展 其实,在现代意义上的计算机没有被发明之前,就已经出现了编程,那时还没有形成编程的叫法,大家都只是知道机器能够识别的只是0101010这样的二进制数据。于是,们现在称010101010这样的编程语言为机器语言。而机器语言使用起来非常麻烦,因为你要学会使用010101010101表示一切事物,为了解决这个问题,后来逐步发展,把一些常用的指令用英语单词表示出来,形成了汇编语言,也就是说第二代编程语言;这个时候也是比较痛苦的,你要记住那些单词的含义不说,还必须告诉计算机每一步要怎么做,而计算机又是一个非常笨的东西,你掉一个步骤他就罢工,并且汇编语言的可移植性非常差,在这台电脑能够编译成功在另一台电脑上就不一定了;之后为了方便软件移植,高级语言诞生了(高级语言就是第三代编程语言),高级语言不要求程序员掌握计算机的硬件运行,只要写好上层代码,编译软件会将高级语言翻译成汇编语言,然后再将汇编语言转化成计算机语言,从而在计算机中执行。 而高级语言里面又分面对过程的结构化语言和面向对象的语言,题目中所提到的JAVA和C就是面向对象的高级语言,C语言是面向过程的高级语言,也成为万物起源语言。 JAVA语言有什么优点呢? 市场上对于JAVA需求不是没有道理的,因为JAVA具备了很多一些别的语言不具备的优点。 1、java能够跨平台:一次编写,到处执行 java语言的跨平台性非常好,它不仅有为开发普通桌面和商务应用程序的JavaSE,还有为开发企业环境下的应用程序提供的一套解决方案的JavaEE,同时还有为开发电子消费产品和嵌入式设备提供的解决方案的JavaME; 2。java为什么能够跨平台? java编写的代码可以现在的任何操作系统(也成为平台)上运行,真正做到了一次编写,到处执行。这是因为java为不同的平台都分别提供了JVM虚拟机,只要是java编写的代码,都会现在虚拟机上转换成对应对应平台上的格式,从而实现跨平台。 (java创始人) 3、java语言经久不衰 1995年,SUN(StanfordUniversityNetwork斯坦福大学网络公司)公司创建了java语言, 1998年12月JDK1。2(将Java分成了J2SE,J2EE,J2ME); 2004年10月JDK1。5(改名JavaSE5。0,JavaEE,JavaME); 2009年04月20日,甲骨文(Oracle)74亿美元收购Sun。 。。。 由此可见,java语言是少见的功能强大、拓展性好且稳定的语言,这是市场离不开java的很重要的原因。 而C语言以及C语言并不是没有需求,一般编写大型游戏都会使用C,只不过现在的高级语言种类众多,并且C的使用场景并没有java那么普遍;所以,最终体现在招聘上,java的岗位就多一些,而c和c的岗位就相对来说少一些。 赠人点赞,手留余香。我是小强Talk,欢迎大家关注我,和我一起共同成长进步! 计算机视觉、图像处理招聘中,几乎无一例外都要求CC 这个问题其实很好回答,首先我们看下这两种语言(我把c和c看作一种)的特点: cc偏底层,效率高,java偏向于应用层,封装性好。 基于这样的特点,cc更擅长在嵌入式领域或者服务器、游戏领域做开发,而这些领域对于性能要求也比较高;而java这种纯面向对象的语言,更适合于做web开发,jvm机制使得跨平台可以有较好的表现。 另外,也正是由于偏底层,cc从业人员的培养要比java语言的从业者难度更高,而现在更多的公司也是偏向于应用领域的开发,为了更加高效敏捷的开发,所以相对来说,java的岗位会相对较多。 作为CVC程序员,事实实招聘C的也很多,招聘objectivec的也很多,只是JAVA的更多这与IT公司有关。这两年最火的是APP开发,Android开发需要用JAVA语言,很多网站开发也会用到,所有需求量很大。 C语言开发一般来说都偏向于底层,系统内核与硬件很常见,这些岗位较少,需求量最大的是用于IOS开发的objectivec,objectivec也是C语言的一个分支。 C一般用于产品的后台处理开发,C对于新手并不友好,一般都需要有经验的开发者,要求LinuxUNIX系统,在Windos上用的多是VC和C