- 主题:boost库技术含量这么高的库,为什么工程中用的人很少?
"工程中用的人很少"这个结论有支撑数据吗?还是只是感觉呢?
用不用,
一是看项目组中的人对此的掌握程度,
二是看喜好,特别是项目中有话语权的人的喜好,
三是看需求是否契合,既要了解boost,又要了解自己项目的需求
还有一点,某些boost库,已经改名为std::xxx,进入标准库了,所以你用的某些std:xxx,实际可能也是“用的boost”
--
修改:z16166 FROM 221.220.174.*
FROM 221.220.174.*
这可能是误解吧,刻板印象,而且有这个偏见的人不少。
你可能只是把整个boost包下载了解压放在硬盘上,但是可以“用到什么,就只include什么”,不需要全部都include进去。
当然,这个库有基础的头文件,好多库都依赖这些基础的头文件,无法排除掉不要。这也正常
因为就算你自己写一个项目,必然也有一些基础的building block,你项目里的其他东西会依赖这些底层的building block
还有个问题就是,有些人会认为boost包、VS2022这些尺寸太大,我认为嫌这些尺寸大的,基本上就只是玩玩C++的,不属于正经要学C++或者要靠C++吃饭的,因为正经要靠C++吃饭的人(搞信奥的学生不讨论,他们的电脑是父母出钱的),怎么会因为几百兆、几十G的磁盘空间就排斥工业界知名的IDE。
现在有vcpkg可以锁定boost的版本,不需要再把boost放到自己的产品的git repo里,也就不占用git server的空间。
【 在 yuanmo 的大作中提到: 】
: boost能提供的功能就是一堆调料,我只想要一盘醋,人家说不好意思我们不单卖,必须把辣椒酱豆瓣酱海鲜酱牛肉酱花生酱蒜泥香葱香油腊八蒜全打包了外加水果盘饮料和鸳鸯锅底都一起下单。我们是天下第一的调料库,你不买个全家桶你好意思说自己会吃饭吗。
:
--
修改:z16166 FROM 221.220.174.*
FROM 221.220.174.*
要编译整个库,也只是在vcpkg更新boost版本时做一次即可。
而且vcpkg可以只选择其中的一部分feature来安装、编译。
无论是CI服务器上,还是每个开发者的机器上,都可以做到这个。
其他时间,都只编译你的项目中include到的boost的一部分。
【 在 speedboy2998 的大作中提到: 】
: 主要就是一个原因:太大。
: 一旦要用它,就要编译整个库。不如用很多其他高质量的 header onl 库,除非没有替代品。
: 比如我用 BOOST 最多的就是 asio, 也可独立于 BOOST 存在。
: ...................
--
修改:z16166 FROM 221.220.174.*
FROM 221.220.174.*
boost就是std的试验田
不过现在有些打算进入std的库,不走boost这条路了,也就不在boost里。
编译一点也不麻烦吧,vcpkg或者bjam,除非要定制很细的bjam编译选项
【 在 kasshu 的大作中提到: 】
: 用的不少啊,就是编译麻烦,有些库因为好用都进入std了
--
FROM 221.220.174.*
小白或者业余玩家的诟病,那不是“业界普遍存在的诟病”
当然,也有一些职业码农也会觉得boost太大太臃肿,但我觉得这是偏见(人云亦云也好,不知道怎么选择boost feature也好),所以上面才打那么多字试图消除这种偏见,因为可以用vcpkg按需安装、按需include。
一门语言对小白不友好,是很正常的,因为语言有不同的level,越是low-level的,越需要掌握更细的知识才能玩转。C++就是high-level语言里比较low level的、靠近机器硬件的。
每种语言都有其用途和适用场合,如果不需要C++就能搞定的问题(比如用python等),即使自己没有C++基础也非要学习C++并用它搞定,那是费力不讨好。
"驾驭过几千万行C++大工程的架构师"并不一定就能说明boost臃肿、垃圾,只是说明boost可能不适合他的项目/产品,或者没进入他或者这个项目以往有话语权的那些人的喜好列表里。
Linus还喷C++垃圾呢,这比"驾驭过几千万行C++大工程的架构师"名气要大多了吧,但是这世界上就没人用C++了吗?
【 在 yuanmo 的大作中提到: 】
: 一个建议,对于业界普遍存在的诟病,最好不要老是质疑对方的水平。
: 如果对方是小白,那一款语言对小白很不友好,是不是也是设计失败的标志之一。
: 如果对方是驾驭过几千万行C++大工程的架构师,是不是更能说明问题。
: ...................
--
修改:z16166 FROM 221.220.174.*
FROM 221.220.174.*
我不求谁用啥啊,爱用啥是个人喜好
说得好像我拿了boost或者vs的钱在给它做推广然后要求着谁用似的,哈哈
【 在 siyuetian 的大作中提到: 】
: 你说的很对,但我不用boost。
: 在十几年前,c11还没有被当时的项目支持的时候,我确实不得不用boost,现在很抱歉,我看不到任何必要。c20/23的标准库已经足够强大了,如果我需要一些额外支持,我也倾向于寻找header-only的独立库。
: 哦对了,最后一点,我90%以上的工作是在mac/linux下,但即便win下,vs系列我也不觉得有多好,只是当年别家的更烂而已,而且与其说vs好,不如说va_x好。至于今天,可用的选项太多了,甚至win下我也不用vs编译器而是用clang+mingw
--
修改:z16166 FROM 221.220.174.*
FROM 221.220.174.*