[论文解读] Software Engineering for Quantum Programming: How Far Are We?
本文通过两项研究探讨了当前量子编程的现状:一是利用 Qiskit、Cirq 和 Q# 对 GitHub 代码库进行挖掘,分析使用模式;二是对 56 名活跃的量子开发者进行调查。研究发现,量子编程主要应用于教学和实验,面临的技术与社会技术领域挑战众多,表明量子软件工程仍处于早期发展阶段。
Quantum computing is no longer only a scientific interest but is rapidly becoming an industrially available technology that can potentially overcome the limits of classical computation. Over the last years, all major companies have provided frameworks and programming languages that allow developers to create their quantum applications. This shift has led to the definition of a new discipline called quantum software engineering, which is demanded to define novel methods for engineering large-scale quantum applications. While the research community is successfully embracing this call, we notice a lack of systematic investigations into the state of the practice of quantum programming. Understanding the challenges that quantum developers face is vital to precisely define the aims of quantum software engineering. Hence, in this paper, we first mine all the GitHub repositories that make use of the most used quantum programming frameworks currently on the market and then conduct coding analysis sessions to produce a taxonomy of the purposes for which quantum technologies are used. In the second place, we conduct a survey study that involves the contributors of the considered repositories, which aims to elicit the developers' opinions on the current adoption and challenges of quantum programming. On the one hand, the results highlight that the current adoption of quantum programming is still limited. On the other hand, there are many challenges that the software engineering community should carefully consider: these do not strictly pertain to technical concerns but also socio-technical matters.
研究动机与目标
- 通过使用最广泛使用的量子框架,评估量子编程在现实世界软件项目中的当前采用情况。
- 识别开发者当前使用量子技术的主要目的。
- 揭示量子程序员在实际使用主流框架时面临的技术与社会技术挑战。
- 提供实证洞察,以指导未来量子软件工程领域的工具开发与支持。
提出的方法
- 使用针对 Qiskit、Cirq 和 Q# 的搜索模式,对大规模 GitHub 代码库进行挖掘,以识别活跃的量子编程项目。
- 对挖掘出的代码库进行手动编码分析,以分类量子编程使用的具体目的。
- 向 56 名活跃的开源量子项目贡献者(贡献 ≥10 次提交)发放调查问卷,以收集关于挑战与实践的见解。
- 构建并验证了两个分类体系:一个用于量子编程采用目的的分类,另一个用于开发者所面临挑战的分类。
- 采用迭代的、多作者的编码与聚合流程,以确保分类体系构建的可靠性并减少主观性。
- 将所有研究材料与数据发布于在线附录,以支持可复现性与未来研究。

实验结果
研究问题
- RQ1在现实世界项目中,量子编程当前主要用于哪些主要目的?
- RQ2量子开发者在使用主流框架时,面临哪些技术和社会技术挑战?
- RQ3在三种最受欢迎的量子框架 Qiskit、Cirq 和 Q# 中,使用模式与挑战有何差异?
主要发现
- GitHub 上的大多数量子编程项目用于教学目的或个人实验,表明其在工业界或生产级应用中的采用程度有限。
- 在联系的 905 名开发者中,仅有 56 人回复调查,回复率为 6.1%,在软件工程调查研究中被认为是可以接受的。
- 目的分类体系显示,大多数项目并非用于构建生产系统,而是作为学习工具、概念验证实现或教育演示。
- 开发者报告称,不仅在理解量子理论和程序理解方面存在显著挑战,工具链、调试和协作方面也面临困难,凸显了社会技术障碍的存在。
- 研究发现,量子编程在软件工程支持方面存在明显缺口,开发者在基本编码之外的程序分析、测试和理解方面面临困难。
- 研究结果表明,量子软件工程仍远未成熟,技术局限性和人为因素共同阻碍了其发展。

更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。