如何看待 Linux 内核邮件列表重启将内核中的 C 代码转换为 C++ 的讨论?
在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」,
点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!这些人一半是没看过Linux里面的各种宏,一半是还用着C++11这种“modern C++”,举个例子都只能举得出来烂大街的“C++模板”,要不要去看看kernel里为了实现模板造的那套宏黑魔法?
再者,C++模板,这回答下被吐槽很多的都是些什么模板元编程的内容,再加点SFINAE吧,所以我说这里面很多人都还抱着C++11这种古代C++叫modern,迭代到C++20乃至23,C++针对元编程技术早就在可读性上进化了许多,包括SFINAE,C++20的concept都可以在很大范围内取代掉它了。
同样是要上天,C++开飞机,仪表盘一大堆旁人根本看不懂直呼高深莫测,说飞机太复杂了,还是用脚走比较“朴实无华”,然而目标是要上天,你用脚,就只能“朴实无华”地干出更复杂的事情。
C++的所谓“复杂”,是语法条例的繁琐,凭借着C++20的强大语言特性,很多需求都不需要太过堆砌令人看不懂的代码打“黑魔法”;而很多人幻想中的“C语言”是全文都是朴实无华的代码、一眼就能看透的语法,但是需求是恒定的,孱弱的“朴实无华”代表C语言代码有各种你分开看知道是在干什么、合起来就看不懂的黑魔法,这个才叫“心智负担”。
说C++ABI复杂、说写C++的人菜、说C++性能不好我都不想说什么,说C++很多黑魔法C语言朴实无华,未免有点倒反天罡。