2023년 C++ 에코시스템: C++20의 성장, Clang 기반 도구의 채택 확대, 개발자의 신뢰를 얻고 있는 AI
참고: 이 글은 Anastasia Kazakova가 작성한 글을 번역한 것으로 아래의 글에서 저자를 지칭하는 말은 원문 작성자인 Anastasia Kazakova를 뜻합니다.
JetBrains는 매년 개발자 커뮤니티의 현황을 파악하기 위해 개발자 에코시스템 설문조사를 실시합니다. 그리고 드디어 올해 결과가 나왔습니다! 2023년 가장 큰 트렌드 중 하나는 소프트웨어 개발자들 사이에서 AI 사용이 폭넓게 수용되고 있다는 것입니다. 이들 중 무려 77%가 다양한 업무 관련 작업에 ChatGPT를 사용하는 것으로 나타났습니다. 프로그래밍 언어 측면에서 Objective-C는 수명이 다해가고 있으며 Rust는 올해 새로운 인기 기록을 세웠으며 C++와 C는 언어 순위에서 각각 8위와 10위를 차지했습니다. 보고서에 더 많은 인사이트가 있으니 자세히 살펴보겠습니다!
2023년에는 전 세계 34,493명의 소프트웨어 개발자가 조사에 참여했습니다. 이들 중 2,627명이 C++를 3대 주요 언어 중 하나로 꼽았습니다. 귀중한 인사이트를 도출하기 위해 원시 데이터를 면밀히 조사했으며, 결과를 여러분과 공유하고자 합니다. 또한 언어 위원회를 대표하는 유명한 전문가와 C++ 발전에 중요한 역할을 하는 기업을 포함하여 여러 커뮤니티 구성원에게 의견을 제시해 줄 것을 요청했습니다. 당사 데이터와 결과에 소중한 의견을 제시해주신 분들께 감사드립니다.
- Inbal Levi, MPGC Services Ltd(Millennium) 수석 소프트웨어 엔지니어, WG21 위원회 회원
- Bryce Adelstein Lelbach, NVIDIA 수석 아키텍트
- Diego Rodriguez-Losada Gonzalez, Conan 팀인 JFrog의 수석 아키텍트
C++ 표준: 기본 파생 언어인 C++20
C++11 및 C++14의 하향 추세가 계속되고 있으며 사람들이 C++20 및 C++23으로 마이그레이션함에 따라 C++17은 미미한 성장만 보여주고 있습니다. 내년에는 C++20과 C++23의 합산 점유율이 C++17을 넘어서는 것이 현실적으로 나타날 수 있습니다. 이러한 추세를 이끄는 원동력 중 하나는 C++ 컨퍼런스에서 C++20 및 C++23에 대해 논의하려는 경향이 있다는 것입니다.
새로운 C++ 표준을 채택하는 데 있어서는 게임 개발 업계가 앞서가는 것 같습니다. 객체 직렬화 알고리즘에 대한 중요성이 높다는 점에서 게임 개발자가 가장 애타게 기다려온 언어 기능 중 하나인 리플렉션이 언어에 추가된다면 이러한 추세가 한층 더 우세해질 가능성이 높습니다. 그런데, Unreal Engine이 매크로를 통해 리플렉션을 에뮬레이션 처리한다는 사실을 알고 계셨나요?
또한 최근 언어 표준을 되돌아보고 출시 첫 해와 1년 후의 채택률을 비교했습니다.
- C++17은 2017년 12%로 시작하여 2018년 18%에 도달했습니다.
- C++20은 2020년 12%로 시작하여 2021년 18%에 도달했습니다.
- C++23은 올해 10%로 시작했으므로 이제 모든 관건은 2024년 어느 정도 점유율에 다다를지에 달려 있습니다.
새로운 표준으로 마이그레이션할 계획이 없는 사람들의 비율은 약 50%에 달하며, 여전히 C++98/C++03을 사용하는 사람들이 가장 높은 수치(57%)를 보였습니다. 이 현상은 새로운 것이 아니며, 특히 일부 임베디드 프로젝트에서 이전 컴파일러 버전을 사용해야 하는 필요성과 관련이 깊습니다.
C++를 넘어
재미있는 사실: 작년에 저는 Python이 C++ 다음으로 C++ 개발자에게 최고의 동반자임을 밝혀 Jason Turner를 놀라게 했습니다. 2023년에도 Python은 여전히 C보다 확실한 우위를 점하고 있습니다.

