C++

陈硕 ,Linux C++程序员,muduo网络库作者,…

37 票,来自 王帅、欧阳佳伟、王乐珩 更多 , Liangzai, cecwxf, 林敏, 罗照宇, 陈雪平, 方舟, 牛晓斋, 王伟, shanewfx, TonySeek, 王平码农, 陈甫鸼, 绫玻璃, 猛禽, jqian, Zhao Yan, 王毅, 张文斌, 冰怨, 孙勇, 赵小红, 依然, 宗涛, ichaozai, 余天升, 刘炜, 李杰, xanpeng, Stone Gao, 段文博, 汪启鹏, dccmx, Yangtze扬子, 职业欠钱
”不宜进入“的意思是如果你还在C++门外边,如果今年想找一门技术(或者一门语言)来学,那么学C++不见得是个回报高的选择。如果你已经在C++门里边,已经在用C++挣钱吃饭,那么意味着会少一些人来跟你竞争。进一步说,竞争少不一定是好事,公司有可能换平台或语言,让你优势变劣势。
C++目前坚守的阵地:服务端基础架构(例如淘宝OceanBase是C++写的),PC客户端的3D游戏(DirectX是提供COM/C++接口),某些嵌入式上的(准/软)实时程序,其他Java/C#/Python未能涉足的领域(会遇到C的抵抗)。如果你正好在这几个领域,我看不出有担心的必要。
2009 年 Stan Lippman 来华参加祝成科技举办的C++技术大会,他表示人们现在还用C++的惟一理由是其性能,Java/C#/Python等等的开发效率都远高于C++,但C++目前仍然是最快的语言(见 google language benchmark 论文和 shootout.alioth.debian.org/)。如果你的应用领域确实在乎这个性能(比方说孟岩提到的“对抗性应用”;又比方说大规模的分布式系统,提高10%的性能就意味着节约10%的机器),那么 C++ 仍然是不二之选。
在现代CPU体系结构下,C++ 的性能优势很大程度上来自于对 memory layout 的精确控制从而充分利用 memory hierarchy 提速,这一点优势在近期内不会被基于GC的语言赶上。另一方面,如果关键路径上有 disk IO 或者 database 访问,那么 C++ 的性能跟 Java 相比就没有太大的优势了。(比方说响应一个请求,Java 实现用 1 毫秒CPU,C++ 实现用 0.5 毫秒 CPU,但是访问磁盘的代价是 10 毫秒,那么总的响应时间二者是差不多的。)

本问题还有 11 个答案

知乎是一个真实网络问答社区,在这里可以寻找答案、分享知识,发现一个更大的世界。
想阅读更多有趣的问题和答案,赶快填写下面的表格申请注册吧!
请使用常用邮箱
请填写真实姓名,这会加快邀请确认速度
介绍一下你自己,比如你的职业、公司、或专业特长、兴趣爱好等

已有帐号了?请登录

忘记密码?

关于作者

陈硕

Linux C++程序员,muduo网络库作者,weibo.com/giantchen
知乎协议 © 2012 知乎