转:专访 Bjarne Stroustrup (C++之父)(一)

C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来) C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来) By TopLanguage (http://groups.google.com/group/pongba)刘未鹏|C++的罗浮宫 (http://blog.youkuaiyun.com/pongba) 临近元旦的一个月,Bjarne在通信中答应接受一次访谈。高兴之余,为访谈的问题犯了难,我不想做成一个个人的访谈;我希望这 阅读详情

来源:http://hi.baidu.com/zhangshourui/blog/item/7d5c6238bd4f952596ddd81f.html

Bjarne Stroustrup 其它言论 http://www.royaloo.com/bjarne/bjarne.htm

承蒙孟岩先生允许,本译文引用了他的摘译稿,谨致谢意。

Elden Nelson:如果您现在有机会从头设计C++语言,您会做些什么样的改变?

Bjarne Stroustrup:当然,你永远都不可能重新设计一种语言,那没有意义,而且任何一种语言都是它那个时代的产物。如果让我今天再设计一种语言,我仍然会综合考虑逻辑的优美、效率、通用性、实现的复杂程度以及人们的喜好。要知道人们的习惯对于其喜好有着巨大的影响。现在,我会寻找一种简单得多的语法 — 它可能与人们对“熟悉”和“简单”的混淆认识相悖,我会把对类型系统的侵犯限制在极少的语言构造里,并且用明显“丑陋”的语法来标识它们。(就象我对对新风格的“转型”的处理,比方说,reinterpret_cast<数据类型>(p)就是一个用来描述一种“丑陋”操作的“丑陋”记号)。这样可以很容易地禁止不安全的操作。我还会把核心语言的体积搞得尽可能小一些,包括类和模板的关键的抽象特性,而把很多其它的语言功能放在库里来解决。当然我也会保证核心语言足够强大,使得那些库本身也足以用此核心语言来产生。我可不希望标准库的编写者依赖于普通用户无法使用的额外的语言特性。我还努力使核心语言的定义更加精确。最重要的是,我会在该语言被广泛使用之前尽可能维持一个很长的酝酿期,这样我就可以根据来自真实用户的坚实反馈对它进行改进。这可能是最困难的,因为一旦有什么东西明显出色并且前途光明,它就会被广为使用,此后进行任何不兼容的修正都将变得极其困难。我相信这些思想与我当初设计C++时的理念是非常类似的,它们同样也指引着一、二十年来C++的不断演化。当然,我认为现在还没有什么东西能让我觉得象是“完美的语言”。

Elden Nelson:当您设计C++语言时,您是否借鉴了其他崭露头角的对象语言(例如Modula-2)的思想?

Bjarne Stroustrup:在C++的设计过程中,我吸取了C、BCPL、SIMULA、ALGOL 68、Ada、ML以及其他一些语言的思想。当时我知道Modula-2,还知道至少一打别的语言,但我回想不起来Modula-2对我产生了什么直接的影响。为了回答“为什么C++会是这样(以及为什么不这样)”之类的问题,我撰写了《The Design and Evolution of C++》一书。也就是说,这本书记录了导致C++现状的设计决策、原则以及折中权衡,我推荐对此类问题感兴趣的读者阅读这本书。

Elden Nelson:您预期对C++做哪些增强,会不会删掉一些东西?

Bjarne Stroustrup:很不幸,虽然有一些东西真的可以扔掉,但恐怕很难删掉任何东西。第一个应该抛弃的东西就是C风格的转型机制和类型截断转换(narrowing conversions)。就算不禁止,编译器的作者们至少也应该对这种行为给与强烈的警告。我希望能用标准库中的vector之类的东西彻底取代数组,但这显然是行不通的。不过如果程序员们能主动在所有应用编程中使用vector来代替数组,就会立刻受益匪浅。关键是你不必再使用C++中最复杂难缠的技巧了,现在有优秀得多的替代方案。我没打算去掉任何大的特性。特别是那些把C++与C区别开来的主要特性恐怕没法风平浪静地被抛掉。通常问这些问题的人是希望我挑出诸如多继承、异常、模板等机制来接受批判。所以在此我想大声讲清楚,我认为多继承机制对于一门具有继承机制的静态类型语言来说是必需的,异常机制是在大系统中对付错误的恰当的方法,模板机制对于类型安全、优雅和高效的程序设计来说不可或缺。我们可以在语言细节方面对这些机制吹毛求疵,但在大的方面,这些基本概念都必须坚持。现在我们仍在学习标准C++,也正在标准所提供的特性基础上发展出更新且更有意思的编程技术。特别是人们刚刚开始使用STL和异常机制,还有很多高效强大的技术鲜为人知,所以大可不必急匆匆地跑去增加什么新机制。我认为当前的重点是提供很多新的、比以前更加精致的且更有用的库,这方面潜力巨大。例如,如果有一个能被广泛使用的、更精致的支持并发程序设计的库,那将是一大福音 — C风格的线程库实在不理想。我们也就可以与各种其他的系统比如SQL以及不同的组件模型更好地契合起来。在优雅高效的库的开发方面,数值计算领域的人们看起来已经走到了前面(例如Blitz++、POOMA和MTL,请访问http://www.research.att.com/~bs/C++.html)。有了足够的经验之后,我们就可以更好地决定什么能够(也应该)被标准化。

Elden Nelson:我们正不可避免地走向一个以Web为中心、分布式计算为主流的时代。那么您觉得C++还能维持其地位吗?程序员们可不可能把若干种专用语言(比如Perl、Javascript)综合运用以彻底取代某一种通用语言?为了配合新的计算模式,C++或标准库应该做出怎样的调整?

Bjarne Stroustrup:从来没有哪一种语言能适合所有的工作,恐怕以后也不会有。实际系统通常是用多种语言和工具构造起来的。C++只是想成为若干语言和工具中的一个,当某些专用语言在其领域里特别突出时,它们可以与C++互为补充。也就是说,我觉得如果大多数现在的专用语言能借助特定领域的C++库共同工作的话,它们会表现得更出色,而脚本语言通常导致难以维护的代码,这或许跟语言选择关系不大,可能更是因为急着想将产品尽快推向市场。如此一来,哪还有什么精力考虑程序结构、伸缩性和可维护性方面的问题?我不敢肯定未来的代码是否真的会以Web为中心,就算是直接处理Web的系统也主要是由处理本地资源(比如IP连接)的程序模块构成的。地理上的分布性以及服务器软件对于并发机制的高度依赖对于系统的构建者来说的确是个挑战。针对上述问题的一些库已经出现,也许我们将会看到它们最终得以标准化。当然,一些原语操作和保证规则应该被加到核心语言中以提供对这些库的更佳支持。总的来说,对于Web和网络,我们非常需要一个真正的系统/网络级的安全模型。指望下载的“以JavaScript之类的语言编写”的脚本来实现这个模型无异于痴人说梦。请注意,我也并没有宣称C++提供了这个问题的解决方案。C++被设计为对所有系统资源提供高效的访问,而不是为了防止被欺骗。

Elden Nelson:您认为C++未来的走向如何?在接下来的10年里它会衰落吗?或者基本保持现状,或者演化为某种不一样的东西?

Bjarne Stroustrup:C++有着极美好的未来。用它你能写出伟大的代码。不管被多少敌意的宣传所攻击,C++仍将是开发高性能、高复杂度系统的最佳语言。据我所知,还没有哪种语言能象C++这样,将通用性、效率和优雅有机结合。我没看到C++有衰落的迹象。在我能预见的未来里,它的用途还会不断增长。当然,在未来的十年里我们会看到一些变化,但不会象这篇访谈中的这套问题所暗示的那么多。跟每一种语言一样,C++也会不断演化。“语言专家们”要求改进的喧嚣声震耳欲聋,但是系统开发者们的基本请求是保持稳定。C++会改进,但这些改进将是“经验”的结果而非对“狂热”的反应。为了更高效地使用一些新的编程技术,比如通用编程技术,可能会增加一些小特性。会有大量的库涌现,我预期会出现一些新颖的便利设施以支持更好的库。我希望新的扩展主要集中在支持抽象方面的一般特性,而不是为支持某些特殊任务的特定机制。打个比方,属性(properties)是一个有用的应用层的概念,但我不认为在一种通用编程语言中有它的容身之地。用标准C++的一组类可以很容易地支持这一概念。如果我们感觉那族类对于“属性”这一概念的支持不合口味,我们也不应该立刻跑去在语言里增加属性机制,而是仔细考虑如何改进类和模板以帮助库设计人员尽可能接近“属性”这个概念。也许通过改进函数对象机制能够给这个问题一个满意的答复。为了使C++在接下来的十几年中保持生命力,很基本的一点就是不要让标准C++赶什么学术或商业时髦。人们要求增加的特性中很大一部份通过使用现有的标准C++开发新库的方式都可以实现。还有,事实上人们渴望得到的很多奇妙的特性已经包含于标准C++之中,并且被所有最新版本的编译器所支持。对许多程序员来说,提高代码质量的最佳途径不是追求什么语言扩展,而是静下心来品味最新的C++技术书籍。

Elden Nelson:对于当前脚本语言的兴旺态势您怎么看?特别是Python,与C++相比,它似乎提供了一种更简单的OO技术学习途径。

Bjarne Stroustrup:有些语言很不错。比如Python,我很喜欢。但是我认为你从不同的语言中学到的OO技术是不完全相同的。当然,每一个职业程序员都要通晓几门语言,并且应该意识到,在不同的语言之中,编程和设计技术有着显著不同。在我看来,用脚本语言建造的系统与用C++那样的通用语言建造的系统大不相同。从两类语言中学到的技术区别明显。不存在“可以满足绝大多数高效系统构建所需”的公共OO技术子集。

Elden Nelson:有没有计划对标准C++语言进行扩充或改进,从而为分布式计算提供更好的支持?

Bjarne Stroustrup:没有,我也不认为有这个必要。用更好的库就差不多能解决问题了。充其量为了支持这类的库,我们可能会增加一些低级的“原操作(primitives)”或“保证(guarantees)”。

Elden Nelson:将来C++有没有可能定义一个可移植的二进制接口?

Bjarne Stroustrup:如果你说的“可移植”是指跨硬件和跨操作系统,我想答案是no。我们当然可以设计一个解释器或者虚拟机什么的,但这样一来,由于无法以最优方式访问系统资源,C++的能力就会受到削弱。我希望在不远的将来能够看见平台ABIs(platform ABIs)。例如,有人正在努力为Intel新的IA64架构定义C++ ABI,我想这些努力会得到用户社群的强烈支持。能够把一台PC上不同编译器产生的代码连接(link)在一起是一件美妙的事。

Elden Nelson:您目前是否正在为其他新语言开展工作?

Bjarne Stroustrup:没有。我还在学习如何使用标准C++,并且进行一些分布式计算的试验。我认为编程本身远比编程语言细节有趣。我认为只有当你有一些东西无法用已有语言合理表达时,才需要考虑设计一门新语言。对我来说,绝大部分工作都可以通过C++很好地完成。

Elden Nelson:以“后知之明”的角度来看,您是否认为“使一个成员函数默认为非虚函数”是一个明智的决定?假设有机会改变,您会改变这个决定吗?

Bjarne Stroustrup:也是也不是。使C++保持生命力的要素之一即是“零开销规则”:你无需为你不用的功能付出代价。使一个成员函数默认为非虚函数会违反这条规则,还会为“提供高效的具体类型(concrete types)”增加难度。对于那些认为“类”即为存在于复杂层次结构中的大家伙的人们来说,默认为virtual是显然的。一般来讲,虚函数不适合那些关键的小而具体类型,例如复数、points、vectors、lists,以及函数对象。对于这样的类型来说,如下方面至关重要:表达的紧凑性、基本操作的内联化、访问的直接性、堆栈的配置,还有对“重载函数不会对语义造成不希望的修改”的保证。此外,如果默认为virtual的话,你将需要一个non-virtual或final关键字,而且当过度使用它时会导致扩展性问题。在语言设计里,的确没有免费午餐。

Elden Nelson:在您看来,经由IEEE执行的标准化过程对C++语言的完备性、灵活性以及能力等方面产生了怎样的影响?

Bjarne Stroustrup:对于C++来说,ISO标准化过去以和现在都是重要的。其重中之重在于,标准委员会为技术人员提供了一个探讨技术问题的“中立的舞台”。还有什么别的地方能够让来自于相互竞争的机构(比如Microsoft、IBM、Borland/Inprise以及Sun等)的用户和编译器编写者们出于对用户利益着想,坐到一起合作共事呢?ISO的工作是民主的,是以大多数人的意见为基础的。为了达成一致的意见是需要时间的,但这样的努力非常值得。否则将导致语言的定义只为某一家公司(或少数几家公司)的利益服务。由ISO工作而形成的标准C++比以前任何版本的C++都更加接近我的理想。标准C++的“异常”与我自己定义的几乎相同,模板更具灵活性,名字空间和运行时类型信息也被添加进来。从对编程风格(你也可称之为“范型”)提供支持的角度来看,其余内容皆属于细节问题,自然而然,标准委员会工作的主要部分便是精确定义这些细节。鉴于接近标准的编译器可以广泛获得,人们试验那些新功能的时机已经来临。在几年之前很多东西还没有成为现实,如今可以在实际应用中使用它们了。那些对于大多数人来说仅能在语言定义上看到的技术,现在已被开发出来。例如STL(标准库中容器和算法的框架)就是一个有意思的新技术的优秀资源。当然了,在接下来的关键项目中,你不应该冲到最前面使用所有语言特性和所有新技术,但是,是开始学习新语言特性和新标准库并试验它们哪些适合你哪些不适合你的时候了。假如需要文档资料,你可以通过ANSI以18美元购得C++标准(参见 www.research.att.com/~bs/C++.html),也可以免费获得接近标准的草案。但是,这份标准并不是教本。我向有一定经验的程序员推荐我的《The C++ Programming Language》第三版,这本书以更易理解的方式讲述了完整的语言和标准库,它还阐明了C++支持的很多基本设计和编程技术。然而,即便这本书也不适合初学者阅读,因此,请先浏览我的个人主页(www.research.att.com/~bs/)以了解我的写作风格和详细程度能否满足你的需要。

Elden Nelson:在不少流行领域,C++正渐渐失去光芒,因为它要求人们花很大的精力去对付一些很基本的工作,比如管理内存(因为没有垃圾回收机制),管理模块之间的依赖性(因为无法创建包(packages)),管理组件的版本。C++缺乏一些现代语言已经视为标准的特性,谣传中最酷的Java语言试图解决这些问题,那么解决这些问题是否会导致C++的发展背离其根本宗旨呢?C++应该怎样发展以保证我们在这种语言上的投资能有合理的回报,而不是被迫从头学用另一种语言?

Bjarne Stroustrup:我倒还没有注意到C++比以前用的少了,相反,我看到的指标表明C++的使用还在稳步上升。只不过这种基数很大的稳定增长以及在标准性、移植性和库方面的不断提高并没有造成什么具有欺骗性的新闻效应而已。我认为你所说的“失去光芒”只不过是市场营销和新闻意义上的现象。如果你需要垃圾回收机制的话,你可以在C++应用程序中插入一个垃圾回收器。有不少免费的和商业的垃圾回收器已经在重要的实践中被证明非常出色(可以参见www.research.att.com/~bs/C++.html)。如果你不想使用垃圾回收机制也没关系,你可以使用标准容器类,它们大大减少了对于显式分配和回收内存的需要。这样,通过使用现代的库所支持的现代的编程风格,你就能避免绝大多数内存管理问题。同样的技术还可以用来避免一般资源的管理问题。并不是只有内存才会泄漏,线程句柄、文件、互斥锁、网络连接等都是重要的资源,为了建立可靠的系统,它们必须被正确地管理。如果你以为有了自动垃圾回收机制就可以解决所有资源管理问题,那你最好赶快从美梦中醒来。C++提供了一些机制来管理常见资源。关键的手段 — 资源获取即初始化(resource acquisition is initialization)依赖于函数对象来管理生存期问题。语言中关于对象的部分构造规则和异常机制对这项技术提供了一般性的支持。关于异常处理技术的讨论,请参阅The C++ Programming Language (Special Edition) 的新附录“Standard-Library Exception Safety”,它也可以从我的Web站点访问到(www.research.att.com/~bs/3rd_safe0.html)。某些语言的狂热支持者总是用讽刺的手法来描述C++,然而C++实际上要好得多。特别是我认为很多其他特性已经被吹嘘过度了,而在C++中,通常这些特性能够很容易地被模拟出来。相反,新语言总有一种“在损害一般性的情况下”添加新特性的倾向,这也是一门新语言从诞生到被接受为一种用于常见计算的有用的工具,其体积和复杂度通常会增加两到三倍的原因之一。目前,使用C++的个人和组织可以进行的最佳投资就是去更好地理解标准C++和现代的C++设计和编程技术。大多数人使用C++的方式实际上停留在80年代中期的水平,甚至比那更落后。精确区分语言和系统/平台之间的责任是一个困难的问题,我的观点是,它们之间应该有一个明显的分界线,并且,依赖关系应该尽可能地置身于语言之外,系统相关和系统依赖的库才是解决系统依赖性的地方,而语言并不是。我不认为组件版本管理之类的问题应该由编程语言来解决,这是一个系统范畴的问题,在语言里应该通过提供用于系统访问的适当的库来解决。C++有这样的机制。解决这样的问题并不会违背我对C++所奉行的理念。但在另一方面,给C++增加很多特殊的特性会使C++偏离轨道,而且在保持可移植性和平台独立性方面也是一个倒退。

c++编程规范 C++语言之父Bjarne Stroustrup C++ Core Guidelines (Bjarne Stroustrup Herb Sutter) P: Philosophy 见名思意 尽量使用标准库 可以编译时检查的尽量编译时检查 比如使用static_assert等等 资源一定要释放 const的合理使用 使用合适的工具以及一些工具库避免重复造轮子 P.1: Express ideas directly in code 所见即所得... 阅读详情

相关推荐

C++语言之父 Bjarne Stroustrup 简介

图BS先生在他的办公室,这是他的个人网站上的相片 许多重要人物之所以成名,或者是因为其改变了历史或者是因为其创造了历史,Bjarne Stroustup先生,C++之父,属于后者;归结个人成功的原因,理由可能有多种,但他只有浅显的两个一点点:他比多数人天真和理想主义那么一点点;比多数人花在解决问题上的时间多一点点。 BS先生,1950年生于丹麦港口城市奥尔胡斯市,1975年在奥尔胡斯大学毕业,1...

希望我的博客,能帮上你解决学习中工作中所遇到的问题 6392

C++之父Bjarne Stroustrup:程序员在数学上付出的努力,永远也不会白费

导读:1979年诞生的C++已迈入“不惑之年”,如今却依旧在主流编程语言中占据重要一席。但今天,我们不再赘言C++的成功史,而将目光转向C++背后的英雄——C++之父Bjarne Stroustrup。在本篇文章中,让我们跟着软件开发商Evrone的采访,共享Bjarne Stroustrup四十余年程序人生中所蕴藏的大量经验财富。作者 | Evrone,已获作者翻译授权...

华章IT官方博客 694

探索C++之父Bjarne Stroustrup的编程理念与实践

C++是一种广泛使用的计算机编程语言,它是由贝尔实验室的Bjarne Stroustrup在1979年开发出来的,并在1985年正式发布。C++既保持了C语言的高效率和灵活性,又引入了面向对象编程(OOP)的特性,使得软件开发更加模块化,易于维护。泛型编程是一种编程范式,它侧重于创建可适用于多种数据类型的代码。与面向对象编程(OOP)关注于数据和行为的封装不同,泛型编程更注重在多种数据类型间共享算法和数据结构。

weixin_32999557的博客 1162

最著名的10位程序员,你都知道吗?

1、Dennis Ritchie Dennis MacAlistair Ritchie是一位美国计算机科学家。 他创建了最常用的C编程语言,如今已在各种软件应用程序,嵌入式系统开发,操作系统中使用,并且影响了大多数现代编程语言。Dennis还共同创建了UNIX操作系统。 由于他的成就,他于1983年获得了ACM的图灵奖,1990年获得了IEEE的海明奖,1999年获得了克林顿总统的国家技术奖。 他于2007年退休时是朗讯科技系统软件研究部门的负责人。他于2011年10月12日辞世,Fedora团队用Fed

weixin_45820912的博客 3432

C++程序设计语言(特别版) Bjarne Stroustrup著 习题详解(含目录)

C++程序设计语言(特别版) Bjarne Stroustrup著 习题详解(含目录)

C++程序设计语言(中文版)pdf格式【Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)博士】

C++程序设计语言(中文版)pdf格式 Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)博士的经典之作 C++之父的重要著作

