- 主题:已经完全抛弃C++了
c++委员会的需求就是B.S说的那两大原则:direct hardware mapping,zero-overhead abstraction。
一般还会加点其他东西,比如兼容老代码、尽可能simple。
Herb Sutter在下面这个视频里也有提到这些原则(第8页ppt)
CppCon 2018: Herb Sutter “Thoughts on a more powerful and simpler C++
https://www.youtube.com/watch?v=80BZxujhY38
【 在 ksxfhs 的大作中提到: 】
: 不否认又需求才有必要,但C++委员会的需求是啥?必要又是啥?
: 先得会底层原理,再用各种语法才有价值,但现在的C++,已经越来越偏了。只会各种稀奇古怪的语法,和高端开发,在某种程度上是背道而驰
: 语法上比java, c#还花,又有啥意义,大家要搞c++是因为语法很花吗?还不是看重底层效率,这才是着力点,结果搞了一套语法包装,让大家不用关心底层,这啥思路
: ...................
--
FROM 222.130.136.*
难道不是客户端js服务端js更爽?
【 在 hgoldfish 的大作中提到: 】
: 难道不是客户端用 JS,服务器用 JAVA 更爽?
:
--
FROM 223.104.76.*
服务端 JS 爽不起来啊。单线程,语法坑点多,在服务端的生态差,除了写 API 之外几乎无用,所以 nodejs 在服务端火了一段时间,现在又淡下来了。
【 在 zerg136 的大作中提到: 】
: 难道不是客户端js服务端js更爽?
--
FROM 124.72.110.*
简单crud应用搞起来舒服。
【 在 hgoldfish 的大作中提到: 】
: 服务端 JS 爽不起来啊。单线程,语法坑点多,在服务端的生态差,除了写 API 之外几乎无用,所以 nodejs 在服务端火了一段时间,现在又淡下来了。
:
--
FROM 119.131.46.*
不能抓住一个你懂的点就无限放大。没有人否认cpp的每一个新语法都有其用武之地,熟练的cpper用应该没什么问题。但总还是不断有新人加入cpp队伍的,当新语法被不太熟悉cpp的cpper拿来用的时候,除了语法难看懂,各种bug也仍然不可避免。比如智能指针,仍然可以搞出奇怪的内存泄露,比如lambda函数,每个成员函数里给你搞一两个,形参和引用的成员变量混用,严重降低了函数代码的可读性和封装。大量新语法对大部分coder并没有带来生产力的提高,反而带来阅读和理解代码的难度,这才是大家吐槽的点。
【 在 DoorWay 的大作中提到: 】
: 你不懂Cpp,就不要乱发表观点。
: 你说的观点都是错的:一是先手写内存管理再用RAII,二是C语言能看出生成汇编,所以是优点,Cpp不能,所以是缺点。
: 而且我认为你只懂C,不懂Cpp,却偏要发表观点,是有害的。同样宣扬观点二的陈皓,也造成了很多不良影响。现在死了。愿他安息。
: ...................
--
FROM 123.123.40.*
简单 CRUD 要选 Python Django,单兵利器。其次选 Java Spring 全家桶,一般互联网开发需要的组件全都有。nodejs 的生态差太多了。
【 在 zerg136 的大作中提到: 】
: 简单crud应用搞起来舒服。
--
FROM 124.72.110.*
智能指针搞出奇怪的内存泄漏是指什么?循环引用?这个不是有拆为weak ptr的标准搞法吗?
lambda这个吐槽也有点奇怪。lambda大部分情况下就是要capture外部变量,capture成员变量有啥问题?改成capture this?这个完全可以通过编码规范搞定。
"大量新语法对大部分coder并没有带来生产力的提高,反而带来阅读和理解代码的难度",这个恐怕也是自己臆想的吧,对我来说,auto、constexpr、ranged for等,都是好东西,既好用,又好读。难读的东西,是复杂的宏和模板元编程。
【 在 toutouqi 的大作中提到: 】
: 不能抓住一个你懂的点就无限放大。没有人否认cpp的每一个新语法都有其用武之地,熟练的cpper用应该没什么问题。但总还是不断有新人加入cpp队伍的,当新语法被不太熟悉cpp的cpper拿来用的时候,除了语法难看懂,各种bug也仍然不可避免。比如智能指针,仍然可以搞出奇怪的内存泄露,比如lambda函数,每个成员函数里给你搞一两个,形参和引用的成员变量混用,严重降低了函数代码的可读性和封装。大量新语法对大部分coder并没有带来生产力的提高,反而带来阅读和理解代码的难度,这才是大家吐槽的点。
--
修改:z16166 FROM 222.130.136.*
FROM 222.130.136.*
什么界面库?命令行客户端?
--
FROM 220.203.224.*
我批评的是那位不懂装懂,发表有害言论。—— 抓住“一个”我懂的点,哪一个?无限放大,何放之有?你这为那位开脱为哪般?我回了两次,批评那位的两个观点,那位满地打滚,“语文能力”、“理解能力”的胡搅缠,嘴脸丑陋,令人不屑。
你其余的发言是言之有物的,态度是好的。来讨论:
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.*
JS
【 在 jjslove 的大作中提到: 】
: 请教大佬,有GUI界面么?
: 现在一般用啥 ucGUI, miniGUi 还是 QT 或者其他?
--
FROM 144.34.191.*