为什么我那么喜欢 C++??
工作好几年了,除了大学写了一年的 C++,工作中基本没写过,
最近给表弟处理问题写了点 C++代码,发现还是那么好用。。。
有同感的吗?
我也想过为啥其它语言没有那么吸引我,可能是因为太高级的原因?
让我写代码的过程中完全体会不到计算机的美。
啊? 为啥还有那么多老铁在说内存问题呢? 我理解不是用了智能指针后,内存管理完全像写 java 一样丝滑吗?
要不是编译各种报错 我就信了
还是用的少,当爱好成为职业。。。你就会发现坑很多。
有同感的吗 没有
c++大而全,该有的都有了,挺好的。但是坑多、features 滥用严重,template metaprogramming 比 rust 难学。
如果我还是学生也许就信了
C++就是语法历史负担太重,模板元编程完全可以有更好的语法,再加上静态反射。另外就是 C++工具链倒是不少,就是缺少一个像 cargo/rustup 这样方便的套件。语法方面,我觉得 Cpp2 是个好思路,虽然很多人觉得太极端了,但是要演进又要保持兼容性就必须这样。
因为 C++它就是那么强啊!极致的性能表现,极低的资源占用,完全的硬件访问能力,各式各样的编程模式,你可以随心所欲的写,没有束缚,只要你能力够。这种从心所欲的体验没有其他任何语言能代替。
我选择用 c
因为 c++是一门民主的语言,c++委员会民主决策。反观 rust…………
不民主吗
rust 为啥不民主哇?
C++不像民主制,倒有点像贵族制,一帮利益相关方派代表相互扯皮
#6 rust 就是事实上的 cpp2 ,不只是语法,概念、范式也都是 cpp 的延续。
c++要写的小心翼翼,不知道 LZ 觉得哪里爽了……
以前我也这么觉得,现在我觉得哪个好用用哪个,甚至无缝使用多门语言。回过头来觉得争论语言没啥意义,技术人员应该根据不同场景寻找合适的技术方案而不是根据偏爱
我也更偏向用 C++,尤其是个人项目。Windows Only 的项目除外,这时候我会根据实际需求选择 C# 或者 C++,不会定死只用一种。个人项目跨平台时,我只能选 C++,因为我跨的平台相对“偏门”。不但有 Windows 和 Linux ,还有整个 BSD 系列——FreeBSD, NetBSD, OpenBSD, DragonflyBSD 这几种。毕竟我既想用到方便的语言特性,又想二进制文件尽量小,不要“拖泥带水”挂靠 VM ,还要兼容 DragonflyBSD (尽管没什么人用,但我还是会给它编译出二进制文件)。这样下来可选范围非常窄,对我来说也就 C++最适合了。
因为你没写过大项目,我虽然没写过 c++,但之前写 Java 用到 jni c++ lib ,那编译速度,少说也是五分钟起步
楼主一看就是自虐型人才
没有一门语言是完美的,只有使用场景合适不合适,毕竟语言只是工具。能让人体会到计算机的美的语言有很多,你只是不愿意去了解,scheme,Racket,Haskell,Erlang 这些函数范式语言所体现的思想让很多现代语言比如 C#,JavaScript ,C++,Java 等拿来重新包装,体现所谓的“先进思想”,其实多去了解一下,就会发现这些思想在上世纪七八十年代就已经有了,只不过没有大规模使用。
怎么这么多没写过 C++ 的人在这里乱说,C++ 14 、17 、20 已经让 c++ 上手难度降低了很多,要对比,肯定是比 Rust 容易上手的。需要用 C++的地方自然会用 C++, 不需要的地方就是接触也只是皮毛。现代 C++ 包管理工具也不是唯一,估计这些都是 CRUD 程序员吧,找不到集中式包管理,就觉得 C++ 不好。了解一下 CMAKE, Vcpkg, Conan 没多长时间。
群里整天在喷 cpp 连个标准 socket 库都没有,全靠手撸
有个大家都知道的黑历史,Linus 一直拒绝使用 C++重构 Linux 内核,但是近年开始接受 Rust 。
我选择用汇编 完虐 C++让我写代码的过程中完全体会不到计算机的美
Linus 除了 C 、Rust 语言以外,其他语言像 JAVA 都喷了,怎么大家就只记住 C++。C++ 一定不要看国内的书会让你误入歧途。C++ 的项目可是不断维护的,有的项目比群里这些小辈年龄都大, 这些库的稳定性足够强,而不像什么 JS/ Rust 还没几年就被人抛弃了。大多数人喷 C++ 只是因为他学不会而已, 作为高校和信息奥赛指定的语言,学 C++ 的每年可并不少。
如果我不是在生产环境中用 C++的话就真信了你的邪了
我也愛死 C++了 多謝你給這麼多內存溢出和桟攻擊的 CVE 我才能黑了你的程序 Rust 的內存安全機制是壞文明
win11 canary 频道前段时间也推了 rust 重写的部分内核
要不是用了 golang 我差点就信了 🤣核心用 c++ , 插件用 golang, 爽
C++ 的 feature 太多了,我不太喜欢,反而更喜欢 C
写自己代码用合适的语言完事,Rust 这几年高危的 CVE 一个都不少, 比如去年修复了一个编号为 CVE-2022-21658 的高危漏洞语言之争都是底层程序员的无畏之争。写基础设施和专门系统开发的人, 写 c++ 和 rust 都是随便切换的, 在数据结构和系统编程、网络编程、计算机组织结构都熟练掌握的情况下, 不会特意挑,反而 Rust 黑粉 什么语言都学不会叫嚣的很多。
那是因为你的工作不是 C++
我只对钱感兴趣 c++做 hft 有 80 万美元一年呢
只用到一小部分而已,20%的语法完成 90%的工作
工作中没用过 结论是你喜欢 c++ 不够严谨的
对我来说,感受完全一样,只不过语言换成了 java
写代码体会到计算机的美?能借几行代码说话吗
你先干几年,找几个线上 bug 再说。
参考 林纳斯的观点。
写的不够多,写的多了语言不是问题,在于怎么样设计架构来更好的满足需求和解决问题,一步步细化以后后面才有语言的选择问题,那个时候不是我们选择语言,而是生态和需求确定语言
很多人对 c++ 的印象还停在 20 年前。实际上现在 c++ 写起来轻松又愉快。
这二十年,,又加了好多内容,,spec 又厚了一倍不止
c++ 不搞 deprecated features 就是这样了, 一切为了兼容。挑新特性出来用就好了。modern cpp 上手很快 也没啥难度。
C/C++唯一优势就是资源可控性强,当然业务复杂时也是软肋
写 C++的时候我是真的有思考变量在内存中是怎么保存的。😓也不怕被笑话,刚转 C 的时候,我 debug 某个字节列表时,Clion 怎么只显示第一个元素,我一度怀疑是不是数据错了挣扎了半天,出去上厕所的时候突然想起指针是内存中的地址,Clion 并不知道具体的长度,所以只会提示第一个元素,这时候我是真的茅塞顿开。这时候可以体会到计算机的美,但是 deadline 的时候也是真要命,C++开发效率太慢了,而且语法也多,每次引入新的 SDK 都有看不懂的语法。
要不是我真写过 c++,差点就信了
不管什么语言,写到深处都会踩坑的。有些坑是语言本身会让你更容易写错代码,有些坑是语言本身非常难实现一个很普通的需求。
去学习下开源的大型 Asm/C/C++混合项目,体会下:一次编写,到处编译,还编译不过 :)
可以直接跟内存打交道嘛,大小端都不一样,要编译一下也是理清之中啦
我现在工作在写 C🤔
C++ 封装好了比写脚本还爽,只要别和别人合作,猪队友和云队友太多了,像写 Java 一样无脑接口,实现到处乱飞,鬼知道是个什么东西,找个实现还要全部代码都搜索一遍,没错我说的就是 Chromium 。
#9 rust 可太民主了,以至于出现一堆政治正确的破事……
#30 CVE-2022-21658 这个例子不太好。这玩意在 rust 标准库里算漏洞,在 c++ 标准库里算 UB ,调用者负责。
我也喜欢 C++, 喜欢那种自己可以掌控一切的感觉, 合理使用 智能指针, 可以极大的减小心智负担和内存出错的问题. C++17, 20 的完善, C++ 难度和友好度已经比以前好多了, 以前动不动几百上千行的 编译报错, 随着 C++20 里 模板的 require 支持, 编译报错也友好了.C++ 语法繁杂,就是一个大杂烩, 能在 C++里找到几乎所有编程语言的特性. 都是学 C++, 实际使用 C++--C++虽然比以前好用了, 但是易用程度还是不如和 go Java 这些, 在合适的敌方用合适的语言, 才是最优解
自从把内存搞崩,我再也不敢用 cpp……
hhhhhhhhhhhhhhhhhhhh 笑屎
写了点 C 以后觉得 C++ 还是挺好用的(
如果工作中没用过,那就有点叶公好龙的感觉了
#16有调研过 rust 的 BSD 兼容性么?
c++的工具链太复杂。make ,cmake ,xmake ,bazel 。debug 工具 gdb ,各种劝退
不同项目不同环境都能遇到编译问题,很多 Github 项目拉下来无法编译通过,这是 C++最大特点
我喜欢 C 但不喜欢 C++,不过也不讨厌就是。
modern cpp 好用,写起来比较顺滑。
这里就有: doc.rust-lang.org/nightly/rustc/platform-support.htmlTier 3 当中就有提到,RISC-V FreeBSD 并不支持,但 RISC-V Linux 却又是 Tier 2 支持,显然对 BSD 的支持并算不完善。而 BSD 系统自己支持的平台比这个列表要多,虽然我个人并不可能每个支持的平台都编译一次二进制文件,但如果有人刚好有 BSD 支持的偏门硬件(而 Rust 不支持)又刚好想拿来编译一下,那么他就没办法做到编译了。我并不喜欢给 BSD 使用者设限,因为我自己就是 BSD 使用者,尽管我跟对方所使用的 BSD 未必是同一种类。
顺便再补充个我是怎样迁就 BSD 的首先,有个很重要的一点,BSD 全系列全部自带 C/C++编译器,我很喜欢这一特点。哪怕是 FreeBSD 的衍生版本,即使是变成了防火墙系统(比如 OPNSense ),依然都自带编译器。其次,我发布的二进制文件未必涵盖 BSD 系统自己支持的硬件平台,但我希望其他人在这些平台里,可以顺利用自带编译器编译我的代码。这样就不需要额外安装其它语言的编译器了。那么能用的语言就只有两种:要么 C ,要么 C++。再结合我先前提到的,“想用到方便的语言特性”,只能选 C++。语言选好了,接下来选标准。到目前为止,FreeBSD 仍在受支持的最低版本是 12.x ,其中 12.0 自带的编译器是 LLVM 6.0, 最高能支持到 C++17 。直到 2022 年更新的 12.4 才升级到 13.0 ,可以稍微支持 C++20 。所以当下这段时间我会继续使用 C++17 。等到 FreeBSD 12.x 停止支持了(今年年末),我再升级语言标准也不迟。
喜欢 C ,不喜欢 C++,经验是写过 8 年 C++游戏服务器端
我在公司里会用 C++写命令行工具(哪怕是 Windows Only 的),这时候就可以放飞自我了,因为不用开源,我想怎么写就怎么写,甚至写出一大堆不符合 C++ Core Guidelines 的代码。反正这时候的目标只有一个:能跑不崩就行。
写了一段时间 rust,编译器告诉我,“是为你好,听我劝,我不要你觉得,我要我觉得,没有但是,理由都是借口,不是包不好,这么多年了你还不进步是你的问题”,以上换成人话后,你还喜欢 rust 吗?抱歉,有些事情我必须自控不需要你指指点点,你这些鸡汤留给新手就可以了。
有没有可能,C++的开发体验完全取决于行业?不同行业用 C++的方式完全不同,相似的只有无尽的内存操作
我也喜欢 c++,但我写不明白 makefile
也写不明白 cmakelist
像 rust 面向编译器编程,C++的编译报错还远远不够(手动狗头)。C++ 的门槛和天花板都很高,一不小心就会带入奇怪的问题。
我觉得需要一个 C++14/17/20/23/26 的 Modern C++教程系列。我之前稍微玩过一点 C++,结果连智能指针都没完全搞明白。
www.modernescpp.com/index.php/table-of-content/ en.cppreference.com/w/ www.geeksforgeeks.org/c-plus-plus/书《 More Effective C++》
书 在 github 上《 modern c++ tutorial c++11/14/17/20 on the fly 》 github.com/changkun/modern-cpp-tutorial然后看各种现代 c++ 的库的写法stl boost envoy
想要个官方的包管理工具 不知道过不过分
只要不需要和菜鸡合作,不需要处理屎山,那 modern cpp 就是很爽,一切尽在掌握中的这种精准性是别的语言比不了的。。。内存管理啥的,用好智能指针和左右值引用和 rust 也没啥区别,生态还更加丰富,相比之下 rust 在目前根本就写不了任何严肃的 GUI 和 GPU 代码。虽然现在做的东西用 rust 越来越多了,我自己也用 rust 更多一点,但是目前来说肯定还是 cpp 更胜一筹。当然了,如果队友多的话,我还是更倾向于用 rust 或者 java 这些强迫每个人都不准写烂代码的。
笑死,距离产生美嘛
Rust 现在进入了 Linux 内核,而 JS 是 Web 的根基。根本不会被人抛弃!
过不了多久 rust 就会被移出内核,有生之年系列
C 以及 C++连“官方”编译器都没有,更别说官方包管理器了其实很长时间以来,包管理是由操作系统自己的软件包管理器负责的,系统的软件包管理器同时就是 C/C++的包管理器。这原本是很方便的优势。只不过 Linux 发行版特别多,无法保证想用的包全都能出现在所有发行版当中。再加上 Windows 和 macOS 完全不做这种事,想要管理那就只能靠第三方软件(例如 vcpkg ,尽管也是微软的,但并不是预装在 Windows 当中)。于是,优势成了劣势。难怪不少语言索性自带包管理工具。如果 C 以及 C++背靠大公司,那么或许还能有个集大全的包管理器。可惜现实并不能。当初诞生 C 以及 C++的贝尔电话公司早就被拆散了,ISO 委员会也没资源去干这样的事。真想要做,那就必须两个 ISO 委员会( C 语言的 9899 和 C++的 14882 )同时协调着做,难度就更高了(时间会浪费在官僚式扯皮当中)。
手误,“贝尔电话公司早就被拆散了”应为“AT&T 公司早就被拆散了”
还是写的少了,我还是觉得限制多的语言写起来舒服,写不出花哨的代码,犯错的机会就少一些
你给个“过不了多久”的具体期限。我们来个 100 元话费的赌注:)
怎么讲?
你看不懂我说的意思吗? Rust 开源项目大多都是开始有人维护,最后都不了了之的,(没人维护,没人更新)。Rust 本身并没有什么明星项目,也没有建立起相关领域。上个叫嚣要干死 C++ 的 DLang 坟头草都长了好久了。另外 Rust 语言设计开始不想着兼容 C/C++,所以 C++ 项目迁移时很难的,倒不如谷歌 Carbon 语言的设计思路。
Obviously rust is the future, Microsoft, Google and Cloudflare all knows that.
看好 Carbon ,投 Carbon 一票,等编译器出来了一定会第一时间试用一下
感性认识到理性认识的过程,很明显你没有工程经验,属于感性认识阶段。
我以前也挺喜欢的,只作为爱好使用。看了评论区,受益匪浅。
最初设计出来的时候,跟 ios 完全是两码事。但是在现实面前,不得不低头啊,把自己过去的意图一个个抛弃,一个个封闭、一个个拦截。 是自己太理想,还是考虑不周,产品设计思路有问题…
能否用家宽,一直挂着迅雷,然后本机也有 web 服务器上的文件,给迅雷提供下载加速服务?IDC 带宽很贵,用 500M 上行的企宽,挂着,迅雷会自动提供加速服务么? 你可以挂…
之前看 b 站 youtube 视频都用浏览器默认窗口大小,最近换了 4k 显示器,想看一下 4k 视频有多高清,结果才发现,浏览器看视频一直是一卡一卡的,480p 的都卡,以…