- 主题:我就觉得c++现在纯粹就是标准库不行
记得 Google c++ 编程指南里面原则上禁止模板
【 在 nickwang 的大作中提到: 】
: 所以你觉得太多模板也不是好事?
: 我公司有个刚毕业没几年的凡是能用模板的都一律用模板, 其实他写的大部分也就是自己用,也没看出来非要用模板的必要,但是有些人就喜欢,看着写起来也很快,其他人要去改就很痛苦了。我自己每次都要开着网站差说明才能写好。。。还挺羡慕那些写模板不查资料的。
:
--
FROM 161.117.188.*
你看这俩开源的,他们分别的核心贡献者就几个人。一部分原因就是c代码很难重用和合作。
C++在基本不牺牲性能的前提下,轻轻松松让核心开发者可以提高一个数量级。
【 在 oldwatch 的大作中提到: 】
: C++的定位就是开发nginx,mysql这种要求极致性能的东西吧
:
: 不过现实中nginx和redis都是用C写的……
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 75.31.75.*
chromium的base目录里有一堆模板
【 在 litguy 的大作中提到: 】
: 记得 Google c++ 编程指南里面原则上禁止模板
--
FROM 49.93.132.*
各种语言的没落基本都和库不好有关系。
【 在 libgcc 的大作中提到: 】
:
: 标准库一直残废几十年
:
: 直到c++20之前map连个contain都没有,string什么的就更别说了
:
: 而且模板库本身也比较难用,概念很多,报错处理也很怪,比如你想用printf打出fstream
: .tellg()的返回值,你甚至都不知道用%什么是最规
: ..................
发自「今日水木 on Android」
--
FROM 117.136.0.*
Redis不清楚
NGINX模块化程度可是相当的高
当然,关键还是这两个(核心)代码量都不算高
都是万行级别,CPP那一大套工程导向的设计没比较优势
又有极高性能要求又有高度复杂性的软件
很多又有历史包袱不能轻易导入语言特性
一溜排除下来之后……
【 在 lambdai 的大作中提到: 】
: 你看这俩开源的,他们分别的核心贡献者就几个人。一部分原因就是c代码很难重用和合作。
: C++在基本不牺牲性能的前提下,轻轻松松让核心开发者可以提高一个数量级。
: :
: ...................
--
修改:javafish FROM 223.104.210.*
FROM 49.88.112.*
软件工程很多时候不是靠堆人的。
拿HTTP服务器来看,贡献者的多少和实现语言似乎关系不大。看GitHub上的Contributors数量:
OpenLiteSpeed(C++) 15
h2o(C) 114
nginx(C) 55
Caddy(Go) 88
https://github.com/litespeedtech/openlitespeed
https://github.com/h2o/h2o
https://github.com/nginx/nginx
https://github.com/caddyserver/caddy
如果说是*核心*贡献者的话,这个我暂时还不清楚怎么统计。
【 在 lambdai (lambdai) 的大作中提到: 】
: 你看这俩开源的,他们分别的核心贡献者就几个人。一部分原因就是c代码很难重用和合作。
: C++在基本不牺牲性能的前提下,轻轻松松让核心开发者可以提高一个数量级。
: - 来自「最水木 for iPhone12,8」
: ...................
--
FROM 123.112.71.*
c能写对软件是不假,可是对心智要求特别高。要不然nginx怎么那么多lua 插件呢。
【 在 javafish 的大作中提到: 】
: Redis不清楚
: NGINX模块化程度可是相当的高
:
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 75.31.75.*
因为lua插件都是顶层业务向的
需求百变,门槛又低,自然产出多了
但底层功能还是要靠那堆_module支撑
没有api支持光靠lua很多时候只能摊手的
之前碰到过一个动态绑定C端安全证书
硬就是加载了三方模块才搞定
【 在 lambdai 的大作中提到: 】
: c能写对软件是不假,可是对心智要求特别高。要不然nginx怎么那么多lua 插件呢。
: :
: - 来自「最水木 for iPhone12,8」
--
FROM 49.88.112.*
你说的有道理,核心贡献者还看项目活跃度,还看看开源的时机,还看项目的运作...核心贡献者不是很好的指标。请忽略我的论点吧。
不过过滤掉贡献10个commit以内的贡献者应该差不多可以稍微度量一下核心贡献者。这主要是为了排除我这种看到小bug就去不疼不痒改改的…
【 在 ArchLinux 的大作中提到: 】
: 软件工程很多时候不是靠堆人的。
: 拿HTTP服务器来看,贡献者的多少和实现语言似乎关系不大。看GitHub上的Contributors数量:
:
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 75.31.75.*
感觉这说法比较有道理。刚才想了一些见过的软件,用C++实现有这些项目,应该是C++相对其他语言占优的地方:
- AI框架:TensorFlow, PyTorch
- 编译器:LLVM, GCC(>=4.8), yosys, nextpnr
- LibreOffice等大型桌面软件
那些功能比较单一的基础算法库,像压缩库(zstd,lz4,lizard),malloc库(jemalloc,mimalloc),密码学库(OpenSSL,mbedTLS)还是C实现的多。用C写库还有个优势是其他语言的程序调用比较容易(不过C++,Rust也可以导出C接口)。操作系统内核(Linux)、数据库(PostgreSQL)用C写可能还有写其他的原因。
【 在 javafish (这不是一个昵称) 的大作中提到: 】
Redis不清楚
NGINX模块化程度可是相当的高
当然,关键还是这两个(核心)代码量都不算高
都是万行级别,CPP那一大套工程导向的设计没比较优势
又有极高性能要求又有高度复杂性的软件
很多又有历史包袱不能轻易导入语言特性
一溜排除下来之后……
【 在 lambdai 的大作中提到: 】
: 你看这俩开源的,他们分别的核心贡献者就几个人。一部分原因就是c代码很难重用和合作。
: C++在基本不牺牲性能的前提下,轻轻松松让核心开发者可以提高一个数量级。
: :
: ...................
--
修改:javafish FROM 223.104.210.*
FROM 103.90.178.*