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/
剑桥大学《数据科学: 原理与实践》课程,附PPT下载
专知会员服务
49+阅读 · 2021年1月20日
【EMNLP2020】自然语言生成,Neural Language Generation
专知会员服务
38+阅读 · 2020年11月20日
【Facebook AI】低资源机器翻译,74页ppt
专知会员服务
29+阅读 · 2020年4月8日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
151+阅读 · 2019年10月12日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
39+阅读 · 2019年10月9日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
103+阅读 · 2019年10月9日
已删除
将门创投
5+阅读 · 2019年3月29日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
深度学习NLP相关资源大列表
机器学习研究会
3+阅读 · 2017年9月17日
Arxiv
0+阅读 · 2021年3月19日
Arxiv
4+阅读 · 2018年5月10日
VIP会员
相关VIP内容
相关资讯
已删除
将门创投
5+阅读 · 2019年3月29日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
深度学习NLP相关资源大列表
机器学习研究会
3+阅读 · 2017年9月17日
Top
微信扫码咨询专知VIP会员