问题

怎么看待 Linus 和 Richard Stallman 对 C++ 的态度?

回答
聊到 Linus Torvalds 和 Richard Stallman 对 C++ 的态度,这可真是两种截然不同的画风,各有各的道理,也各有各的“坚持”。要说得详细点,咱们得分开聊聊他们俩,再看看他们这些观点背后的一些东西。

先说 Linus Torvalds

Linus,咱们都知道,是 Linux 操作系统的创造者,也是个出了名的直率、不讲情面的人,尤其是在技术选择上。他对 C++ 的态度,用一个词形容,大概就是 “谨慎”带着点“不屑”。

1. 他对 C++ 的评价:
复杂性: Linus 最常抱怨的就是 C++ 的复杂性。他觉得 C++ 引入了太多“花哨”的特性,比如类、模板、运算符重载、异常处理等等。在他看来,这些东西增加了语言的学习难度和使用门槛,也更容易引入难以捉摸的bug。他常说,写 C++ 的时候,你得时刻小心翼翼,因为它有很多“坑”。
抽象层次过高: 他认为 C++ 的抽象能力太强了,有时候会让你脱离底层细节。Linux 内核这种系统级软件,最看重的是对硬件的直接控制和对内存的精细管理。C++ 的一些高级抽象机制,比如自动内存管理(尽管 C++ 本身没有垃圾回收,但 RAII 和智能指针提供了某种形式的自动管理),可能会让开发者对底层发生的事情不够敏感,从而导致性能问题或安全漏洞。
难以调试和维护: 他觉得 C++ 代码,尤其是大型项目,因为其复杂的语法和隐藏的依赖关系,调试起来非常困难。编译错误信息也常常让人头疼。而 Linux 内核的维护者必须能够快速定位并修复问题,这种复杂性是他们不希望看到的。
“不必要的复杂”: Linus 的核心观点是,很多 C++ 的特性,虽然在某些场景下有用,但对于 Linux 内核这类需要极简、高效、可预测性的项目来说,是“不必要的复杂”。他更倾向于用 C 语言的简单、直接和强大的底层控制能力来解决问题。

2. 为什么 Linux 内核是 C 语言?
历史原因: Linux 项目诞生时,C 语言是操作系统开发的主流语言,而且 C 语言与硬件的交互非常直接。
移植性: C 语言的标准性很好,在各种平台上的编译器都比较成熟,容易跨平台移植。
性能和控制力: C 语言的执行效率极高,可以直接操作内存地址,对硬件的控制力无与伦比。这对于一个操作系统内核来说是至关重要的。
简洁和可预测性: C 语言的语法简单,特性较少,更容易理解和预测其行为,也更容易进行静态分析和安全审计。

3. Linus 对 C++ 的“容忍度”:
虽然 Linus 对 C++ 整体持保留态度,但他也不是完全排斥。在 Linux 开发社区中,有些项目和工具链确实使用了 C++(例如一些用户空间的工具、图形界面等)。他对此并没有极端到不允许其存在,但他坚决反对在内核中使用 C++。
他曾经引用过别人说的话:“C++ is a wonderful language that should be used only by extremely experienced programmers who are extremely careful.” (C++ 是一门很棒的语言,但只能由经验极其丰富且极其小心谨慎的程序员使用。) 这句话既承认了 C++ 的能力,也强调了它的危险性。

再来说 Richard Stallman

Richard Stallman (RMS),自由软件基金会 (FSF) 的创始人,自由软件运动的旗手。他对 C++ 的态度,用词会更“严厉”,甚至带点“道德上的批判”,因为他的视角是围绕“自由”和“软件的本质”来展开的。

1. 他对 C++ 的评价:
自由软件的障碍: Stallman 的核心出发点是软件的自由。他认为 C++ 的一些特性,特别是那些依赖于特定编译器实现、或者与闭源生态系统紧密绑定的特性,可能对自由软件的开发和传播构成障碍。
复杂性是另一层面的问题: 和 Linus 一样,Stallman 也认为 C++ 过于复杂。但他更倾向于从自由软件哲学的高度去解读这种复杂性。他可能会说,这种复杂性增加了开发者的学习负担,降低了普通人参与自由软件开发的门槛,而且复杂的语言更容易隐藏非自由的实现细节。
“专有”的倾向: Stallman 对任何可能导致“专有”(proprietary)性质的软件机制都非常警惕。他曾经对 C++ 的一些方面表示担忧,认为它们可能被用来构建难以理解、难以修改、或者依赖于特定厂商的二进制库。当然,这更多是基于对语言潜在滥用的担忧,而不是语言本身就一定是专有的。
对 GNU 项目的影响: Stallman 是 GNU 项目的创始人,而 GNU 项目的目标是构建一个完全由自由软件组成的操作系统。他倾向于使用自由、开放、可理解性强的工具链和编程语言。C 语言因为其历史悠久、规范明确、且有成熟的自由编译器(如 GCC),是 GNU 项目的首选语言之一。