从零到系统编程高手:Bjarne在2025大会透露的7步进阶法(独家整理)

掌握C++初学者进阶系统编程的科学路径,2025全球C++及系统软件技术大会:Bjarne亲授:C++初学者能力培养路径首次公开7步学习法,覆盖基础语法到高性能系统开发,强调实践与设计思维结合,助力开发者少走弯路,值得收藏。

CodeIsle的博客 803

静态时序分析(STA)_深入解析Data to Data Checks的零周期挑战

本文深入解析了静态时序分析(STA)中Data to Data Checks的核心概念与零周期挑战。重点探讨了当Setup要求值超过时钟周期时,工具如何调整发射沿,并导致Hold检查的发射与捕获沿“分裂”这一反直觉现象。文章通过案例详细解读了时序报告,并提供了通过调整约束或接受多周期保持两种策略来应对这一挑战,帮助工程师正确理解和处理此类复杂时序检查。

weixin_29204205的博客 351

Bjarne现场答疑,C++语言臃肿问题终于有解了?

解决C++语言臃肿难题,2025全球C++及系统软件技术大会:Bjarne与标准委员会对话:C++简化与功能平衡聚焦核心优化策略。探讨现代C++在系统级开发中的简洁性与性能平衡,揭示模块化设计、概念简化与编译效率提升方案。权威解读未来演进方向,值得收藏。

