为什么nginx这种开源软件用纯C而不用C++开发

如题所述

如果强行说有原因的话,完全优化的C程序要比C++略快。其实也快不了很多,毕竟编译出来的binary本来也差不太多,但是对于工业标准来说,C还是比C++普及的。

现代的C++最注重的是代码的易维护,而不是纯粹的效率。一个小工程要追求极致的效率,还是要找C。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-01
我想没有为啥,刚开始写的人喜欢用就用了

如何用C++语言开发 tiny Nginx并真正锻炼C++的使用
Nginx是C语言写的,但这个不是改写为C++的关键,关键是C语言开发时面向过程的思想,C++开发是面向对象的思想,两者的差别还是很大的。通俗的讲,面向过程开发就是设计好“第一步干什么”、“第二步干什么”、“第三步干什么”。。。而面向对象的开发就是设计好有哪些对象,例如编码器、解码器、HTTP协...

为什么说c\/c++不适合做web开发?
C\/C++并非不适合Web开发。在Web发展的早期,CGI即通过C\/C++实现Web框架,与Servlet、WSGI相类似。CGI还具备跨语言特性,支持多种语言编写应用。FastCGI是CGI的改进,运用进程间通信技术,成为Web框架的一种。现今流行的Web服务器如Apache和nginx,均基于C语言编写。Web开发的特点与传统C\/C++应用存在差异,...

为什么那么多公司不用 .NET,而选择PHP、JSP,是 .NET有什么缺点吗?_百 ...
一是开源和闭源的区别,.net早期完全闭源,开发也是完全傻瓜式的,微软的思想就是让开发更容易,所以无法看到底层实现,给人的感觉就是走一条胡同,很快到达目的地却无法知道墙内的东西,接触过java和c之后,感觉就像掉进了大海,原来海底也这么漂亮,有太多开源的软件和框架,你可以看到更深层的东西,比如我们看dubbo,看进去后...

开源阅读好开发嘛
开源阅读不太好开发,有一定的难度性,你可以购买一些这样那样的开源软件的教程或者图书(包括电子书)去学习,但一定不要以这些学习材料为主要的学习这些开源软件的方法和途径,有机会的话,或者说你想要学习的开源软件所使用的开发语言正好是你熟悉或者使用的编程语言,那么你应该尽量多去以阅读这些开源项目...

Nginx中为什么要安装开发工具组?
1、首先将下面3个包ftp到服务器上,并解压到各个目录下面;2、切换到root用户(最好用root,用普通用户安装的话以后比较麻烦些)cd pcre-7.9 .\/configure CC=\/opt\/aCC\/bin\/cc CXX=\/opt\/aCC\/bin\/aCC ONFIG_SHELL=\/bin\/bash 这里使用的c编译器是cc,C++编译器是aCC,没有使用gcc。配置完后,...

面试必备:nginx知识梳理(收藏版)
在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。反向代理 在说反向代理之前,先来说说什么是代理和正向代理。代理 代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。刚开始的时候,代理多数是帮助内网client(局域网)访问外网server...

C++文件服务器项目—Nginx—3
1. Nginx基础概念 初步认识 Nginx,源于engine x,由俄罗斯人开发,是基于C语言的开源服务器框架,淘宝曾基于此发展出Tengine。其功能多样,可作为Web服务器处理HTTP协议,作为反向代理实现负载均衡,并能作为邮件服务器处理pop3、smtp、imap等协议。2. 正反向代理理解 正向代理:客户端通过代理服务器访问...

C语言为什么不能成为写网页语言?
只要有编译链接的软件就可以。html依赖的框架是浏览器,开发浏览器的人决定了运行在浏览器上语言,理论上可以开发一种浏览器执行C语言,但是人都想标新立异扬名立腕,想做XX之父,所以总喜欢自己来定义一种新语言。这实际上造成了资源浪费。坚持用C语言的人是那些不愿意屈服于各种大腕的人,代表了科技...

从openresty谈到rust
golang的语言设计较为简陋,而rust以其优雅和先进性脱颖而出。它的所有权系统解决了C\/C++中的内存管理问题,无需额外的垃圾回收带来的开销,同时充分利用社区成果,专注于语言特性,生成代码和链接代码则由专业的工具完成,实现高效开发。golang的协程在rust中通过future、async、await实现,提供了与golang...

如何对待日新月异的软件技术
这些就是企业级软件方面语言层面就是C -> C++ -> Java这条主干,操作系统是Unix -> Linux\/Windows这条主干,软件开发中需要了解的网络知识就是Ethernet -> IP -> TCP\/UDP 这条主干。另外一条脉络就是互联网方面的(HTML\/CSS\/JS\/LAMP…)。我是一个有技术忧虑症的人,这几条软件开发的主线一定不能放弃。

相似回答