- 主题:20年了,大家现在再看看linus对C++的负面评价
好像跟我的观点一致唉。
【 在 foliver 的大作中提到: 】
: 先不说这些观点本身,但是Linus对待Rust和C++简直是双标。在年初的Rust风波里,linus对那些拒绝Rust代码的一些模块负责人这样说:"你可以不喜欢Rust,也可以不用Rust,但是你不能阻止别人用Rust",他的这些话导致了一些linux内核代码审核人辞职。
:
: (1)C++ 中的异常处理
: ...................
--
FROM 221.218.61.*
有一点不明,c++的函数名,并非是你写的函数名,真正的函数名取决于编译器,而且无法主动使用。这样如何做到可移植性?没有可移植性,如何能做系统内核?
【 在 z16166 的大作中提到: 】
: linux kernel一直被linus把持,他不让c++代码进入linux kernel,那肯定没辙
: windows早就有人尝试用C++写driver了,DriverStudio几乎是最早的。MSVC用/kernel参数可以生成适合kernel driver的代码,但会限制某些c++ feature的使用。这说明通过编译器的改造,可以用C++的子集来写kernel代码。
: C++ exception也有一个可以用在windows kernel driver的实现,只不过不是官方的。
: ...................
--
FROM 221.218.61.*
如果c++进入内核,那可就热闹喽!
智能指针没法玩了吧,不知道哪个对象啥时候有用啥时候作废。
【 在 z16166 的大作中提到: 】
: 在kernel等这些特定领域之外的地方还抱着C不放而不用C++、Rust的这些人,才是奥特曼,自己吭哧吭哧手工把C++编译器早就自动搞定的东西每次都重新轮一遍,不知道自己落后愚昧,还沾沾自喜。你咋不用汇编、机器码去轮一遍呢
--
FROM 221.218.61.*
面向对象与数据独立是两股道跑的车。
内核考虑更多的是,程序与数据独立。
而不是数据和相关程序包在一起。
【 在 CMOO 的大作中提到: 】
: 面向对象是一种抽象建模的思维方式,哪种语言不面向对象编程?跟C++有什么关系?跟debug有什么关系?
:
--
修改:ylh1969 FROM 221.218.61.*
FROM 221.218.61.*
只能这样了,我也是,c++的模块,会有一个
extern “C” 的接口函数。
【 在 z16166 的大作中提到: 】
: 用C的ABI。Rust目前没有稳定的ABI,也是这么做的
:
--
FROM 221.218.61.*
所以我们做框架的,对++很谨慎,就是兼容性问题,同一个机器的不同编译器就会有区别。
好容易调试好一个框架,还要通测好几个编译器。
所以非常谨慎的,框架内全用C,插件允许用++。
【 在 toutouqi 的大作中提到: 】
: 标准委员会总整些“高大上”不接地气的东西,函数名这种影响接口兼容性的最基本的东西竞然到现在都没标准化。
--
FROM 221.218.61.*
我一直诟病++,就因为这个。
做应用项目,也是尽量做一些通用工具解决特定问题,与数据无关。
【 在 tortelee 的大作中提到: 】
: 现代很多大公司,新的c++架构,数据模型,和程序 单独分开。
: 之前数据和方法在一起,是个歪门邪道,做到后期,程序无法维护。
--
FROM 221.218.61.*