“一个C++ 程序员的生产力,大概相当于20个C程序员,200个java程序员”,对于这句话你怎么看?



总结

任何语言都有它适用的场景,如嵌入式方向用了Java后确实性能达不到要求,那也无法使用。所以各有所长,只要方向对了,语言对了,就会得到满意的结果。


电视鹏

“一个C++ 程序员的生产力,大概相当于20个C程序员,200个java程序员”

这句话确实说的有点过了,如果这样的话,一个软件公司直接招聘一个C++程序员就可以了,省的招聘200个Java程序员。如果这样算下来,将给公司省下多少钱啊!然后实际上是怎么样的呢?

以我周围的环境为例,反而是Java程序员远多于C++程序员,当然这主要是由于公司的业务决定的,不需要那么多C++程序员,并不能代表C++的生产力比Java程序员高,或Java程序员的生产力比C++高。

如何核定程序员的生产力?

古云说的好“闻道有先后,术业有专攻”,不同的工作、不同的业务,跨场景比较没有意义。一个程序员的生产力如何核定,我认为就从对应的专业上来核定,是否足够专业。你拿一个初级的C++程序员跟一个资深的Java程序员相比,你说谁的生产力大。

程序员的生产力比的就是专业性。


Andoter的学习笔记

看到这个问题我好激动,毕竟是一个曾今做过5年c++程序员,又做过接近3年的java开发,人生经历是如此的丰富了,也是没谁了😂。

这句话我不知道是谁说的,是不是有点夸张了呢老铁,因为无论从程序的运行效率,还是代码开发的效率的角度,这个观点都不成立的。



我先从程序运行效率的角度来分析下。其实在我看来在一些功能比较简单的情况下,c和c++代码的运行效率是没有本质的区别的,但是在一些复杂的系统里面,c++会用到一些特性,比如继承,RAII,虚继承,模板,虚函数,虚表,异常处理等等会增加部分开销,会比c慢些。然后相对于JAVA,JAVA是在JVM虚拟机上运行的,编译后产生.class中间字节码文件,运行在java虚拟上,经过解释才能放到真是的机器上运行,而c/c++是编译成机器码直接在机器上运行的,而且java的不用程序员自己管理内存了,相对加大了开销,所以在配制相同的情况下,c++的运行效率确实比java要好。



然后我们在来看开发效率问题。在我的开发经历中,决定一个语言开发效率的是库是否足够丰富,开发工具是否足够方便,C++相对于c有些丰富的标准库(容器及算法)可以直接引用,不像c要去写,所以开发效率要好些,而java就更不用说了,jar包简直多的泛滥,对于我这种选择困难患者,要是比较头疼的,eclipse是一个非常好用的工具,极大的方便了开发者,所以如果头跟我说要开发某个功能,在不考虑兼容的情况下,我很定首选java,现成东西多啊,拼接拼接就完事了。

最后做一个曾今的程序猿老兵,深深地觉得,所有的语言都是一个工具,重要的是解决问题的能力,所以不要把头一直埋在某一个语言中,限制了自己的发挥空间。

用好你手中的剑,不要让它伤着你,要让它带你装逼带你飞。


鹰眼财经wu

这个说的也没什么错。c已经半抛弃了,没什么库,干什么都得从头来,效率肯定低下。cpp基本就是大公司的选择,比如Google。这就给cpp很大优势,因为大公司会贡献高质量开源项目。Java不错,但是上规模就不成了,小公司用一下会敏捷一点,一旦做大就是招cpp工程师重写,比如Facebook就是把PHP和Java大量用cpp重写。

小公司用Java也是Java工程师比较便宜点,这里并非歧视,行里都知道。cpp需要更多体系结构的背景,学cs的很有优势,写的真的好的话不容易,Java需要的很少,更多的是面向对象和对各种包的了解。

另外个人认为语言之争太低幼了。想要在这行混的好,应该看高点。学更宏观和更微观的东西,代码,只不过是将思想述说出了而已,用法语能写茶花女用汉语能写红楼梦,并不是语言本身的区别。


渔伯oO

这个在现实中我是没有发现。

我是一家互联网公司的产品,做了有几年了。接触到的互联网人也比较多。简单分析下这个问题。

从生产力上讲,这个问题的命题是不对的。首先,在一个公司产品开发上,需要的是协同工作,并不是依靠个人能力来完成的,正如打篮球,只有姚明的赛场,没有队友,你想想怎么能够带领火箭。其次,一门开发语言,不存在特别的好或者特别的不好。原因在于,语言是用来服务产品开发的,只要开发人员用的顺手都是可以的(ps:前提是看公司注重哪些语言或者需要哪些语言的开发人员)。

从语言本身来讲,大家普遍认为C++ 比java好,Java比PHP要好,XXX比XXX要好。其实,要看公司的发展,中小公司使用PHP是足够的,有没有庞大的数据需要考虑太多的问题。再者,即便是淘宝、京东也不是只应用Java或者PHP,往往都是多种语言相互结合的。

所以,这个问题是不对的。太片面。


医疗pm产品汪

首先这句话有点偏激客了,不过程序员鄙视链一直都存在,就当个乐子瞧就行了。编程语言没有好坏之分,只有适用不适用,只有使用者能力高低与否,与语言本身无任何关系。


寂夜的哀伤

cpp的难度在于语言本身,而java的难度在于大平台的架构,java就是为开发大型平台而生的,一个java工程师除了会使用语言本身外,还需要学习各种中间件,各种开源项目,设计模式,分布式,高并发,以及各种云架构,比如要开发一个云平台,普通工程师需要掌握j2ee,消息队列,缓存,负载均衡,web,jpa,微服务,maven,git,junit,docker等等,如果平台需要对接物联网,直播等业务,为了保持语言的统一,那么还需要用java实现百万级socket并发连接,实现高效的视频转码等工作,所以要作为一名java高级工程师并不轻松。


gjajgkjmdchuxm

小无相功听说过吗?Cxx就是小无相功,会这一个语言,所容纳的概念已经覆盖几乎所有语言,精通Cxx也就会极短时间学会其他语言,你说生产力有多强不见得抵得过200个java但2个差不多


皎皎如月何时可戳


自在心心自在

生产力高不高,不是由语言决定的,而是由程序员的水平决定的,理论上说任何任务用任一一个编程语言都能实现,只是实现的方便程度有差别而已。


分享到:


相關文章: