1、是不是因为C++服务器相对于JAVA有一定的优势?
答:不会,但是每个公司都有技术积累。 与Java相比,腾讯在C++方面积累了更多经验。 这当然是有历史原因的。 如果你正在开始一个新项目,你可以使用腾讯大量的C++开源组件。 这些组件由专人维护,并且大部分已经在生产环境中进行了测试。 它已经可用,为什么不使用它呢?
2、如果是因为腾讯懂C++的员工比较多
(1)经常看到有人说编程语言只是工具,精通一门就很容易上手? 这导致了以下长期存在的问题:
(1.1) 熟悉JVM、Java并发编程、Java开源框架的人转用C++还能很快达到一定水平吗? 熟悉C++转Java的人能很快熟悉这些吗?
回答:我发现熟悉 C++ 的人转换成 Java 很容易,但反之则不一定。 从语言本身来说,C++还是比Java难很多。 事实上,作为一名专攻某一领域的程序员,从熟悉的语言切换到其他语言并不是一件容易的事。 不是因为语法本身,而是因为切换到其他语言时,需要熟悉新的开发环境、工具链、各种组件等,时间成本和风险都很高。
(2)为什么不招JAVA程序员进行开发?
答:如果你是JAVA程序员,精通C++,就会被录用。
虽然腾讯后端经常面临各种高并发大数据场景,非常注重高性能、低成本和高可用性,但这都是在架构层面解决的。 其实业务开发不需要考虑太多,根据场景选择合适的架构即可。 和组件。
根据我这几年的观察,大多数业务代码写得乱七八糟。 性能、可扩展性、健壮性不是我写的C++能比的,也不是我写的Java能比的。
我什至敢说用js可以写得更快。 有太多低效的算法。 你能容忍双环相交吗? 内存副本也太多了。 中转层的服务对象复制五六次就太常见了。 至于频繁崩溃、没有扩展性,这个就更不用说了。
C++理论上可以写出性能不错的代码,但是你的需求这么迫切,开发时间不够,没有时间进行单元测试。 优化代码的时间在哪里? 更何况大家的水平都不是很高。 毕竟,已经招募了数万人了。 怎样才能让每个人都“精通”C++呢? 虽然C++开发效率低(目前使用gcc 4.1.2)并且容易出现bug,但是大家都在用,当然你也可以。 继续使用它。 如果换语言,配套的工具链、编译、发布、运维、各种内外接口都需要重新开发,成本实在是太高了。
即使是新项目,成本也太高了。 如果项目失败谁来承担责任?