A great part of software development involves conceptualizing or communicating the underlying procedures and logic that needs to be expressed in programs. One major difficulty of programming is turning concept into code, especially when dealing with the APIs of unfamiliar libraries. Recently, there has been a proliferation of machine learning methods for code generation and retrieval from natural language queries, but these have primarily been evaluated purely based on retrieval accuracy or overlap of generated code with developer-written code, and the actual effect of these methods on the developer workflow is surprisingly unattested. We perform the first comprehensive investigation of the promise and challenges of using such technology inside the IDE, asking "at the current state of technology does it improve developer productivity or accuracy, how does it affect the developer experience, and what are the remaining gaps and challenges?" We first develop a plugin for the IDE that implements a hybrid of code generation and code retrieval functionality, and orchestrate virtual environments to enable collection of many user events. We ask developers with various backgrounds to complete 14 Python programming tasks ranging from basic file manipulation to machine learning or data visualization, with or without the help of the plugin. While qualitative surveys of developer experience are largely positive, quantitative results with regards to increased productivity, code quality, or program correctness are inconclusive. Analysis identifies several pain points that could improve the effectiveness of future machine learning based code generation/retrieval developer assistants, and demonstrates when developers prefer code generation over code retrieval and vice versa. We release all data and software to pave the road for future empirical studies and development of better models.


翻译:软件开发的一大部分涉及概念化或传达需要在程序中表达的基本程序和逻辑; 编程的一个主要困难是将概念转化为代码, 特别是在处理不熟悉的图书馆的API时。 最近, 代码生成和从自然语言查询中检索代码的机器学习方法激增, 但是这些方法主要是纯粹根据生成代码与开发者编写的代码的检索准确性或重叠性进行评估, 而这些方法对开发者工作流程的实际影响令人惊讶地没有得到检验。 我们对在 IDE 中使用这类技术的前景和挑战进行首次全面调查, 要求“ 在目前技术状态下, 它能够提高开发者的生产率或准确性, 如何影响开发者的经验, 以及尚存的差距和挑战是什么? 我们首先为 IDE 开发了一个插件, 实施代码生成代码和代码的混合, 并设计虚拟环境, 以便收集许多用户事件。 我们要求不同背景的开发者完成14项Pythonon编程任务, 从基本文件操作到机器的检索或数据可视化, 以及或不帮助插件。 质量模型的定性调查对开发者进行质量和数据生成过程进行基本分析, 质量分析时, 质量分析, 和数据生成数据生成程序可以确认。

0
下载
关闭预览

相关内容

机器学习(Machine Learning)是一个研究计算学习方法的国际论坛。该杂志发表文章,报告广泛的学习方法应用于各种学习问题的实质性结果。该杂志的特色论文描述研究的问题和方法,应用研究和研究方法的问题。有关学习问题或方法的论文通过实证研究、理论分析或与心理现象的比较提供了坚实的支持。应用论文展示了如何应用学习方法来解决重要的应用问题。研究方法论文改进了机器学习的研究方法。所有的论文都以其他研究人员可以验证或复制的方式描述了支持证据。论文还详细说明了学习的组成部分,并讨论了关于知识表示和性能任务的假设。 官网地址:http://dblp.uni-trier.de/db/journals/ml/
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
149+阅读 · 2019年10月12日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
计算机类 | PLDI 2020等国际会议信息6条
Call4Papers
3+阅读 · 2019年7月8日
CCF推荐 | 国际会议信息10条
Call4Papers
8+阅读 · 2019年5月27日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
计算机 | CCF推荐期刊专刊信息5条
Call4Papers
3+阅读 · 2019年4月10日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
人工智能 | 国际会议信息10条
Call4Papers
5+阅读 · 2018年12月18日
推荐|Andrew Ng计算机视觉教程总结
全球人工智能
3+阅读 · 2017年11月23日
计算机类 | 国际会议信息7条
Call4Papers
3+阅读 · 2017年11月17日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
Arxiv
1+阅读 · 2021年11月15日
Arxiv
10+阅读 · 2020年11月26日
Generative Adversarial Networks: A Survey and Taxonomy
VIP会员
相关资讯
计算机类 | PLDI 2020等国际会议信息6条
Call4Papers
3+阅读 · 2019年7月8日
CCF推荐 | 国际会议信息10条
Call4Papers
8+阅读 · 2019年5月27日
计算机 | 中低难度国际会议信息6条
Call4Papers
7+阅读 · 2019年5月16日
计算机 | CCF推荐期刊专刊信息5条
Call4Papers
3+阅读 · 2019年4月10日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
人工智能 | 国际会议信息10条
Call4Papers
5+阅读 · 2018年12月18日
推荐|Andrew Ng计算机视觉教程总结
全球人工智能
3+阅读 · 2017年11月23日
计算机类 | 国际会议信息7条
Call4Papers
3+阅读 · 2017年11月17日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
Top
微信扫码咨询专知VIP会员