现在的位置: 首页 > 编程语言 > 正文

为什么C++很少用于Web后端开发?

2020年01月15日 编程语言 ⁄ 共 1383字 ⁄ 字号 评论关闭

  世界上主要的Web后端,都是用C/C++编写的,比如谷歌、百度、腾讯、脸书等公司的后端,主要是C/C++。另外一些商务型公司,则采用Java。

  其次,大部分互联网底层平台(操作系统、Web服务器、数据库等),编程语言、相关扩展库,也大都是C/C++开发的。

  当然,这些基础平台的开发国内很少涉及,全都是用国外C/C++程序员开发好的产品(开源或商业收费)。完全没有中国开发者参与,所以导致被完全忽视。

  C/C++编写的程序,占互联网后台90%以上的运算能力

  C/C++性能最好,但是开发效率最低。因此除了基础部件、调用频繁的库,普通网站大部分业务逻辑都会用开发效率更高的语言来编写。

  C/C++占互联网后台运算能力统计:

  按平台算约100%:C/C++几乎包揽了全部Web后台的运算能力。操作系统、Web服务器、数据库、大部分编程语言、扩展库全都囊括在内。

  包括API和库调用来算占90%以上:C/C++占用了互联网后台90%以上的运算能力。其他低性能语言直接承载的运算较少,大部分运算是调用的C/C++编写的系统API和库。

  只按后端语言计算(大家常见的):C/C++后端几大巨头在用,还有一些局部领域应用,总量确实较少,但权重有半壁江山也毫不夸张。并且通常有封装,前端直接看不到。

  谷歌后台内核主要是C/C++,代码量是Windows的30倍。Python运算性能比C/C++慢200倍以上,只用于周边和大数据AI的胶水语言。结果到处在误传谷歌后端用Python(来支撑大家常见的业务)。当然,Python Web服务器性能可以达到C/C++的1/10,可以承载一些负载较轻、或原型性质的业务。

  为什么比C++慢200多倍的Python,服务器性能却能达到C++的1/10呢?因为Python大部分时间都是在运行C编写的扩展库以及系统IO,本身py代码运力占比只有5%。

  只有那些巨头网站,才有资源和能力用C++来写后台。因为海量服务器的成本差异,远远超过C++开发成本的增长。比如某服务Python要用1000万台服务器,PHP用300万台,Java用200万台,C++用100万台。肯定选C++,节省几十几百亿。

  比如脸书已经全面从PHP迁移到C++,服务器减少到原来的三分之一。但如果Python用10台服务器、PHP用3台、Java用2台、C++用1台服务器。肯定不会选C++,因为这时开发资源比服务器贵。

  互联网C/C++的替代品:Go

  C/C++入门并不难学。但因为和硬件底层更近,所以程序形态与自然语言距离更远,需要写更多行语句和花更多时间去掌握。而夺命指针,即是性能飙升的利器,也是程序崩坏的元凶。因此,C++要更多时间去编译、测试和检查程序,才能保证稳定,不适合快速开发更迭。

  实际上是后端开发语言太方便、灵活、稳定了,倒逼C++只能去做内核了。互联网光一般的更迭速度,C++的缓慢接近凝滞的身段,令人没法提起改进C++直接Web开发的兴趣。索性直接写出了PHP、http://ASP.NET、JSP等支持高效开发的产品。但当网站规模增大的时候,高并发和密集运算部分C/C++又成为了必须的选择。

  Go就是谷歌为了解决这些痛点,应运而生的。具备接近C的性能,但更安全快速、更具备互联网基因,目前在后端增长最快。

抱歉!评论已关闭.