- 主题:20年了,大家现在再看看linus对C++的负面评价
如果c++进入内核,那可就热闹喽!
智能指针没法玩了吧,不知道哪个对象啥时候有用啥时候作废。
【 在 z16166 的大作中提到: 】
: 在kernel等这些特定领域之外的地方还抱着C不放而不用C++、Rust的这些人,才是奥特曼,自己吭哧吭哧手工把C++编译器早就自动搞定的东西每次都重新轮一遍,不知道自己落后愚昧,还沾沾自喜。你咋不用汇编、机器码去轮一遍呢
--
FROM 221.218.61.*
面向对象与数据独立是两股道跑的车。
内核考虑更多的是,程序与数据独立。
而不是数据和相关程序包在一起。
【 在 CMOO 的大作中提到: 】
: 面向对象是一种抽象建模的思维方式,哪种语言不面向对象编程?跟C++有什么关系?跟debug有什么关系?
:
--
修改:ylh1969 FROM 221.218.61.*
FROM 221.218.61.*
用C的ABI。Rust目前没有稳定的ABI,也是这么做的
【 在 ylh1969 的大作中提到: 】
: 有一点不明,c++的函数名,并非是你写的函数名,真正的函数名取决于编译器,而且无法主动使用。这样如何做到可移植性?没有可移植性,如何能做系统内核?
--
FROM 123.115.134.*
只能这样了,我也是,c++的模块,会有一个
extern “C” 的接口函数。
【 在 z16166 的大作中提到: 】
: 用C的ABI。Rust目前没有稳定的ABI,也是这么做的
:
--
FROM 221.218.61.*
目前已经用Rust写的OS里(可能是toy的状态),有用智能指针的。比如Redox OS
智能指针依赖于mem allocator和同步机制,要在kernel环境下给智能指针实现一个allocator。这也是Rust的kernel std的一部分,也就相当于C++的kernel CRT。
【 在 ylh1969 的大作中提到: 】
: 如果c++进入内核,那可就热闹喽!
: 智能指针没法玩了吧,不知道哪个对象啥时候有用啥时候作废。
--
FROM 123.115.134.*
不要把任何人奉为神明,做一个实用主义的程序员
【 在 foliver 的大作中提到: 】
: 先不说这些观点本身,但是Linus对待Rust和C++简直是双标。在年初的Rust风波里,linus对那些拒绝Rust代码的一些模块负责人这样说:"你可以不喜欢Rust,也可以不用Rust,但是你不能阻止别人用Rust",他的这些话导致了一些linux内核代码审核人辞职。
:
: (1)C+
: ..................
--
FROM 139.227.24.*
不算双标吧,C++的变量生命周期不明确,Rust的变量生命周期是明确的。
要是都不明确,linus还要力挺Rust,那才算双标。
--
FROM 171.221.52.*
啥东西需要c程序员吭哧吭哧干而c++编译器早已搞定了?有些算法的关键部分还真插入汇编的。
【 在 z16166 的大作中提到: 】
: 在kernel等这些特定领域之外的地方还抱着C不放而不用C++、Rust的这些人,才是奥特曼,自己吭哧吭哧手工把C++编译器早就自动搞定的东西每次都重新轮一遍,不知道自己落后愚昧,还沾沾自喜。你咋不用汇编、机器码去轮一遍呢
--
FROM 123.113.102.*
标准委员会总整些“高大上”不接地气的东西,函数名这种影响接口兼容性的最基本的东西竞然到现在都没标准化。
【 在 ylh1969 的大作中提到: 】
: 有一点不明,c++的函数名,并非是你写的函数名,真正的函数名取决于编译器,而且无法主动使用。这样如何做到可移植性?没有可移植性,如何能做系统内核?
--
FROM 123.113.102.*
所以我们做框架的,对++很谨慎,就是兼容性问题,同一个机器的不同编译器就会有区别。
好容易调试好一个框架,还要通测好几个编译器。
所以非常谨慎的,框架内全用C,插件允许用++。
【 在 toutouqi 的大作中提到: 】
: 标准委员会总整些“高大上”不接地气的东西,函数名这种影响接口兼容性的最基本的东西竞然到现在都没标准化。
--
FROM 221.218.61.*