C++之父独家回应白宫安全禁令,全球C++及系统软件技术大会盛大开幕

文摘   2024-12-05 21:50   上海  

作者 | 《新程序员》编辑部
出品 | CSDN(ID:CSDNnews)

C++ 自诞生至今,已走过四十一年的发展历程。在现代企业对高性能和工具链的强烈需求下,以及庞大遗留代码库对兼容性的严苛挑战中,C++ 正在创新与传统之间寻求微妙的平衡。同时,面对 Rust 等内存安全语言的崛起,如何提升 C++ 安全性、更高效地应用于实际场景,以及如何以正确视角看待这门历久弥新的技术,成为当下值得深思的重要课题。

12 月 5 日至 6 日,由 CSDN 联合高端 IT 咨询与教育平台 Boolan 举办的「2024 全球 C++ 及系统软件技术大会」在上海虹桥万豪大酒店隆重举行,吸引了超过 40 位来自 C++ 及系统软件领域的杰出专家,以及上千名开发者和技术爱好者。

本次大会由 C++ 之父、ACM 和 IEEE 院士 Bjarne Stroustrup,CSDN 高级副总裁李建忠,Codeplay 技术副总裁 Michael Wong 领衔,与来自微软、Adobe、Meta、英伟达、英特尔、SUSE、阿里巴巴、字节跳动、百度、腾讯、网易、智源等知名企业和机构的技术专家,共同探讨 C++ 的演进与最新成果,并围绕异构计算、高性能与低延时、研发效能、并发与并行、系统级软件、AI 算力与优化、大模型驱动的软件开发、架构与设计演化等关键主题,带来 C++ 及系统软件技术在各行业领域的核心应用,全面展现了 C++ 在技术实践中的独特价值。


开幕致辞:忆二十载情谊不减,察技术趋势勇往直前/浪潮乘风破浪

开幕式上,CSDN 高级副总裁、Boolan 首席技术专家、C++ 标准委员会委员李建忠发表了开场致辞。李建忠满怀感慨地回忆了他从 2005 年创办 C++ 大会的历史,以及从那时起 C++ 大会与 C++ 之父 Bjarne Stroustrup 的深厚渊源。Stroustrup 的持续支持不仅为中国 C++ 社区奠定了坚实的基础,他的每一场分享也为全球 C++ 开发者带来了宝贵的知识分享与启迪。

李建忠指出,AI 技术正在深刻改变软件行业,对产业发展产生重要影响。为此,CSDN 将在 2025 年继续汇聚全球各领域技术专家和大师,持续举办涵盖人工智能、软件研发、产品管理、C++ 及系统软件和 1024 程序员节等系列技术会议,同时通过线上课程和企业定制化线下培训,以及行业深度研究报告、《新程序员》、《开源发展蓝皮书》、《中国开发者大调查》等,持续为开发者提供深度技术赋能与前瞻洞察。


C++ 之父 Bjarne Stroustrup:重新认识 C++,跨世纪的现代演进

软件开发领域,C++ 凭借其丰富的特性与强大的性能,一直占据着核心地位,广泛应用于从系统软件、嵌入式系统到高性能计算的多种场景。美国国家工程院、ACM、IEEE 院士、C++ 之父 Bjarne Stroustrup 在本次大会上带来了主题为《重新认识 C++:跨世纪的现代演进》分享,深入探讨了如何通过“更快、更易维护、更安全”的视角重新审视这门经典语言。

Bjarne Stroustrup 美国国家工程院、ACM、IEEE 院士、C++ 之父

Stroustrup 强调,C++ 几乎能满足开发者所有需求,但也可能因使用不当而产生低效或难以维护的代码。他引用了自己常说的一句话:“goto 语句无所不能,所以我们几乎从不用它。”类似的逻辑也适用于 C++,“如果你想用 20 世纪 80 年代中期的方式写 C++,你也可以做到。”Stroustrup 提倡应该将 C++ 视为一门现代语言。他还分享一种常见的误解:人们往往把“熟悉”和“简单”混为一谈。许多开发者习惯于旧版本的 C++,甚至有人错误地认为使用新特性才是“酷”的表现。然而,编写好的可维护代码并不意味着要抛弃所有老的特性或只使用最新特性。关键在于将语言特性作为一个连贯的整体来解决问题,根据实际情况选择合适的技术,无论是古老的还是较新的。

演讲中,他重点分享了几项推动 C++ 持续演进的核心特性:

  • 资源管理:通过 RAII(Resource Acquisition Is Initialization)模式简化资源管理,确保资源在合适的时机被自动释放。

  • 错误处理:区分错误码与异常机制,前者适合常见且易于局部处理的错误,后者则适用于罕见且难以局部处理的情况。

  • 模块化:C++ 的模块特性显著提升了编译速度,有时甚至达到 25 倍,同时减少了预处理器带来的复杂性。

  • 泛型编程:泛型是现代 C++ 的核心,带来了零开销抽象、类型安全等优势,使代码更简洁直观。

  • 编译期编程:借助 constexpr 和 consteval,C++ 支持更多编译期计算功能,从而增强代码安全性与可读性。

  • 协程:协程支持函数在多次调用之间保持状态,适合异步编程。Stroustrup 特别提到,这一特性早期因不兼容某些硬件架构而被放弃,如今它终于重返 C++。

为了确保 C++ 代码的安全性和高质量,Stroustrup 表示,我们无法改变语言本身,但可以改变使用方式。Stroustrup 透露,他和一些专家正在推动将配置文件的概念引入到 C++ 中,并着手建立初步的配置文件集。一旦完成,这将使 C++ 在安全性方面超越许多所谓的“现代语言”,因为后者在资源安全等方面存在不足,例如无法防止文件句柄或线程句柄泄漏导致系统崩溃的问题。

此外,Stroustrup 再次强调,「不要把过多的精力放在语言特性上,而是思考你能用这门语言做什么,并努力做得更好。然后记住,C++ 是一个不断演进的语言。我从一开始就知道我不可能自己在合理的时间内构建我想要的语言,所以后来它不断成长了。」

紧接着,在主会场的炉边对话环节,Bjarne Stroustrup 正面回应了美国政府此前警告不要在新项目中使用 C++ 的言论。他直言:“这是一种非常不开明且相当恶劣的观点。他们盯住单一问题,将其归结为安全风险,但实际上,安全问题有很多种。如果我试图侵入你的电脑,我可能更倾向于利用 SQL 注入或偷取硬件,而不是关注缓冲区溢出。对于这样的评论,我们很难得到具体回应,因为他们往往选择忽略真正的技术探讨。”

对于 C++ 如何应对这些质疑,Stroustrup 表现出乐观和坚定的态度。他指出:“C++ 已经成功挺过了 Java 和 Ada 等语言的冲击,让我们看看接下来会发生什么。我不是政客,我更愿意专注于技术问题,比如在核心指南和配置文件的实施上。如果有足够的资源,我们完全可以在一年内消除 C++ 中的悬垂指针和未定义行为。然而,目前资源有限,这使得进展变得更为复杂。”

Stroustrup 也坦率地承认,推动一个拥有数百万开发者和数十亿行代码的庞大社区向前发展,远比创建一种新的、应用场景较为局限的语言要困难得多。“认为内存安全是唯一需要关注的安全问题是愚蠢的,”他说,“我所追求的是类型安全和资源安全。”

关于大模型是否会重塑编程语言以及对 C++ 的影响,Stroustrup 表示自己并非 AI 大语言模型领域的专家,但他确信这些技术将会帮助许多人处理复杂的编程问题。回顾 C++ 的发展历程,Stroustrup 曾多次面临要求直接在语言层面支持并发机制的压力,但他始终坚持抵制,因为他深知并发编程的复杂性和易错性。他主张通过库来实现并发功能,仅在必要时为那些无法在库中实现的功能提供语言级别的内部支持设施。他认为这一策略同样适用于应对 AI 大语言模型带来的挑战。

最后,在被问及给程序员的建议时,Stroustrup 分享了基于其长期职业生涯的经验:“不要认为你知道未来会发生什么。你必须做好变化的准备,不断学习并构建广泛的知识基础。不要仅仅追逐当前的流行趋势,因为它们很快就会过时。相反,应该打下坚实的基础,这样当机会出现时,你才能识别它并抓住它。同时,培养适应变化的能力。”


李建忠:从代码智能化到软件工程智能化

近年来,大模型技术的迅猛发展开启了软件开发领域前所未有的智能化革命。李建忠在《从代码智能化到软件工程智能化》主题演讲中分享谈到,虽然大模型驱动软件开发是一个确定性的趋势,但是当前在研发企业的落地实践却并不乐观,还面临很多卡点。究其原因,李建忠指出目前行业过于倚重代码大模型,但却忽略了支撑整个产业的软件工程,李建忠引用《Google软件工程》一书说道,“编程并不能直接与软件工程画等号。”

李建忠 CSDN 高级副总裁、Boolan 首席技术专家、C++ 标准委员会委员