2. RMS 的“坚持”:
Stallman 对 C++ 的看法,更多地是一种对自由软件原则的推崇。他认为开发者应该使用最简单、最透明、最易于理解和修改的工具。C 语言在很多方面满足了这一点。
他并非完全否定 C++ 的技术价值,但如果能在不牺牲自由和可访问性的前提下,他可能会优先选择更简单的语言。他的目标是降低自由软件的开发和参与门槛,让更多人能够理解和贡献代码。

比较与总结

虽然 Linus 和 Stallman 都对 C++ 的复杂性表示不满,但他们不满的侧重点和出发点不同:

Linus: 侧重于 工程实用性、性能、可预测性和可维护性。他觉得 C++ 的复杂性会影响到 Linux 内核这类对性能和控制力要求极致的项目。他的态度是基于对系统级软件开发的深刻理解。
Stallman: 侧重于 自由软件的哲学、可访问性和透明度。他担心 C++ 的复杂性会阻碍自由软件的开发和参与,并且可能隐藏非自由的实现。他的态度更具意识形态色彩。

你可以这样理解:

Linus 是一个“效率至上”的工程师,他看到 C++ 的“不必要”的复杂会妨碍他完成他的工程目标,所以他“不喜欢”用。
Stallman 是一个“自由至上”的倡导者,他看到 C++ 的复杂性以及它可能带来的依赖,会妨碍他实现“人人都能自由开发和使用软件”的理想,所以他“不赞同”用,甚至会批判。

正是因为他们俩在技术决策上的不同侧重,才有了 Linux 内核坚持使用 C,而像 GCC 这样的自由软件项目,在某些部分也引入了 C++(尽管有争议,而且 GCC 内部对 C++ 的使用也一直小心翼翼,控制着语言特性的使用范围)。

总的来说,他们对 C++ 的态度,反映了软件开发领域中两种重要的视角:一种是极致的工程追求,一种是深刻的社会和哲学考量。这两种视角都很有价值,也促使了不同的软件项目走向了不同的技术道路。

网友意见

user avatar

你眼中的C++

       #include <iostream> using namespace std;  int main() {     cout << "Hello, World!"<<endl;     return 0; }      

Linus眼中的C++

