- 主题:已经完全抛弃C++了
抱歉你只是看不懂C++的新语法,或者根本旧语法也不懂。
你可能唯一懂各地就是C,认为C“能”完成开发任务。这是对的。
至于“能想出汇编才能放心用C”,这是我认为C程序员最丑陋的谎言。
Cpp的发展就是让大部分Cpper不用操心这些,该懂的人用什么语言也都会懂。
上一个这么说的陈皓左耳朵耗子已经死了,愿他安息。Cpp会发展的更好。
【 在 ksxfhs 的大作中提到: 】
: 不否认又需求才有必要,但C++委员会的需求是啥?必要又是啥?
: 先得会底层原理,再用各种语法才有价值,但现在的C++,已经越来越偏了。只会各种稀奇古怪的语法,和高端开发,在某种程度上是背道而驰
: 语法上比java, c#还花,又有啥意义,大家要搞c++是因为语法很花吗?还不是看重底层效率,这才是着力点,结果搞了一套语法包装,让大家不用关心底层,这啥思路
: ...................
--
FROM 124.114.151.*
你不懂Cpp,就不要乱发表观点。
你说的观点都是错的:一是先手写内存管理再用RAII,二是C语言能看出生成汇编,所以是优点,Cpp不能,所以是缺点。
而且我认为你只懂C,不懂Cpp,却偏要发表观点,是有害的。同样宣扬观点二的陈皓,也造成了很多不良影响。现在死了。愿他安息。
你哪句看不懂?
【 在 ksxfhs 的大作中提到: 】
: 你和我说的是一回事吗......
: 语文问题就很难办了,尤其是技术版
:
--
FROM 124.114.151.*
我批评的是那位不懂装懂,发表有害言论。—— 抓住“一个”我懂的点,哪一个?无限放大,何放之有?你这为那位开脱为哪般?我回了两次,批评那位的两个观点,那位满地打滚,“语文能力”、“理解能力”的胡搅缠,嘴脸丑陋,令人不屑。
你其余的发言是言之有物的,态度是好的。来讨论:
1 新的Cpper也好,新的Cer也好,哪种语言的新人加入,也会写出奇怪的BUG。这是常识,新人写的BUG最难搞。听说过“Cargo Cult Programming”吗? 再者新“加入”的人一部分学不会退了,加而不入,这太正常了。
2 语法,syntax,指得是表达形式,智能指针不是语法,是基础设施。智能指针搞出的内存泄漏,相比C语言里满天飞的泄漏或者goto Clean,一个是解决了基本问题后的泄漏,一个是起步就泄漏。你说哪个好呢?何况智能指针是11的,之前就有auto_ptr,距今已经12年了,又何新之有?对C的程序员来说,哪有旧的东西?
3 lambda表达式,在非必要的情况下,每个函数里搞一两个的人,你让他写C,他要么把入参搞到一、二十个,要么一个函数写到500行。是人的问题,不是语法的问题。
局部变量和形参混在一起,不是降低了封装性,是增加了耦合性。因为入参加中间状态,产生了一个子模块,写的人偷懒了不想再写一个子函数,可能中间态太多,也可能压根理不清楚。硬币的另一面是,他起码有良心用lambda标记出来,这里是一个子逻辑。相比洋洋洒洒500行C程序,开头声明250个变量(必须在开头!),读的过程中一直往前滚动,那才是对人类尊严的践踏。
即使是这种不合格的用法,500行的代码,分成几个lambda也能方便重构,而C就很难了。我碰到不合适的Cpper写的长函数,有一个重构技巧,就是把较长的函数里,分成几个lambda,不断的消除捕获的变量,只留形参,能编过后,就可以提出去了。
至于你说的“大量新语法对大部分coder没有带来生产力提高……”。
1 大量:按你被lambda困扰的程度,你这刚到11。解决方案是认真搞懂用到的点,打造一个可靠Cpp子集。
2 新: 11的,不新。
3 大部分coder没有带来生产力提高:传回调函数时使用lambda,使std::function比函数指针好理解,使用可计数对象配合编程框架,在游戏领域、图形领域,基本是消除新手95%的内存泄漏,—— 其它的就不举了,不知你用过没。
“反而带来阅读和理解代码的难度”
一般来说,对看不懂的东西,提倡“见贤而思齐,见不贤而自省”。我看有的C程序员是“见贤而责,贤而不贤也!”,“贤之不易,何而为贤!”,“何贤之有,我自为贤!”
【 在 toutouqi 的大作中提到: 】
: 不能抓住一个你懂的点就无限放大。没有人否认cpp的每一个新语法都有其用武之地,熟练的cpper用应该没什么问题。但总还是不断有新人加入cpp队伍的,当新语法被不太熟悉cpp的cpper拿来用的时候,除了语法难看懂,各种bug也仍然不可避免。比如智能指针,仍然可以搞出奇怪的内存泄露,比如lambda函数,每个成员函数里给你搞一两个,形参和引用的成员变量混用,严重降低了函数代码的可读性和封装。大量新语法对大部分coder并没有带来生产力的提高,反而带来阅读和理解代码的难度,这才是大家吐槽的点。
--
FROM 61.185.159.*