李建忠表示,软件工程本质是一项多版本、多人的协作活动,其核心在于需要应对复杂性、适应动态性和促进协作性。现代软件设计的第一性原理是简化复杂性,而动态性则体现在快速变化的需求环境和运行环境中,协作性则强调团队合作对大型项目的重要性。

随着 2024 年大模型技术领域出现的一些最新进展,大模型赋能软件研发的关键要从当前的“代码智能化”迈向下一步的“软件工程智能化”:

  • 其一,大模型推理计算能力的大幅提升,通过推理侧 Scaling Law 提升模型分解和抽象思维能力,有助于解决软件工程的复杂性问题。李建忠指出,OpenAI 的 o1 模型通过Self-Play强化学习 实现了从快速直觉式的“快思考”向深思熟虑的“慢思考”跃迁。这种能力有望使模型在编程领域完成从低抽象任务到高抽象任务的跨越。尽管过去大模型在高抽象任务上的表现较弱,但 OpenAI o1 模型探索的方法正在快速改变这一局面,为软件设计师和架构师带来了值得关注的进展。

  • 其二,数据源正在从互联网静态数据和机器生成的数据,向共生数据转变。共生数据涵盖从需求分析到部署运维的动态流程中的全量数据,显著增强了模型在智能方面的动态演化能力。演讲中,李建忠以 Google 的 DIDACT 和阿里通义灵码 SWE-GPT 为例,这些项目通过引入开发全流程的动态数据,大幅提升了模型在复杂任务中的适应性。李建忠指出,自动驾驶之所以发展迅速,其核心在于建立了“模型-应用-数据”的飞轮效应。软件工程智能化的一个关键是要建立这样的“模型-应用-数据”飞轮效应,将软件活动中的各种数据,及时收集、清洗并持续用于模型训练。实现这一点需要软件研发全流程数字化基础设施及“模型数据工程师”等新角色的支持。李建忠呼吁软件专家积极参与模型训练,从“工程师教练”转型为“大模型教练”。此外,他进一步指出,数据作为模型的“燃料”,质量也非常重要,尤其是自然语言数据的比例对模型智能至关重要。研究表明,当自然语言比例不合适时,模型智能能力也会削弱。李建忠引用著名哲学家维特根斯坦的话”人类的智能和语言密不可分“。

    在动态性方面,李建忠还反驳了“大模型将废弃掉敏捷开发”的观点。他认为,智能演化的特点决定了软件开发无法一步到位,而需要通过快速迭代实现演化。大模型不仅不会取代敏捷,反而会加速其发展,从传统的周迭代或月迭代演进到天级甚至小时级迭代。这需要工程师们同时关注结果代码的训练和过程数据的积累,强化敏捷开发的动态性与智能化水平。

  • 其三,智能体技术的进步有望解决软件工程中的协作问题。李建忠指出,随着 OpenAI o1 等模型在推理和规划能力上的增强,智能体正迎来爆发式发展。这不仅推动智能计算任务模式从”学习、预测、创造的生成模式“向”具备推理、协作和执行能力的行动模式“转变,还带来了交互式方式的革新。相比被动且难以多人协作的对话式交互,智能体驱动下伴随式交互能够主动提出操作建议并实现多智能体协作。此外,智能体的协作沟通架构将决定系统设计架构,延续了康威定律的适用性。同时,智能体驱动互联网将从信息网络向行动网络演化,

最后,针对 AI for Developers(AI赋能开发者) 还是AI Developers(由AI来替换人类开发者)的话题,李建忠认为,AI 并不是众人最初想象中的破坏性颠覆,而是对人类智慧与经验的传承与加速。在软件工程领域,大模型技术为转化和复用人类智慧提供了新的契机,为软件工程带来了广阔的发展前景。


Michael Wong:正视美澳政府安全性警告,C++安全性演进方向

Codeplay 技术副总裁 Michael Wong 在演讲中重点讨论了 C++ 的未来以及即将到来的重大安全演进。从颇受关注的政府对 C++ 安全性的警告出发,深入探讨了为 C++ 开发的关键安全方案,并带来了 MISRA C++ 2023 的最新更新与未来动态。

Michael Wong Codeplay 技术副总裁

近年来,多国政府机构因内存安全风险,对在关键系统中使用 C 和 C++ 提出了越来越多的警告。值得注意的是:

  • 澳大利亚网络安全中心(2023 年):建议采用 Rust、Java、Go 和 Swift 等内存安全的编程语言。

  • 白宫(2024 年 2 月):发布指令,倡导使用内存安全的语言,以减少攻击面。

  • 美国联邦调查局和网络安全与基础设施安全局(2024 年 10 月):对在关键基础设施中使用 C 和 C++ 发出警告,要求迁移并设定了 2026 年 1 月的截止期限。