제가 C++ 개발자여서 알고 있지만, Python은 프로젝트 모델 래핑에도 널리 사용되었으며, 많은 게임 개발 스튜디오가 여전히 Python으로 .sln 파일을 처리하고 있습니다.
Rust와 관련해서는 현재 JetBrains RustRover 팀과 함께 조사 중인 흥미로운 질문이 있습니다. 바로 현재 얼마나 많은 Rust 프로젝트에서 C++가 활용되고 있는지, 또 그 반대의 경우는 어떤지에 관한 것입니다. 대부분의 설문조사와 GitHub 검사에서는 5%~10%를 넘지 않는 것으로 나타났지만, Google과 같은 대기업들은 보안과 안전상의 이유로 거대 코드 기반의 일부를 Rust로 마이그레이션하는 것으로 알려져 있습니다. 이에 대한 여러분의 생각은 어떤가요?
C++ 도구: 경쟁 구도는 그대로
C++용으로 선택되는 IDE와 에디터
대부분의 C++ 개발자는 몇 안 되는 동일한 IDE와 에디터만 사용하는 것으로 보입니다.

완전한 기능을 갖춘 IDE로, CLion과 Visual Studio가 시장에서 비슷한 위치를 차지하고 있으며 Visual Studio Code는 스마트 에디터로 이들과 경쟁하고 있습니다. JetBrains도 발전을 이루고 사용자에게 최고의 경험을 제공하기 위한 이러한 경쟁에 합류하게 되어 기쁩니다. (그런데, Android Studio가 CLion의 C++ 지원을 사용한다는 사실을 알고 계셨나요? Android Studio만의 독점적 구성 요소가 당사의 소스 코드를 기반으로 합니다.)
타사 라이브러리 관리
35년의 역사에도 불구하고 타사 라이브러리를 관리하는 일은 C++에서 가장 큰 과제 중 하나입니다. C++ Foundation 연례 C++ 개발자 설문조사 ‘Lite’에서는 이 문제가 1위를 차지했으며 응답자의 47%가 “주된 고충”으로 꼽았습니다. 이는 C++ 라이브러리를 정의하기 어렵고 사전 빌드된 형식으로 사용하는 것이 까다롭다는 사실에서 비롯됩니다. 하지만 아직 희망은 있습니다! CppCon 2023에서 CMake의 Bill Hoffman과 Bloomberg의 Bret Brown은 C++에서 종속성 관리의 초기 표준으로, 사전 빌드된 라이브러리를 설명하는 메타데이터 파일에 대해 이야기했습니다. 이들의 Libraries: A First Step Toward Standard C++ Dependency Management(라이브러리: 표준 C++ 종속성 관리를 향한 첫걸음) 대담은 지금 바로 YouTube에서 시청할 수 있습니다.
2023년 개발자 에코시스템 설문조사에 따르면 소스에서 라이브러리를 구축하는 사람의 수가 더 적어진 것으로 나타났습니다.

프로젝트 모델 및 빌드 시스템
CMake는 (작년 이후 약간 하락하기는 했지만) 여전히 상위권을 유지한 반면, msbuild와 Makefiles는 계속해서 하락세를 보이고 있습니다.
Bryce가 예측한 대로 Ninja는 성장하고 있습니다. C++ Foundation 연례 C++ 개발자 설문조사 ‘Lite’의 데이터를 보면 성장세는 더욱 큽니다.
이 이유는 C++ Foundation 설문조사의 경우 응답자에게 더 자주 “해당하는 항목을 모두 선택”할 수 있게 했다는 사실로 설명될 수 있습니다. 또한, 빌드 도구에 초점을 맞춘 질문이 더 많고 Ninja를 선택한 응답자 중 일부는 이를 프로젝트 모델이 아닌 빌드 도구로 사용하고 있을 것입니다.
안전하고 깔끔한 C++ 코드
코드 분석 도구는 안전하고 깔끔한 C++ 코드를 작성하는 데 도움을 줍니다. 커뮤니티에서 가장 인기 있는 도구는 무엇일까요?

Clang 기반 도구의 인기가 높아지고 있는 것은 놀랄 일이 아닙니다.
코드 분석을 전혀 사용하지 않는 사람들의 비율은 30%로 같은 수준에 머물고 있는 반면, IDE에 번들로 포함된 코드 분석을 사용하는 사람들의 비율은 떨어졌습니다. 이유가 무엇일까요?
CI 파이프라인이 이유의 일부일 수 있습니다. 하지만 CI/CD 파이프라인에 통합된 코드 분석을 살펴보면 증가세가 26%에서 27%로 미미한 것으로 나타났습니다.