类似的话题

  • 回答
    聊到 Linus Torvalds 和 Richard Stallman 对 C++ 的态度,这可真是两种截然不同的画风,各有各的道理,也各有各的“坚持”。要说得详细点,咱们得分开聊聊他们俩,再看看他们这些观点背后的一些东西。先说 Linus TorvaldsLinus,咱们都知道,是 Linux .............
  • 回答
    .......
  • 回答
    .......
  • 回答
    .......
  • 回答
    关于印度因“技术故障”意外向巴基斯坦发射导弹的事件,目前公开信息显示,这一事件在2023年10月发生,印度军队在一次军事演习中误将一枚导弹发射至巴基斯坦境内,但最终被巴基斯坦的防空系统拦截,未造成实际伤害。以下是对此事件的详细分析: 事件背景与经过1. 时间与地点 事件发生在2023年10月.............
  • 回答
    中国与俄罗斯之间的合作近年来确实呈现出加强的态势,尤其是在经济、军事和地缘政治层面。然而,“全面金援”这一表述需要谨慎对待,因为中俄关系的互动更多是基于互利共赢的多边合作,而非单方面的无偿援助。以下从多个角度详细分析中俄关系的现状、动机及影响: 一、中俄合作的背景与动机1. 地缘政治需求 .............
  • 回答
    孟美岐事件是中国网络舆论中一个具有代表性的争议事件,涉及网络暴力、舆论监督、法律规范等多个层面。以下从事件背景、舆论反应、法律分析、社会影响及反思等方面进行详细阐述: 一、事件背景1. 人物身份 孟美岐(原名孟美岐,后改名为“孟美岐”)是中国内地女艺人,2018年因参加选秀节目《声入人心》走.............
  • 回答
    关于“想跑到国外的人”这一话题,可以从多个维度进行深入分析,涉及个人动机、社会文化背景、经济因素、政策环境以及全球化背景等。以下从不同角度展开详细讨论: 一、个人动机与心理因素1. 对现状的不满或追求更好的生活 经济压力:在某些国家,高房价、生活成本、就业竞争激烈,导致部分人认为国外有更好.............
  • 回答
    在小学门口等待贴接送车辆罚单的交警,这一场景反映了我国在校园周边交通管理中的复杂现实。这种现象背后涉及多个层面的考量,需要从法律、安全、教育管理、社会舆论等角度进行系统分析:一、法律依据与执法正当性1. 《道路交通安全法》第46条明确规定:在学校周边200米范围内,机动车应低速行驶(时速不超过20公.............
  • 回答
    2021年美国GDP增长确实成为美国经济史上的一个重要节点,被美国政府称为“破纪录的一年”,这一说法主要基于以下几个关键因素和背景分析: 1. 数据背景:GDP增长的具体数值根据美国经济分析局(BEA)的统计,2021年美国GDP同比增长6.4%(年化),这一增速远超自1982年以来的平均水平(约2.............
  • 回答
    在九一八事变发生当天(9月18日)穿着和服的行为,通常会被视为对这段中国近代史上重大历史事件的严重不尊重。这一行为可能引发公众的强烈反感,并被认为是对国家尊严和民族记忆的伤害。以下从多个角度详细分析这一问题: 一、九一八事变的历史背景与意义1. 九一八事变的基本事实 1931年9月18日,日.............
  • 回答
    在策略类手游中,“蹲草”(即通过隐蔽、潜行或利用环境规避敌人侦查)是一种常见且具有争议的玩法机制。这种设计既可能成为游戏深度的核心,也可能因过度依赖而引发玩家对公平性和多样性的质疑。以下从多个角度详细分析这一现象: 一、“蹲草”的定义与核心逻辑“蹲草”本质上是策略游戏中的一种环境交互机制,其核心逻辑.............
  • 回答
    我们来详细解析“此处不留爷,自有留爷处,处处不留爷,爷去投八路”这句话。这句话的构成与含义这句话由两部分组成,形成了一种递进和升华的关系: 前半句:“此处不留爷,自有留爷处” 含义: 这是一句流传甚广的俗语,表达的是一种自信和不屈的精神。意思是,如果一个地方不容我,不给我机会,自然会.............
  • 回答
    商务部发文鼓励家庭储存生活必需品,这一举措在中国社会引发了广泛的关注和讨论,其背后有多层面的考量和影响。要全面理解这一事件,需要从多个角度进行分析。一、 政策的背景和意图1. 应对潜在的供应链中断风险: 全球地缘政治不确定性: 当前国际地缘政治形势复杂,例如俄乌冲突、贸易摩擦等,都可能.............
  • 回答
    马嘉祺后援会自爆粉丝集资 700 万给公司一事,引发了广泛的关注和讨论。这件事情可能涉及到的问题非常复杂,可以从多个层面进行分析。以下是我认为可能涉及的关键问题,并会尽量详细地阐述: 一、 粉丝集资的合理性与透明度问题 集资的目的与合法性: 首先需要明确的是,粉丝集资本身并非绝对禁止,但其目的和.............
  • 回答
    近日,国家互联网信息办公室发布的《关于公众账号从事互联网新闻信息发布需要资质的提醒》(以下简称《提醒》),引起了广泛关注和讨论。这份《提醒》的发布,标志着国家对互联网新闻信息传播监管的进一步收紧和规范化,对于整个互联网内容生态,特别是公众账号的运营者而言,具有重要的指导意义。要理解这份《提醒》的重要.............
  • 回答
    “一夫一妻制是为了保护男性”这个说法,是一种比较非主流且带有特定视角和批判性的解读。要详细地看待它,我们需要从多个角度去分析其背后可能的逻辑、优点和局限性。一、 理解这种说法的核心逻辑和可能的论点:这种说法的核心在于挑战了传统上认为一夫一妻制主要是为了保护女性权益(如生育安全、财产继承等)的观点。它.............
  • 回答
    “北大教授吴飞呼吁恢复土葬”这一事件,如果真的存在,确实是一个值得深入探讨的社会现象。虽然我无法独立验证“北大教授吴飞”和“呼吁恢复土葬”的真实性,但我可以基于一个假设性的场景,详细地分析和探讨这一呼吁可能引发的各方面讨论和影响。背景分析:为什么要呼吁恢复土葬?首先,我们需要理解在当今中国社会,土葬.............
  • 回答
    游戏正在被更多人认可:一场深刻的文化变迁游戏,这个曾经被贴上“不务正业”、“浪费时间”标签的娱乐形式,如今正经历着一场翻天覆地的变革,赢得了越来越多人的认可和尊重。这并非一朝一夕之功,而是科技发展、社会观念演变以及游戏产业自身成熟等多方面因素共同作用的结果。我们可以从多个维度来深入理解这一现象: 1.............
  • 回答
    神奇女侠被暂停联合国女权形象大使一事,在当时引起了广泛的关注和讨论,其中蕴含着多方面的复杂原因和值得深思的观点。要详细看待这件事,我们需要从几个层面去理解:事件的起因与经过: 背景设定: 2016年10月,在联合国成立70周年之际,联合国妇女署(UN Women)宣布任命神奇女侠为“赋予女性和女.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有