由于内存安全风险,政府部门告诫不要在关键系统中使用 C/C++。不安全编程(例如缓冲区溢出、悬空指针)造成的漏洞报告引起了广泛关注。当前,政府政策正在推动使用更安全的替代语言,比如 Rust。此外,遗留的 C/C++ 系统及其迁移难题也是一大隐忧。根据公共漏洞披露(CVE)数据库,大约 70% 的高严重性漏洞与内存安全有关。Michael 表示,这凸显了 C++ 社区需要正视并解决这些问题。

内存安全问题可能导致系统崩溃、数据损坏和网络攻击的漏洞,解决这些问题对于保持 C++ 在现代安全关键应用中的相关性至关重要。Michael Wong 指出,虽然有人可能质疑紧迫性,但行业不能忽视这些发展。他引用了美国政府曾试图在军事应用中强制使用 Ada 但未成功的例子,强调仅靠政府指令可能不足以推动改变,除非行业看到相应的价值。

为了增强 C++ 的安全性,C++ 委员会正在进行大量努力。Michael Wong 自 2021 年以来深度参与了这一过程,与 C++之父 Bjarne Stroustrup 等人合作,发出了多项关键提案,这些提案已获得了显著的支持,目标是将重要特性纳入 C++26,为开发者提供在不剧烈改变语言的情况下编写更安全代码的工具。

同时,Michael 还重点讨论了 Rust 和“Safe C++”。他表示,Rust 以其借用检查器(borrow checker)和所有权模型(ownership model)而闻名,其兴起引发了将类似安全特性整合到 C++ 中的讨论。名为“Safe C++”的提案试图引入类似 Rust 的机制,包括显式借用和消除悬空指针。然而,Michael Wong 解释道,尽管工程努力令人印象深刻,但该提案最终被拒绝。所需的大量更改将从根本上改变 C++,引入众多新特性并使标准化工作复杂化。这凸显了在语言演进与向后兼容性和行业采用之间平衡的挑战。

Michael Wong 为在 C++ 中拥抱安全性提供了时间线:

  • 短期(到 2025 年):开始采纳安全规格配置,审核现有代码库。

  • 中期(到 2026 年):实施生命周期检查,更新内部编码标准。

  • 长期(2026 年以后):通过整合新的语言特性和工具,实现全面的内存安全。

他强调,必须在安全举措与项目需求、遗留代码考虑和资源成本之间取得平衡。而 C++ 正在发展以满足现代安全和可靠性需求,C++ 标准委员会、行业专家和开发社区的协同努力,正在为一个更安全的语言铺平道路,而不损害性能或现有代码库。


三大分论坛齐开场,共话最佳实践

今天下午,三大技术论坛同步开幕,汇聚行业专家,共同探讨技术前沿与最佳实践,激发创新灵感。

论坛 1:现代 C++ 最佳实践

在现代 C++ 最佳实践论坛上,一线技术专家们深入探讨了 C++ 编程语言的前沿话题与实际应用挑战。首先,Adobe 首席科学家、C++ 标准委员会委员 David Sankel 围绕开源 C++ 程序库集合 Beman 项目,分享了在协作环境中构建高质量 C++ 程序库的经验与见解。Qt Group 高级解决方案工程师、质量保证事业部的 Francois Berjonneau 带来了关于 MISRA C++ 2023 规范中不可判定性的探讨。系统内核专家张银奎则以一个真实的 C++项目为例,详细讲述了将 Windows 平台上开发的 C++ 程序成功移植到 Linux 环境的过程中所遇到的挑战与解决策略。字节跳动研发工程师王留帅聚焦于大型服务对 C++ 编译工具链所带来的挑战及其优化路径。码题诗创始人李成栋从 CPU 特性和编译视角出发,提出了 C++ 性能优化策略。

在圆桌论坛环节,在 Boolan 首席咨询师王晓华主持下,Boolan 首席咨询师吴咏炜、系统内核专家张银奎、阿里云开发工程师许传奇和字节跳动研发工程师王留帅齐聚一堂,围绕“现代 C++ 最佳实践”这一主题,深入探讨了开发者当前面临的诸多痛点和挑战,并就代码安全性等关键话题展开了热烈讨论,为观众提供了极具价值的见解和技术指导。

论坛 2:大模型驱动的软件开发

在大模型驱动的软件开发论坛上,通义灵码产品负责人张燎原深度解析了全球 AI 研发工具的发展,从软件研发全流程角度介绍了 AI 如何改变现有模式,并分享智能编码背后的产品和技术突破。紧接着,网易 CodeWave 技术专家赵雨森探讨了AI与低代码平台的融合,分析了页面、逻辑、样式编程领域与 AI 技术结合的机会与挑战。百度文心快码 Comate 工程师陈泽分享了文心快码从内部项目成长为国内领先编码插件的历程。面对快速发展的软件生态系统带来的操作系统维护挑战,腾讯高级工程师、OpenCloudOS 社区 Stream Sig Maintainer 王烁深入探讨了服务器操作系统 OpenCloudOS 如何通过结合大模型实现全流程自动化基础设施建设。上海人工智能实验室训练框架及编译计算负责人裴芝林则聚焦于通过AI编译器技术栈支持分布式训练和推理系统的方法。

本论坛的圆桌对话环节,在 CSDN&《新程序员》执行总编唐小引的主持下,通义灵码产品负责人张燎原、上海人工智能实验室训练框架及编译计算负责人裴芝林、百度文心快码 Comate 工程师陈泽和智源大模型分布式优化系统工程师曹州围绕“大模型驱动的软件开发实践”进行了深入交流,探讨了大模型对软件开发的影响及其带来的挑战和机遇。

论坛 3:研发效能

在当今快速变化的技术环境中,行业对研发效能的关注度日益增加,企业纷纷寻求方法以提高开发效率、缩短产品上市时间并增强竞争力。在这样的背景下,本次研发效能论坛,5 位专家共同探讨 C++ 语言特性和编译技术的最新进展及其应用,旨在为开发者提供提升工作效率和产品质量的有效策略与工具。

Boolan 首席咨询师吴咏炜指出,随着 C++ 标准自 C++11 以来的逐渐演化,lambda 表达式已经成了现代 C++ 惯用法里不可或缺的一部分,其在本次分享中深度地分享 Lambda 表达式的用法和意义。随后,TencentOS 操作系统高级研发工程师罗雄虎介绍了基于 GCC 的分布式 LTO(Link-Time Optimization)与 PGO(Profile-Guided Optimization)编译加速的实现方法,展示了如何通过优化编译过程显著提高程序性能。

阿里云开发工程师许传奇则聚焦于 ClangIR——一种基于 MLIR 的方言,详细介绍了它的发展现状、近期成果及长期展望。他指出,借助 MLIR 提供的强大能力,编译器开发者能够在 ClangIR 上基于 C++ 语义对程序进行深度优化,从而进一步提升编译效率和代码质量。快手编译器优化专家李浩深入探讨了国产处理器的适配与优化问题,特别是如何利用自动迁移平台加速云产品在信创场景中的适配与性能优化,分享了宝贵的实践经验。最后,中国科学院软件研究所工程师史宁宁分析了 LLVM 关于代码体积优化的工作,并讨论了未来可能的改进方向,为听众提供了对未来发展的深刻见解。


展区互动,人头攒动

在会场之外的展厅中,气氛热烈非凡,Qt Group、快递 100、人民邮电出版社异步社区、电子工业出版社博文视点、清华大学出版社、图灵等合作伙伴展位吸引了大量参会者的驻足关注。各展位前人头攒动,与会者积极参与互动体验,与展商深入交流,了解前沿技术和产品的详细信息。


12 月 6 日六大分论坛精彩继续...

至此,2024 全球 C++ 及系统软件技术大会首日的技术盛宴圆满落幕。明日,大会还将带来六大分论坛,全天呈现更多精彩内容,主题涵盖并发与并行、AI 算力与优化、高性能与低时延、异构计算、系统级软件、以及架构与设计演化。届时,众多业内大咖将齐聚一堂,通过分享真知灼见与实践经验,启发与会者深入思考未来技术发展的方向与实际应用的可能性。

最后,为了让更多技术爱好者紧跟行业最前沿,「2024 全球 C++ 及系统软件技术大会」特别推出「云会员」服务,让用户通过线上平台尽享全球顶尖技术盛宴。无论是 C++23 新标准的探索,还是 AI 算力优化的深度剖析,云会员都将带来一场穿越时空的知识盛宴,让每一位技术从业者尽享学习与交流的无限可能。

AI科技大本营
为AI领域从业者提供人工智能领域热点报道和海量重磅访谈;面向技术人员,提供AI技术领域前沿研究进展和技术成长路线;面向垂直企业,实现行业应用与技术创新的对接。全方位触及人工智能时代,连接AI技术的创造者和使用者。
 最新文章