C++之父近期在接受采访时,深入探讨了人工智能时代开发者的角色与C++语言的不可替代性。他明确指出,尽管AI在代码编写上展现出了强大能力,但解决问题的核心依旧掌握在人类手中。
这位哥伦比亚大学教授强调,C++并非一种容易被替代的语言。当被问及真正希望改变的是什么时,他坦言,改变的并非语言本身,而是开发者的思维方式。他认为,在AI引领的开发环境变革中,C++存在的根本理由依然稳固,真正的挑战在于开发者如何转变思维。
斯特劳斯特鲁普指出,当前软件生态系统过于追求便利性和速度,这导致语言和开发方法的核心原则正面临削弱。他特别提到,AI代码生成工具助长了无意识编码的习惯,这些工具往往只是重新组合现有代码,可能导致过去错误的模式和陈旧风格被重复利用。
他进一步解释,基于GPT的代码生成器仍在推荐C++中已被淘汰的做法,如原始指针或传统数组指针传递,这不仅与现代C++的编程理念相悖,还可能阻碍安全且表现力强的代码编写。
斯特劳斯特鲁普警告,随着越来越多开发者依赖AI提供的看似正确的代码,编程的本质——问题识别和抽象设计能力——可能会逐渐退化。他强调,优秀的开发者应具备定义问题和构建匹配模型的能力,编码只是这一过程的产物。
对于人工智能时代创造新语言或废弃现有语言的尝试,他持强硬立场。他认为,仅仅因为语言存在某些风险功能,就选择去除或替代,并非明智之举。C++虽然复杂且有时存在风险,但正是这些功能使其在高性能系统、实时控制等领域不可或缺。
斯特劳斯特鲁普还表达了对AI技术发展的担忧,希望这些技术不会威胁到开发者的专业能力。他认为,AI可以提高代码编写的效率,但开发者自身需要对语言和设计原理有深刻理解,以防止判断能力丧失和技术债务扩散。
针对C++的内存安全性问题及其引发的替代语言讨论,他强调,C++从诞生之初就以类型安全和资源安全为核心目标,并通过现代功能和工具不断提高安全性。他提出配置文件作为解决内存安全问题的策略,并指出C++的性能、控制力和抽象范围是其他新语言难以匹敌的。
斯特劳斯特鲁普还提到,任何新语言要想成功,都必须与C++和Python等现有语言兼容,否则将陷入支离破碎、难以沟通的局面。他认为,现代C++的核心在于如何协调语言的理念和风格,而非单纯使用新功能。
自C++11以来,该语言提供了智能指针、自动类型推导、概念和模块系统等多样特性,这些不仅是可选选项,更是构建安全强大软件的核心组成部分。他强调,积极利用这些现代特性,才是保持和提升开发者能力的关键。