ProceSeed的博客 1035

三维变换矩阵实战——三维点云的旋转、缩放、镜像、错切、平移、正交投影

旋转矩阵:右边矩阵是点云的原始坐标,左边的是旋转矩阵可视化:绕x轴旋转90度。

weixin_43850909的博客 8229

Mybatis Provider注解实现批量插入

需求 借助mybatis 的provider实现一个比较通用的,批量插入数据接口。 Mapper接口 第一参数为需要批量插入的数据,第二个参数为对应实体类的class public interface BaseDao<T> { @InsertProvider(type = BaseProvider.class, method = "batchInsert") int batchInsert(@Param("lists") List<T&gt

小楼夜听雨的博客 2417

C++之父Bjarne Stroustrup的这本不可替代的经典

1982年,贝尔实验室(美国AT&T公司)的Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了新的程序语言C++。之所以被命名为C++,是为了表达该语言与C语言的渊源关系。Bjarne Stroustrup博士因此被尊称为“C++语言之父”。 20世纪90年代以后,Bjarne Stroustrup步入人生的最辉煌时期。1990年,Bjarne荣获《财富》杂志评选的“美国12位最年轻的科学家”称号。1993年,由于在C++领域的重大贡献,Bjarne.

人邮异步社区 4245

论文解读--Phase Noise in FMCW Radar Systems

相位噪声是现代雷达、通信、光谱和计量系统的基本性能参数之一。本文提出了一种适用于FMCW雷达系统的相位噪声理论。导出了一个新的设计方程,用于确定雷达系统中允许的源相位噪声电平的最大界。分析了在传输延迟小于参考振荡器相干时间时,相干混频引起的非线性相位噪声去相关函数;讨论了在传输延迟大于参考振荡器相干时间时,目标响应的频谱展宽。提出了收发链中各子系统的影响,并讨论了一种新的ADC相位噪声模型。介绍了相位噪声建模技术,然后将锁相环频率合成器与低噪声频率合成器进行比较,以演示减少相位噪声边带以改善检测和跟踪性能。

奔袭的算法工程师 3767

C++的背影——C++之父Bjarne Stroustrup印象

C++的背影——C++之父Bjarne Stroustrup印象左轻侯2002.11.4  热爱C++的朋友请不要误会,我并不是在暗示“C++已经日薄西山”,或者任何类似的意思。从语义上来说,C++作为一门编程语言,当然不会有什么背影。事实上,我想说的是一个人的背影。因此这个题目显得有点突兀,甚至哗众取宠。但是我想,在C++社群中,每一个人都会同意,有一个名字就是C++的象征。这个名字当然

qinghou的专栏 5093

Proxmox(pve)集群(4)存储(1)配置分布式存储ceph

它使用一种称为CRUSH(Controlled Replication Under Scalable Hashing)算法的数据分布算法来将数据均匀地分布在多个存储节点上,并确保数据的冗余和容错。它负责管理数据的分布、冗余和自动修复。PVE支持本地存储、LVM、NFS、iSCSI、CephFS、RBD、ZFS等存储方式,我这里使用两种存储方式,一种是通过ceph实现分布式存储,一种是通过truenas实现集中式存储。自我管理和自动恢复:Ceph具有自我管理的特性,可以动态地调整和优化存储集群的配置。

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺的博客 2627

【论文复现】——基于LM优化的NDT点云配准算法

传统的正态分布变换配准算法处理初始位姿变换相差较大的两帧点云时,存在无法收敛或者陷入局部最小值的问题。为了提高算法的收敛性能,提出了一种基于LM方法改进的三维正态分布变换配准算法。

点云侠的博客 1163

向C++之父Bjarne Stroustrup致敬

2013-04-25 21:30 (分类:社会人生)     非常好的文章     C ++ 的 背 影                                     ——C++之父Bjarne Stroustrup印象 左轻侯 2002.11.4        热爱C++的朋友请不要误会,我并不是在暗示“C++已经日薄西山”,或者任何类似的意思。从语义上来说,C++作为一门编程语言,当

centos的博客 702

OpenClaw实战一|企业微信AI客服数字员工:自动应答+工单创建+数据统计,零代码3天落地

OpenClaw做企业微信AI客服数字员工,真正的价值不是“能自动回复”,而是把“咨询-应答-工单-统计-复盘”全流程闭环。对中小企业来说,不用招专职AI开发、不用买昂贵客服系统,一台服务器、零代码配置,就能拥有媲美大厂的智能客服能力。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 517

C++之父Bjarne Stroustrup亲临现场,2025全球C++及系统软件技术大会重磅官宣

在这个以算力与效率为信仰的时代,C++ 再次被推到聚光灯下——无论是 OpenAI 的推理引擎,还是 NVIDIA 的加速库、DeepSeek 的底层编译框架,C++ 依然是那根隐形的钢梁,支撑着智能世界的底座。他是 C++ Reflection TS 的项目编辑、Boost 基金会的执行董事,也是模式匹配和语言变体等多个 C++ 提案的作者。年,Bjarne 在全球 C++ 大会上的主题是 「原则、问题与解决方案」,他深入剖析了 C++ 社区所面临的核心挑战,同时为未来语言的发展制定了战略方向。

优快云资讯 7576

Python与.NET革命性互操作:PythonNet实现零门槛双向调用——深度解析与实战案例

跨语言调用实战指南:Python与.NET深度集成 摘要:本文详解Python与.NET双向互调技术,通过PythonNet和Python.Runtime实现高效跨语言协作。核心优势包括:无缝集成Python机器学习模块(如PaddleOCR)与.NET UI框架,内存直传提升90%数据效率,减少80%重复代码。内容涵盖:1)Python调用.NET类库的完整流程;2)C#动态加载Python脚本及环境配置要点;3)反射机制实现私有方法调用与泛型处理;4)性能优化技巧(类型缓存、NumPy数组转换);5)异

墨夶的博客 611

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C++ 之父 Bjarne Stroustrup : 简单的表述方式才是最优的方案

2016 年的最后一天,图灵访谈给各位小伙伴儿献上特大彩蛋!借用 Bjarne 大师的话“趁你还足够年轻的时候,喜欢上某些学科,选择具有挑战性和感兴趣的工作并养成良好的习惯!”,预祝你们在 2017 年找到新的方向! Bjarne Stroustrup(本贾尼·斯特劳斯特卢普) 1982 年,贝尔实验室(美国 AT&T 公司)的 Bjarne Stroustrup 博士在 C 语言的基础...

Harrytsz的博客 1358

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C++之父(Bjarne Stroustrup)给C++初学者的信

C++之父(Bjarne Stroustrup)来信,我们怎么学习C++,让我们一起来看看吧 From: bs@alice.att.com (Bjarne Stroustrup)  Newsgroups: comp.os.msdos.programmer,  comp.sys.ibm.pc.programmer,  comp.lang.c++,comp.lang.c  Sub

SzMing 1884

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从丹麦的旧GIER到C++之父Bjarne Stroustrup ,未来属于理想者

Bjarne创造C++的初衷是为了实现高效使用硬件与强大抽象机制的结合。当时,他想用通信系统构建一个多计算机系统,这个通信系统可以是共享内存,也可以是网络。他需要编写底层接近硬件的代码,如内存管理器、进程调度程序和设备驱动程序,同时也需要软件分离组件以便它们以良好方式进行通信。而在当时,没有一种语言能够胜任这样的多计算机系统开发需求,于是他在C语言的基础上引入并扩充了面向对象的概念,发明了C++,这个结果是他付出众多时间与打磨的甘甜果实。

敖行客 Allthinker的博客 1511

C++ 的背影{C++之父Bjarne Stroustrup印象 左轻侯}

           C ++ 的 背 影                   ——C++之父Bjarne Stroustrup印象 左轻侯 2002.11.4  热爱C++的朋友请不要误会,我并不是在暗示“C++已经日薄西山”,或者任何类似的意思。从语义上来说,C++作为一门编程语言,当然不会有什么背影。事实上,我想说的是一个人的背影。因此这个题目显得有点突兀,甚至哗众取宠。但是我想,在

yisong_net的专栏 647
上一篇: 程序界面设计模式慨述(转载)
下一篇: C++0x FAQ中文版
willnow
博客等级 码龄19年 7粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值