tjz001 发表于 2023-11-8 20:07:45

为什么c++的开源库那么少?

为什么c++的开源库那么少?

冰湖小生 发表于 2023-11-8 20:08:03

C++不是开源库少,而是C++的大部分开源库上手难度比较高,比如编译一个开源库发现cmake版本低了、Linux版本低了、编译莫名其妙报错了、缺少某个头文件、缺少某些动态连接库等等这些都容易卡住新手。最近就遇到一个棘手问题,Linux默认安装的解压缩库遇到大文件性能不太行,搞个开源库折腾了半天把大文件解压缩性能提升几十倍。

其它栏目只拥 发表于 2023-11-8 20:08:36

收藏过一个网页:A list of open source C++ libraries,但是很久没关注过了,不确定作者是不是还在继续更新。
网站介绍如下:
The objective of this page is to build a comprehensive list of open source C++ libraries, so that when one needs an implementation of particular functionality, one needn't to waste time searching on web (DuckDuckGo, Google, Bing etc.).
本页面的目的是建立一个全面的开源 C++ 库列表,这样当人们需要实现特定功能时,就不必浪费时间在网上搜索(DuckDuckGo、Google、Bing 等)。分类目录很长,我截个图:

http://picx.zhimg.com/v2-c16d091be867b5ad3b6865c2fb5955a5_r.jpg?source=1def8aca
分类下的具体内容:

http://pic1.zhimg.com/v2-45ff568117de94db92ed84c84f3c13cd_r.jpg?source=1def8aca
多数有自己的官网,其它以 github 为主。
看看够不够用吧。


如果只是想讨论“少”,比如跟 Java,Python 比。
我倒是听过一种说法,来自我们技术大佬:
C 和 C++ 是平台推动者,Java,Python 这些是平台。我也是琢磨了好一会儿,主要是我们大佬太忙,不接受讨论......


再贴个笑话,新手问老手:
如何在 PHP 中添加库?
答:composer require 'library'如何在 JavaScript 中添加库?
答:npm install 'library'如何在 C# 中添加库?
答:dotnet add package 'library'如何在 Go 中添加库?
答:go get 'library_link'那么,如何在 C++ 中添加库?
思考了一会儿,答:
准备两个文件夹,一个存 header include files,一个存 library binaries;
将 flags 附加到编译器以相应地识别它们;
调查 library 的运作方式,如果文档是健全的;
如果库是 header-only 的,那么...
如果库分发了 binaries,那么...
如果库不分发其 binaries,那么...
如果库使用 CMake,那么...
如果您在运行程序时遇到链接器错误,那么...

ytmxkj 发表于 2023-11-8 20:09:13

作为一个老程序员的不请自来的回答:孩子,问这个问题只是说明你太年轻。
给第三方厂商提供饭碗。。(说笑了)
这其实和每种语言的定位有关,c++定位偏底层,Java,Python都定位在更高的抽象层级中。就像很多行业有上下游一样,不可能所有人都要做手机,却没人做芯片。
c++标准库所缺失的其实都可以由第三方库来弥补,c++标准库提供的是底层的,粒度较小的API,比如它没有图形库,你可以使用qt,MFC,等等实现,Java有图形库swing,awt。不是照样没人用。。同样如果c++标准库里面东西多了,你可能也会吐槽,标准库实现的好low啊,然后拒绝使用。高层抽象的库及其API很多时候优劣更难以鉴定,它可能不仅是从效率方面考虑,也可能从软件工程的角度来考虑,见仁见智,它们不像实现一个排序算法那样,一就是一,二就是二,快就行。
同样的情况你可以看看c语言,他定位更为底层(是底层而不是低级),他的库比c++还欠缺很多,然而依然有很多开源项目在用,比如nginx。你可以这样想想,你一台机器上,可能放置多个Java web的网站,但是你只需要部署一个nginx。这就是定位不同。
你每个网站代码肯定是不同的,而nginx安装完基本上不会变了。C/C++语言的应用场景通常定位在基础设施。就好比是高速公路,而Java、Python这种基于更高层次抽象的语言定位在基础设施之上的各类应用,就好比是跑在路上的汽车。汽车每年都要生产很多,但是高速公路不会频繁地新增,但公路又是不可或缺的。
c++的标准库其实也一直在扩充,但是它对纳入的每个新事物都持谨慎态度,一般都是在boost库中锻造个几年才行。
这里分享下知乎上关于高赞C++ 的一些个人愚见,希望能与你一起成长:
为什么我时不时会看到「珍惜生命,远离 C++」?为什么说C++很难?认真学完 C++ Primer 后,C++ 语言到了什么水平?有哪些轻量级适合阅读的优秀 C++ 开源项目?2022年学C++开发好比49年入国军,没什么公司在用C++了?《C++ Primer》和《C++Primer Plus》有哪些区别?
喜欢的不要忘记给我
@码农出击
点个关注,点个赞!

chqq5281 发表于 2023-11-8 20:09:33

c++库的现状:满世界的 《易筋经》《九阳神功》《降龙十八掌》。
其他语言:祖传《葵花宝典》,抢来抢去。这样一来倒也没什么争议了。大家齐心协力练好它。

tianzi3203 发表于 2023-11-8 20:10:16

你重新定义了什么叫「少」。
页: [1]
查看完整版本: 为什么c++的开源库那么少?