有人说腾讯使用C++为主要开发语言?java少?为什么
我负责过QQ秀和Qzone的运维,也在QQ秀做过开发,当时我所在的部门,如果用java作为开发语言的话以当时服务器的数量是不足以支撑数亿用户的服务的。
要知道,与淘宝不同,腾讯许多业务是免费使用的,例如qzone的许多功能都可以免费使用包括心情,日志,相册,服务器要承担这些亿级的有大量高密集的碎片化请求,如果用java来支撑,经济上是不划算是一方面,响应速度方面用户体验也非常不好。
再来看淘宝,与qzone发个心情,日志相比淘宝用户在淘宝上的行为最终要触发商品交易的,说通俗点就是淘宝用户的行为大都是跟钱相关,而且淘宝要不断迭代更新的同时确保程序逻辑的严谨,Java综合来说是个非常好的选择。
对于高效处理这些高密集的用户请求,c是一个非常好方案,非常适合腾讯的用户场景;淘宝也不是不用c,像淘宝的图片服务器,也是属于海量的高密集用户请求服务,淘宝在这里使用淘宝技术团队修改过的nginx,我们都知道nginx就是c开发的,类似的场景在淘宝的服务架构里应该还有很多这样的例子,阿里也雇佣了不少c的工程师,Linux内核工程师。
关于这个问题要你要从腾讯发家开始看。
腾讯最开始是以做通讯软件开始发家的,也就是qq.因为qq主要涉及到的就是网络通讯这一块,再加上当时主要就是用在PC端,从程序的运行效率考虑C++无疑都是最好的选择。包括后面腾讯的一系列产品qq音乐,qq管家,qq游戏等等基本上都是基于C++开发的。据我所知他们的服务端应该也是用C++写的。
我所见到的一部分原因是,腾讯内部的各类c++组件已经非常丰富并且稳定了,这种情况下若非特殊原因,实在没理由花力气和冒风险去切其他性能还不如c++的语言,我c/c++,java,python,lua都写过,对语言并无偏执。我接触到的一个基础模块,日请求量200亿+,服务器数目却不足百台,其他语言是很难做到的。所以,新模块开发依然首选c++,但内部也一直鼓励新技术,前提是有正当理由。很多时候我们只是了解到一点皮毛,然后就根据这点皮毛去揣测不熟知的领域,这里不单指计算机语言,这种习惯是很危险的,共勉。
JAVA一般多久能学会
一般学JAVA的分为几种类型的人:
1、读大学的人,他们专业就是计算机,汇编语言是JAVA,他们学习时间是比较久的1-2年是最少的,有些同学学的很扎实,出来找工作没有问题,有的同学还需要找第三方培训机构再造;
2、转行的人,由于软件开发行业人员薪资比较高,很多人跨行学习JAVA,会去报JAVA培训班,一般培训时间4-6个月,有的更久,是根据学员自身情况来规划学习时间;
3、天赋比较好的人,他们跨行自学JAVA,有的人几个月就掌握了JAVA的开发思想,而且做项目他们完成的都很不错。
一般学习JAVA,都要经过几个阶段,JAVA基础语言(一些基础知识)——JAVA高级语言(开发项目的框架),按市场统计大部分学习时间是4-6个月,便可胜任JAVA初级开发工程师,工作3年左右升JAVA中级开发工程师,再两年可以做到JAVA高级开发工程师,后面就是JAVA架构师或者项目经理。