설문조사 데이터에 따르면 응답자의 절반이 컴파일링 단계에서 코드 분석을 실행합니다. 그러나 ‘코드 작성, 오류 발견, 오류 수정’ 루프에서 정적 코드 분석을 실행하면 상당한 시간이 절약되는 것으로 확인되므로 이는 기회비용의 손실입니다. 그리고 요즘 도구들은 환상적인 결과를 제공할 수 있습니다! 예를 들어, CLion의 최신 데이터 흐름 분석 기능은 불필요한 코드, null 포인터 역참조, 메모리 누수, 허상 포인터, 배열 인덱스 문제를 잡아낼 수 있습니다. 자세한 내용은 블로그 게시물 시리즈를 읽어보세요.
AI는 이미 우리 곁에 와있습니다!
2023년은 개발자 에코시스템 설문조사에서 AI에 관해 질문한 첫해였습니다. 저희는 얼마나 많은 개발자들이 업무에 이미 AI를 채택하고 있는지, 그리고 어떤 작업과 기능을 AI에 맡기고 있는지 매우 궁금했습니다. 발견한 주요 사실은 다음과 같습니다.
- 개발자의 84%는 어떤 방식으로든 생성형 AI 도구에 익숙합니다.
- 개발자의 43%는 가까운 미래에 AI 도구를 사용해 볼 계획이 있습니다. 가장 큰 우려 사항은 보안이었으며, 응답자의 20%가 그렇게 답했습니다.
- 대부분의 개발자는 새로운 것을 배우고, 브레인스토밍으로 아이디어를 얻고, 콘텐츠를 요약하는 데 AI를 사용합니다.
개발자들은 가장 시간이 많이 걸리는 활동으로 코드 작성(79%로 1위)과 코드 이해(47%로 2위)를 들었습니다. AI의 빠른 발전을 생각하면 AI가 이미 이 두 작업 모두에서 개발자에게 도움을 줄 수 있다는 것은 놀랄 일이 아닙니다.
JetBrains AI Assistant가 이제 JetBrains IDE에서 생산성을 높일 수 있는 여러 가지 새롭고 향상된 기능을 포함해 정식 출시되었습니다. CLion에서는 필요 시 AI Assistant가 언제든지 코드, CMake 및 런타임 오류를 설명해주고, 리팩터링을 제안하며, 문서와 커밋 메시지를 생성하고, 컨텍스트를 인식하는 AI 채팅에서 질문에 답합니다. 확장된 컨텍스트를 사용하여 보다 포괄적인 결과를 제공하는 프로젝트 인식 AI 액션도 사용할 수 있습니다.JetBrains AI Service 구독을 통해 CLion에서 AI Assistant를 추가 기능으로 이용해 보세요.
조사 대상 및 조사 방법에 관하여
JetBrains 개발자 에코시스템 설문조사의 C++ 결과를 C++ Foundation 연례 C++ 개발자 설문조사 ‘Lite’의 결과와 비교해 보면 여러 영역에서 유사한 추세를 발견할 수 있지만 몇 가지 중요한 차이점도 확인할 수 있습니다. 염두에 두어야 할 한 가지 중요한 사실은 C++ Foundation 설문조사 대상이 평균적으로 C++ 경험이 훨씬 더 많다는 것입니다.
JetBrains 연구원들은 다음을 포함하여 최대한 다양한 데이터를 수집하기 위해 매년 최선을 다하고 있습니다.
- 학생부터 전문 개발자까지 다양한 경험을 가진 응답자 모집
- 설문조사를 10개 언어로 번역하여 전 세계 더 많은 지역에 접근
- 17개국에서 충분히 큰 표본을 수집하여 지리적 다양성 보장
JetBrains의 설문조사 방법에 관한 정보는 설문조사 전용 섹션에서 알아볼 수 있습니다. 또한, 관심 있는 사람이면 누구나 보고서를 확인하거나 보고서에서 자신만의 인사이트를 도출할 수 있도록 설문조사의 익명화된 원시 데이터를 곧 게시할 예정입니다.
마지막으로, 유사한 설문조사를 진행하거나 커뮤니티에서 데이터 수집을 시작하고 싶다면 CppCon 2023에서 제가 진행한 강연인 Surveying the Community: What Could Possibly Go Wrong(커뮤니티 설문조사: 잘못된 결과를 도출하는 요인)을 시청해 보세요. 이 강연에서는 브랜딩, 타기팅 및 샘플링 편향을 없애는 방법을 포함하여 설문조사의 방법적 측면을 자세히 살펴보고, 적절하게 던져진 질문이 C++의 현실적 데이터를 어떻게 바꿀 수 있는지 알아봅니다.
여기서 논의한 데이터에 대해 질문이 있거나 최신 C++ 커뮤니티 동향에 대한 의견이 있으신가요? 그렇다면 댓글로 공유해주세요! 언제나 여러분의 생각을 환영합니다!
Subscribe to CLion Blog updates
Discover more
2023 年的 C++ 生态系统:C++20 增长、基于 Clang 的工具的更广泛采用、AI 赢得开发者信心
JetBrains 每年都会开展开发者生态系统调查来了解开发者社区概况。去年的调查已经结束,我们将在这里公布和分析结果! 2023 年最显著的趋势之一是 AI 在软件开发者中的更广泛使用,高达 77% 的开发者使用 ChatGPT 执行各种工作相关任务! 在编程语言方面,Objective-C 已是行将就木,Rust 今年则创下了新的受欢迎程度记录,C++ 和 C 在热门语言排行榜上分别位列第八和第十。 我们的报告中还有更多深入剖析,请继续阅读!
2023 年,我们收集了来自全球软件开发者的 34,493 份回复。 其中,2,627 位受访者表示 C++ 是其前三种主要语言之一。 我们仔细研究了原始数据,提取出有价值的见解并与您分享。 我们还邀请了几位社区成员发表评论,包括代表语言委员会和推动 C++ 发展的公司的知名专家。 我们感谢所有人对数据和发现的反馈:
-
- Inbal Levi,MPGC Services Ltd (Millennium) 首席软件工程师,WG21 委员会成员
- Bryce Adelstein Lelbach,NVIDIA 首席架构师
- Diego Rodriguez-Losada Gonzalez,Conan 团队 JFrog 的首席架构师
C++ 标准:C++20 作为基本方言
C++11 和 C++14 的下行趋势仍在继续,而随着人们迁移到 C++20 和 C++23,C++17 的增长也微乎其微。 明年,我们应该可以看到 C++20 和 C++23 的总占比超过 C++17。 这背后的部分驱动力是 C++ 会议一直倾向于讨论 C++20 和 C++23。
游戏开发行业似乎在采用较新的 C++ 标准方面领先一步。 在语言添加反射后,这种趋势可能会被放大。反射是游戏开发者最期待的语言功能之一,它对于对象序列化算法非常重要。 对了,您知不知道 Unreal Engine 是通过宏来模拟反射?
我们还回顾并比较了最近的语言标准在发布第一年和一年后的采用比例:
- C++17 在 2017 年占 12%,2018 年达到 18%。
- C++20 在 2020 年占 12%,2021 年达到 18%。
- C++23 在 2023 年占比为 10%,接下来就看它今年将达到多少了。
不打算迁移到新标准的人占 50% 左右,最高的数字 (57%) 来自仍在使用 C++98/C++03 的人。 这种现象并不新鲜,主要在于对旧编译器版本的需求,特别是在一些嵌入式项目中。
C++ 之外
去年,我透露 Python 是继 C++ 本身之后 C++ 开发者的头号伴侣,让 Jason Turner 吃了一惊。 2023 年,Python 仍然明显领先于 C:

在我的 C++ 开发经历中,Python 也被广泛用于包装项目模型,而且我知道许多游戏开发工作室仍然使用 Python 处理 .sln 文件。
对于 Rust,我们正在与 JetBrains RustRover 团队一起研究一个有趣的问题。 我们很想知道目前有多少 Rust 项目正在使用 C++,又有多少 C++ 项目正在使用 Rust。 大多数调查和 GitHub 扫描表明占比不超过 5%–10%,尽管像 Google 这样的大公司出于安全原因正在将其部分庞大代码库迁移到 Rust。 您对此有什么看法?
C++ 工具:主要参与者保持不变
首选 C++ IDE 和编辑器
大多数 C++ 开发者似乎都长期使用相同的几款 IDE 和编辑器:

在全功能 IDE 方面,CLion 和 Visual Studio 在市场上占据着相当的地位,智能编辑器 Visual Studio Code 与这两款产品不相上下。 我们很高兴能够参与这场竞赛,不断发展并为用户提供最佳体验。 (另外,您知道 Android Studio 使用 CLion 的 C++ 支持吗? 它在我们的源代码之上构建了一个专有组件。)
管理第三方库
第三方库管理仍是 C++ 中最大的挑战之一,即使这一挑战已经存在了 35 年。 在 C++ Foundation Annual C++ Developer Survey “Lite” 中,这个问题名列第一,被 47% 的受访者称为“主要痛点”。 这是因为 C++ 库难以定义,并且预构建的使用形式也很棘手。 但还有希望! 在 CppCon 2023 上,CMake 的 Bill Hoffman 和 Bloomberg 的 Bret Brown 讨论了 C++ 中依赖项管理的初始标准 – 描述预构建库的元数据文件。 他们的演讲 Libraries: A First Step Toward Standard C++ Dependency Management 已在 YouTube 上发布。
根据《2023 开发者生态系统调查》,我们发现从以下源构建库的人越来越少:

项目模型和构建系统
CMake 仍然高居榜首(尽管与 2022 年相比略有下降),而 msbuild 和 Makefiles 则持续下滑:
如 Bryce 指出的,Ninja 正在成长。 来自 C++ Foundation Annual C++ Developer Survey “Lite” 的数据显示了更大的上涨:
这可能是因为 C++ Foundation 的调查更频繁地告知受访者“勾选所有适用项”。 它还提出了更多专门针对构建工具的问题,一些选择 Ninja 的受访者必须将其用作构建工具而不是项目模型。
安全干净的 C++ 代码
代码分析工具可以帮助我们编写安全干净的 C++ 代码。 哪些分析工具在社区中最受欢迎?

基于 Clang 的工具当然会越来越受欢迎。
根本不使用代码分析的受访者比例保持在 30% 左右,而使用捆绑到 IDE 中的代码分析的受访者比例则有所下降。 为什么会这样?
CI 管道可能是部分原因。 不过,在集成到 CI/CD 管道中的代码分析方面,只有从 26% 到 27% 的轻微增长:

根据我们的调查数据,一半的受访者在编译阶段运行代码分析。 这是一个错失的机会,因为在“编写代码、检测错误、修正错误”循环中运行静态代码分析可以节省大量时间。 现在的工具可以带来绝佳结果! 例如,CLion 中最新的数据流分析能够捕获死代码、null 指针解引用、内存泄漏、悬空指针和数组索引问题。 阅读我们的博文系列了解详情:
AI 已经到来!
2023 年是我们在开发者生态系统调查中询问 AI 相关问题的第一年。 我们很想知道有多少开发者已经在工作中采用 AI,以及他们将哪些任务和功能委托给 AI。 我们发现的几个要点:
-
- 84% 的开发者或多或少熟悉生成式 AI 工具。
-
- 43% 的开发者计划在不久的将来尝试 AI 工具。 20% 的受访者表示,最大的担忧显然是安全问题。
-
- 最常见的是,开发者使用 AI 学习新事物、交流想法和总结内容。
开发者最耗时的活动是编写代码(排名第一,占 79%)和理解代码(排名第二,占 47%), 迅猛发展的 AI 显然已经在帮助开发者完成这两项任务。
JetBrains AI Assistant 现已正式推出,搭载大量新功能和改进,在 JetBrains IDE 中帮助您提高工作效率。在 CLion 中,AI Assistant 随时待命,它可以帮助您解释代码以及 CMake 和运行时错误、建议重构、生成文档和提交消息,并在上下文感知 AI 聊天中回答问题。 项目感知 AI 操作还可以利用扩展上下文提供更全面的结果。通过 JetBrains AI Service 订阅在 CLion 中以附加组件的形式使用 AI Assistant。
关于受众和调查方法
如果将 JetBrains 开发者生态系统调查中的 C++ 发现与 C++ Foundation Annual C++ Developer Survey “Lite” 中的发现进行比较,您可能会发现许多领域趋势相似,但也存在一些显著差异。 值得注意的一个重要事实是,C++ Foundation 调查的受众平均在 C++ 方面拥有更多经验:
JetBrains 研究人员每年都尽最大努力收集最多样化的数据,包括:
-
- 从学生到专业开发者,吸引具有不同经验的受访者。
-
- 将调查翻译成 10 种语言,供更多人参与。
-
- 通过从 17 个国家和地区收集足够大的样本来确保地理多样性。
您可以在调查的专属部分中了解我们的调查方法。 此外,我们将很快发布调查的匿名原始数据,让感兴趣的读者能够验证报告或从中构建自己的切片。
最后,如果您在进行类似调查或想开始从社区收集数据,您可以观看我在 CppCon 2023 上的演讲 Surveying the Community: What Could Possibly Go Wrong?。在演讲中,我深入分析了调查方法的各个方面,包括如何消除品牌、定位和抽样偏差,并探讨了正确的问题如何改变 C++ 现实中的数据。
您对我们讨论的数据有什么疑问或者对最新的 C++ 社区趋势有什么看法吗? 请在评论区分享! 我们始终欢迎您的反馈!
本博文英文原作者: