C++真的有那么不堪吗?

2019-07-26 11:09:51 +08:00
 lastright

一直都在用 C 写底层,最近开始接触到一些偏上层的东西(还没到业务层,是中间件),规模变大,感到用 C 开发有些吃力,我发现我正在用 C 模拟一些鐅脚的 C++的特性,例如模板,异常,对象内部属性的访问控制。

鐅脚不是说代码啰嗦(这在我看来是小问题了),而是说费尽力气,人家已经做在语言里了,那为什么不用 C++呢。

网上对 C++的诟病很多,加之看到云风博客上对 C++的一些看法,有种“苛政猛于虎”的感觉。但现在觉得,那些坑还是免不了要去踩一遍(我不知道为什么么我印象里 C++有很多坑,明明没系统的去学过)。

最近开始对语言层面的东西感兴趣了,以前大家讨论的那些概念我看不懂,可能还是接触的代码规模一直不大的原因吧。

如果各位没话说,我这就上路了。

13652 次点击
所在节点    程序员
101 条回复
insaneguy
2019-07-26 19:13:27 +08:00
团队项目使用 C++ 建议有靠谱的、有经验的工程师选择合适的子集,做好规约。

任何语言都有人喷的,哪天一个大牛出来喷 C,你就不用 C 了吗。

要不要学习新语言,看你的业务场景还有个人兴趣。
wugn
2019-07-26 19:17:25 +08:00
评论翻下来也没有见与 Java 对比的——大约 Java 的确凉了
kalista
2019-07-26 19:44:53 +08:00
cpp 对我而言还是太难了,所以只能用一些简单特性
littlewing
2019-07-26 20:13:38 +08:00
你们这些写业务的就别来掺和 c++了可以吗?老是比较我用 python 写个啥只用一句代码,用 c++要写好多,有意思吗?
kljsandjb
2019-07-26 20:17:51 +08:00
多范式编程,尽力给你 100%的自由度,但怎么发挥看个人了…并不是需要你充分用完它所有的“特性”
hkitdog
2019-07-26 20:18:11 +08:00
C++本来就不是用于业务层, 写外挂,除了易,就是 C++, 别无选择
hhhsuan
2019-07-26 20:26:09 +08:00
我只把 c++当面向对象的 C 用,所以还好
lazydog
2019-07-26 20:27:24 +08:00
一直都是 C/C ++,不过目前打算转 Go/Rust 了。另外,微软都打算用 rust 替代 c/c++了!
cyspy
2019-07-26 20:31:18 +08:00
Scheme 打败了 C++的世界也许会更好
waruqi
2019-07-26 20:32:19 +08:00
koebehshian
2019-07-26 20:49:53 +08:00
楼主“一直都在用 C 写底层,最近开始接触到一些偏上层的东西”,那我向你安利 golang+js,golang 的发明人之一,也是 C 语言的发明人,所以很多语法都像 C ;
golang 直接编译成二进制,而且没有任何外部依赖,所以不会出现 C 或 C++编写的程序(没有静态链接时)缺少 dll 或 so 的情况;
golang 编译器支持交叉编译,设置一个环境变量 GOOS 与 GOARCH 即可,不存在像 C 语言那样需要下载专门的交叉编译器,专门 libc ;
golang 语言语法层次支持多线程( golang 中叫 go routine ),不像 C 语言那样复杂;
golang 标准库丰富,比如 http 服务,各种加密编码都有标准的,不像 C 语言那样百花齐放;
golang 语法上做减法,风格一统,但没有像 python 那样用空格的多少表示语法;
golang 的文档,不是一个 chm 文档,而是一个 godoc 程序,自动解析源码,web 的 GUI。
golang 的标准库没有 GUI,因为 webGUI 已经是最简单,最通用的了,所以我向你安利 js,有 C 语言基础的基本上 w3school 上花一天过一遍就大致能写了。
tlday
2019-07-26 20:54:04 +08:00
后来从这个故事中引申出了“苛政猛于虎”的成语,意思就是统治者的暴政比吃人的老虎更加可怕。
gustav
2019-07-26 21:11:41 +08:00
google,fb,m$,tesla,spaceX 的核心语言都是 c++,大家都觉得 machine learning 就是 python,可其实第一语言也是 c++,fb 现在连脚本语言也要用 c++ jit 替换了,chrome 也是 c++,性能上仍然碾压 firefox,不知道吹了这么久的 rust,到什么时候能全部替换掉原有的 c++代码。

大公司用 c++就是为了提升性能,节省开支,省个 20%~30%的电费,对于小公司好像无所谓,但对于这些大公司而言,那可是比巨款。
Roseboy
2019-07-26 21:19:09 +08:00
想起来一句话,如果你想寻找在被虐中被大众称道的感觉,请学 C++
nvioue
2019-07-26 21:23:07 +08:00
八年 cpp
cpp 哪里是不堪, 只是资本家不需要使用这种性价比较低的方式.
cpp 最合适的地方是驱动, OS, 以及要求性能的地方(例如 T 家海量并发后台).

汇编同理, 为什么现在不用汇编去写程序? 因为没有必要, 性价比太低
datou
2019-07-26 21:25:37 +08:00
@v23x v2 也是这么评论 python,php 和 go 的
tcdh
2019-07-27 06:49:08 +08:00
可以用 go 吗?
tianshilei1992
2019-07-27 10:03:46 +08:00
我一直觉得自己的 C++ 写的还凑合,直到我看了俄罗斯同事的代码…
DragonQuestMaou
2019-08-08 10:22:21 +08:00
@Cloutain 有坑的 目前内核能用的 STL 基本都有坑
ssy11407
2019-09-24 09:33:42 +08:00
@pursuer source insigt

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/586363

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX