免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: folklore

[C++] 我倒, 现在还争C还是C++啊 [复制链接]

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-06-20 10:48 |显示全部楼层
回复 7# 新用户_请注册


    C++的强大在于它的class继承和virtual,以及自动解析构。
模板相对来讲可有可无。

当然,有了模板, 的确在写算法时方便了很多。
如果没有STL, C++的可用性要打很大的折扣。
但如果应用系统足够复杂,
用C++实现反而将是最好的选择。
相对其它OO语言,
C++的很多特性对用户是不透明的。
也就是用户要理解这些特性是如何实现的。
这对程序员的要求比较高,
但同时也保证了程序的高度可定制性(可控性)。
也就是说C++复杂度的起始点比较高,
但斜率比较小。

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-06-20 10:51 |显示全部楼层
回复 9# sxcong


    的确, C++的缺点就是语言本身太复杂了。
初学者很难看懂C++代码,特别是有Template时。

论坛徽章:
0
发表于 2014-06-20 15:00 |显示全部楼层
回复 11# folklore


模板虽然烂,但是没有模板基本就没法随心所欲控制计算发生的时机。(宏元编程?能艹?)最后要做人肉编译器的地方凭空多出来几十倍。
相反,class和virtual这等鸡肋也就是艹C的时候说起来好听。没class的语言多了去了,都比C艹弱?
就算没法devirtualization,有点靠谱的元编程能力就直接撸代码生成了。

论坛徽章:
0
发表于 2014-06-20 15:04 |显示全部楼层
比起C来说适合写应用是没错。
但是不表示就一定不适合做底层系统。
真要到实现层面打不过C的也不是没有:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4049.pdf ,但环境太极端了。所以换句话说,除了这种极少数场合,基本上都有机会把C打得满地找牙。
当然,实际上比较底层一些的都不会用C艹。为啥?很简单,C++垃圾半吊子用户比C容易遇到得多,项目风险明显太大。粉饰好听点说就是术业有专攻,你不能指望大多数清楚底层实现的用户能够用好一桶抽象大杂烩。

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-06-20 15:26 |显示全部楼层
回复 14# 幻の上帝


    到现在为止, 还没在实际的工作中遇到 C/C++不是半吊子的。。。。
不但C/C++, 其它语言不是半吊子的也没遇过到。

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2014-06-21 01:55 |显示全部楼层
本帖最后由 captivated 于 2014-06-21 01:57 编辑

回复 14# 幻の上帝


    C++真心不适合写底层.

    1. 写过自己的简陋 BootLoader, 在裸板上, 代码指令的链接顺序都是至关重要的, 更不用说通过链接脚本手动控制链接地址之类的事情了. 用 C++ 撸简直就是开玩笑. 而且 C 嵌入汇编非常方便, 看生成的汇编代码也基本一目了然, 而 C++ 就未必了.

    2. C++的 name mangle... 虽然通过这实现了静多态(重载)和解决了命名空间的问题, 但对程序员来说清晰性损失了不少.

    3. 模板也未必那么好, 没有 concept 的模板, 真要说比 C 的宏高级到哪去(滥用模板带来的代码膨胀问题甚至可能超过宏)... 类型安全和图灵完备什么的不是很扯淡么.

    4. C++ 需要 CRT 支持的地方太多了. 全局对象构造析构初始化之类不说, 异常也要(附带不能同时发生一个以上的异常所导致的一些问题...). 在什么都没有的底层给 C++ 构建CRT,... 还是算了吧.

    5. 底层需要的语言抽象能力就是像 C 那样的就基本够用了, 更重要的是清晰, 简单, 一目了然, 更彻底的控制.

    6. 任何软件到达一定复杂程度后都会带来邪恶的事情, C 让这种邪恶清晰可见, C++ 把邪恶隐藏在语言中. 解决复杂性的问题是模块化和中间层, ... 也许还需要再加一个 lisp 解释器... 而不是妄图用 C++ 搞定一切(感觉回到了语言都有它适合的领域什么的话题了...).

-------------------------------------------

    C++ 的确有很多方便和强大的地方, 但总归来说太过复杂(语言本身以及其实现...), 更像是一门试验性的语言.
    其实还是带的历史包袱太重了... 彻底的解决方案应该是全新的工具链而不是单一个编译器.
    也许我们真的需要一门语言, 有 C++ 的抽象能力, 有 C 的控制能力, 还有清晰完美的没有历史包袱的实现. 需要么? 不需要么? ... 不管需不需要, 反正对 go 什么的无感是真的.

-------------------------------------------


    C++ 肯定不太适合用来写 kernel 之类的, 这在目前几乎是肯定的. 而 QT 比 GTK 好用这种事情, 我反正是这么觉得的...



论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2014-06-21 02:36 |显示全部楼层
其实我想说的是不要对 C++ 那么迷啦, 早点抽身是明智选择. C++就是一个坑.

论坛徽章:
35
双子座
日期:2014-05-09 17:56:38程序设计版块每日发帖之星
日期:2015-08-30 06:20:00程序设计版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-27 11:07:07程序设计版块每日发帖之星
日期:2016-01-12 06:20:0015-16赛季CBA联赛之北京
日期:2016-01-15 01:01:2115-16赛季CBA联赛之浙江
日期:2016-01-15 22:38:20程序设计版块每日发帖之星
日期:2016-01-18 06:20:00每日论坛发贴之星
日期:2016-01-18 06:20:0015-16赛季CBA联赛之北控
日期:2016-01-30 21:43:01程序设计版块每日发帖之星
日期:2016-02-08 06:20:0015-16赛季CBA联赛之山西
日期:2016-02-20 10:54:41
发表于 2014-06-21 10:37 |显示全部楼层
folklore 发表于 2014-06-20 15:26
回复 14# 幻の上帝

其实,你自己也是半调子的,写个代码像狗屎一样

论坛徽章:
43
15-16赛季CBA联赛之四川
日期:2018-10-13 23:26:5015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:36程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2014-06-21 10:43 |显示全部楼层
回复 18# __BlueGuy_

这是来砸场子的

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-06-21 11:06 |显示全部楼层
回复 18# __BlueGuy_
你看过我的代码?
此外, 我的代码是不是屎, 要等你现混10年代码才有资格说。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP