- 主题:已经完全抛弃C++了
自己写释放代码才是内存管理的精华
C++搞了一堆复杂的语法只是解决一个很简单的问题,满足低级程序员不出错的需要
或者搞出新语法只是为了省了两行代码,但实际运行效率一秒都不少,编译出来的东西又大又慢
更不说很多新语法是省了代码,可大大增加了调试复杂度,这是省吗?
这都是低级程序员的标配思路,C++早死早超生
【 在 z16166 的大作中提到: 】
: 恰恰相反,新的C++远比C好用
: 单纯一个RAII机制,就足以让我抛弃C了,想象一下C得在函数里的每个early return之前都要加一句资源释放语句的那种情况,既属于凑代码行数,还是error-prone的,以至于要发展出goto、do...while(0)、__try/__finally等蹩脚的“技法”来规避这种问题。
: 而ranged for语句,就是用来规避C里面手撸loop条件容易出现边界错误的
: ...................
--
FROM 222.70.129.*
有道理说出来,比如C++就是运行效率高,就是好调试,这才是打脸。。。。。不然。。。。。
【 在 iwantfly 的大作中提到: 】
: 这是哪的大神,快看纯c大神跳出来喷c++了
:
--
FROM 222.70.129.*
你赢了~
【 在 spadger 的大作中提到: 】
: C++就是帅,C++就是酷
:
--
FROM 222.70.129.*
内存管理是基本功
基本功不好,指望C++提供些语法规避这个问题,就是不入流
能自己熟练管理内存,再用新语法辅助避错,才是正道。一个新手连内存概念都不熟,就只会用这些新语法跳过问题,能写出真正高效的算法才是怪事
过度的语法包装,就是在引导新程序员们走后一条路
【 在 z16166 的大作中提到: 】
: C++有它自己不好的地方,昨天我就看到一个喷std::variant的封装导致访问麻烦的blog,要么用std::visit,要么用overloaded,新手不太容易很快搞懂这两种,可能只能用std::get_if这种原始的。
: 最简单的原则是:不要用自己还没熟练掌握的C++特性。带类的C对不少场合也许就够用。
: C++搞复杂语法,不纯粹是为了满足低级程序员不出错的需要。况且要真能解决这个问题,那也是很牛的,参考一下Rust用什么样的语法来解决码农易犯的内存错误、同步错误。C++的目的一直是两个:direct hardware mapping、abstraction with zero cost。执行时有没发生目标偏差,那得众人评说了。
: ...................
--
FROM 222.70.129.*
一个新手,如果一上来就学RAII或者其它语法,有啥机会练习自己管理内存,总不能自己写两行代码就算练习过吧,总得有一定规模的项目锻炼
然而很多人是没有这样的锻炼机会的,反正有现成的工具,领导也不答应,最后就是没实际锻炼机会,没有语法工具根本都不会写,谈何手撸,何谈管理
【 在 z16166 的大作中提到: 】
: C++可没有说你的内存管理必须用它提供的RAII或者“高级”语法来搞,在C++里你也完全可以手撸内存管理代码,只要你有这个需要
: 但是RAII等机制,提供了更便捷同时又没损失什么效率的抽象,使得码农可以兼顾开发效率、代码质量、代码速度。
:
--
FROM 222.70.129.*
不否认又需求才有必要,但C++委员会的需求是啥?必要又是啥?
先得会底层原理,再用各种语法才有价值,但现在的C++,已经越来越偏了。只会各种稀奇古怪的语法,和高端开发,在某种程度上是背道而驰
语法上比java, c#还花,又有啥意义,大家要搞c++是因为语法很花吗?还不是看重底层效率,这才是着力点,结果搞了一套语法包装,让大家不用关心底层,这啥思路
有句话说的好,不要在邪路上一意孤行~ 奉劝委员会悬崖勒马~
【 在 z16166 的大作中提到: 】
: 有需求,才有动力和机会
: 没有需求,就不必要去学那些东西
: 正如很多C码农,也不需要一上来就去学习汇编语言甚至cpu微码一样
: ...................
--
FROM 222.70.129.*
你和我说的是一回事吗......
语文问题就很难办了,尤其是技术版
【 在 DoorWay 的大作中提到: 】
: 抱歉你只是看不懂C++的新语法,或者根本旧语法也不懂。
: 你可能唯一懂各地就是C,认为C“能”完成开发任务。这是对的。
: 至于“能想出汇编才能放心用C”,这是我认为C程序员最丑陋的谎言。
: ...................
--
FROM 222.70.129.*
我压根没说这两者互斥,而是知识层次上互补。
你偏偏理解成互斥,就这理解能力。。。。。
知道啥叫理解能力不~
【 在 DoorWay 的大作中提到: 】
: 你不懂Cpp,就不要乱发表观点。
: 你说的观点都是错的:一是先手写内存管理再用RAII,二是C语言能看出生成汇编,所以是优点,Cpp不能,所以是缺点。
: 而且我认为你只懂C,不懂Cpp,却偏要发表观点,是有害的。同样宣扬观点二的陈皓,也造成了很多不良影响。现在死了。愿他安息。
: ...................
--
FROM 222.70.129.*