- 主题:CPP实在是太复杂了 (转载)
太复杂不是原罪,不统一才是,处处违和
就像文科僧背的地理知识一样
【 在 GoGoRoger 的大作中提到: 】
: 发信人: GoGoRoger (逝者如斯夫), 信区: CPlusPlus
: 标 题: CPP实在是太复杂了
: 发信站: 水木社区 (Thu Nov 4 16:26:02 2021), 站内
: ...................
--
FROM 221.218.139.*
一点都不奇怪,能不能编译成机器码不重要,重要的是靠山是谁
js的靠山,可是浏览器;
c的靠山,是操作系统尤其*nix;
python的靠山,那是c和c++的库;
【 在 chaobill (若我离去,后会无期) 的大作中提到: 】
: 标 题: Re: CPP实在是太复杂了 (转载)
: 发信站: 水木社区 (Sat Nov 6 09:41:34 2021), 站内
:
: js 这种无法编译成机器代码的居然发展这么好也真奇怪了。
: 我讨厌 js 是因为写 php 不用等编译,写现在的js 需要等编译
: 【 在 hgoldfish (老鱼) 的大作中提到: 】
: : 难得同意 xiaoju 一次。js 确实是最有前途的语言。
:
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 124.240.54.*]
--
FROM 221.217.61.*
能简单介绍一下吗?
【 在 eGust 的大作中提到: 】
: go 的确是追求简单,导致的问题是,一旦遇到底层的设计的坑,基本上除了等 google 修(基本没机会),就只有用其它语言重写这一条路了
:
--
FROM 222.129.54.*
js可以编译成任何东西啊
【 在 chaobill (若我离去,后会无期) 的大作中提到: 】
: js 这种无法编译成机器代码的居然发展这么好也真奇怪了。
: 我讨厌 js 是因为写 php 不用等编译,写现在的js 需要等编译
--
FROM 27.91.71.*
只在 hacker news 上看过相关的讨论,看过一次关于单向增加的时钟的问题,再就是有论文 Understanding Real-World Concurrency Bugs in Go
基本上都不是任何人都能遇到的问题,但一旦遇到了,就什么办法都没有
【 在 GoGoRoger (逝者如斯夫) 的大作中提到: 】
: 能简单介绍一下吗?
--
FROM 203.211.110.*
头条了,谷歌,腾讯,百度等大公司都已经大规模使用了,应该问题不大。
【 在 eGust 的大作中提到: 】
: 只在 hacker news 上看过相关的讨论,看过一次关于单向增加的时钟的问题,再就是有论文 Understanding Real-World Concurrency Bugs in Go
: 基本上都不是任何人都能遇到的问题,但一旦遇到了,就什么办法都没有
:
--
FROM 222.129.54.*
这个实在是……php 你还得手动刷新页面吧?
现在 js 的 hmr 技术已经非常成熟了,你这边一保存,那边页面直接更新
过去由于 webpack 4 的原理,随着项目代码量的增加,启动时间、hmr 的编译时间都会增加。但随着这两年技术的进步,尤其是 esbuild 和其它基于 golang、rust 工具的引入,启动和加载时间都得到了数量级的提升。比如 vue 团队开发的 vite,目前已经算是得到主流支持了
【 在 chaobill (若我离去,后会无期) 的大作中提到: 】
: js 这种无法编译成机器代码的居然发展这么好也真奇怪了。
: 我讨厌 js 是因为写 php 不用等编译,写现在的js 需要等编译
--
FROM 203.211.110.*
lamda和多线程有什么关系?或者说,不用lamda,多线程本身该跑飞还是会跑飞
我的理解
如果lamda没有捕获/访问额外的变量,全部都靠传入参数,那么它就是一个实现了运算符()的匿名对象,这个对象除了一个()运算符,没有其它成员变量,运行结果取决于传入参数以及函数体的逻辑
如果lamda有捕获/访问周边的变量,则它就是一个匿名的、除了运算符()之外,还保存了捕获变量的(值或者引用)的一个对象,运行结果不仅取决于传入参数以及函数体的逻辑,还会被捕获的变量影响。至于跑飞,则是因为捕获的变量有的是引用,有的虽然是值,但是实际上有公共的引用计数,所以是这些捕获导致的跑飞,而这些如果会导致跑飞,你不用lamda,用别的方式传递这些捕获的变量,该跑飞还是会跑飞
所以,这个多线程跑飞的锅,和lamda没关系
【 在 xiaoju 的大作中提到: 】
: 多线程很容易搞出来循环引用,用rc处理不了
:
--
FROM 113.120.108.*
不是跑飞,是容易构成很难察觉的循环引用
C++的shared_ptr在capture时的限制不是没原因的
【 在 wallyz (哦) 的大作中提到: 】
: lamda和多线程有什么关系?或者说,不用lamda,多线程本身该跑飞还是会跑飞
: 我的理解
: 如果lamda没有捕获/访问额外的变量,全部都靠传入参数,那么它就是一个实现了运算符()的匿名对象,这个对象除了一个()运算符,没有其它成员变量,运行结果取决于传入参数以及函数体的逻辑
: ...................
--
FROM 27.91.71.*
这种初级的lamda没有必要存在/用,这是为了lamda而lamda
【 在 rexxie 的大作中提到: 】
: c++ 的lambda 配和c#比么?
: std::vector<int> some_list;
: int total = 0;
: ...................
--
FROM 113.120.108.*