Home > Research > Publications & Outputs > Demystifying Practices, Challenges and Expected...

Associated organisational unit

Electronic data

  • IJSEKE (AuthorCopy)

    Accepted author manuscript, 1.54 MB, PDF document

    Available under license: CC BY: Creative Commons Attribution 4.0 International License

Links

Text available via DOI:

View graph of relations

Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot

Research output: Contribution to Journal/MagazineJournal articlepeer-review

E-pub ahead of print

Standard

Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot. / Zhang, Beiqi; Liang, Peng; Zhou, Xiyu et al.
In: International Journal of Software Engineering and Knowledge Engineering, 17.10.2023.

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Harvard

Zhang, B, Liang, P, Zhou, X, Ahmad, A & Waseem, M 2023, 'Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot', International Journal of Software Engineering and Knowledge Engineering. https://doi.org/10.1142/s0218194023410048

APA

Zhang, B., Liang, P., Zhou, X., Ahmad, A., & Waseem, M. (2023). Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot. International Journal of Software Engineering and Knowledge Engineering. Advance online publication. https://doi.org/10.1142/s0218194023410048

Vancouver

Zhang B, Liang P, Zhou X, Ahmad A, Waseem M. Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot. International Journal of Software Engineering and Knowledge Engineering. 2023 Oct 17. Epub 2023 Oct 17. doi: 10.1142/s0218194023410048

Author

Zhang, Beiqi ; Liang, Peng ; Zhou, Xiyu et al. / Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot. In: International Journal of Software Engineering and Knowledge Engineering. 2023.

Bibtex

@article{aa117d00e0b84a8a82bc8dad504bf5d3,
title = "Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot",
abstract = "With the advances in machine learning, there is a growing interest in AI-enabled tools for autocompleting source code. GitHub Copilot, also referred to as the “AI Pair Programmer”, has been trained on billions of lines of open source GitHub code, and is one of such tools that has been increasingly used since its launch in June 2021. However, little effort has been devoted to understanding the practices, challenges, and expected features of using Copilot in programming for auto-completed source code from the point of view of practitioners. To this end, we conducted an empirical study by collecting and analyzing the data from Stack Overflow (SO) and GitHub Discussions. More specifically, we searched and manually collected 303 SO posts and 927 GitHub discussions related to the usage of Copilot. We identified the programming languages, Integrated Development Environments (IDEs), technologies used with Copilot, functions implemented, benefits, limitations, and challenges when using Copilot. The results show that when practitioners use Copilot: (1) The major programming languages used with Copilot are JavaScript and Python, (2) the main IDE used with Copilot is Visual Studio Code, (3) the most common used technology with Copilot is Node.js, (4) the leading function implemented by Copilot is data processing, (5) the main purpose of users using Copilot is to help generate code, (6) the significant benefit of using Copilot is useful code generation, (7) the main limitation encountered by practitioners when using Copilot is difficulty of integration, and (8) the most common expected feature is that Copilot can be integrated with more IDEs. Our results suggest that using Copilot is like a double-edged sword, which requires developers to carefully consider various aspects when deciding whether or not to use it. Our study provides empirically grounded foundations that could inform software developers and practitioners, as well as provide a basis for future investigations on the role of Copilot as an AI pair programmer in software development.",
keywords = "Artificial Intelligence, Computer Graphics and Computer-Aided Design, Computer Networks and Communications, Software",
author = "Beiqi Zhang and Peng Liang and Xiyu Zhou and Aakash Ahmad and Muhammad Waseem",
year = "2023",
month = oct,
day = "17",
doi = "10.1142/s0218194023410048",
language = "English",
journal = "International Journal of Software Engineering and Knowledge Engineering",
issn = "0218-1940",
publisher = "World Scientific Publishing Co. Pte Ltd",

}

RIS

TY - JOUR

T1 - Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot

AU - Zhang, Beiqi

AU - Liang, Peng

AU - Zhou, Xiyu

AU - Ahmad, Aakash

AU - Waseem, Muhammad

PY - 2023/10/17

Y1 - 2023/10/17

N2 - With the advances in machine learning, there is a growing interest in AI-enabled tools for autocompleting source code. GitHub Copilot, also referred to as the “AI Pair Programmer”, has been trained on billions of lines of open source GitHub code, and is one of such tools that has been increasingly used since its launch in June 2021. However, little effort has been devoted to understanding the practices, challenges, and expected features of using Copilot in programming for auto-completed source code from the point of view of practitioners. To this end, we conducted an empirical study by collecting and analyzing the data from Stack Overflow (SO) and GitHub Discussions. More specifically, we searched and manually collected 303 SO posts and 927 GitHub discussions related to the usage of Copilot. We identified the programming languages, Integrated Development Environments (IDEs), technologies used with Copilot, functions implemented, benefits, limitations, and challenges when using Copilot. The results show that when practitioners use Copilot: (1) The major programming languages used with Copilot are JavaScript and Python, (2) the main IDE used with Copilot is Visual Studio Code, (3) the most common used technology with Copilot is Node.js, (4) the leading function implemented by Copilot is data processing, (5) the main purpose of users using Copilot is to help generate code, (6) the significant benefit of using Copilot is useful code generation, (7) the main limitation encountered by practitioners when using Copilot is difficulty of integration, and (8) the most common expected feature is that Copilot can be integrated with more IDEs. Our results suggest that using Copilot is like a double-edged sword, which requires developers to carefully consider various aspects when deciding whether or not to use it. Our study provides empirically grounded foundations that could inform software developers and practitioners, as well as provide a basis for future investigations on the role of Copilot as an AI pair programmer in software development.

AB - With the advances in machine learning, there is a growing interest in AI-enabled tools for autocompleting source code. GitHub Copilot, also referred to as the “AI Pair Programmer”, has been trained on billions of lines of open source GitHub code, and is one of such tools that has been increasingly used since its launch in June 2021. However, little effort has been devoted to understanding the practices, challenges, and expected features of using Copilot in programming for auto-completed source code from the point of view of practitioners. To this end, we conducted an empirical study by collecting and analyzing the data from Stack Overflow (SO) and GitHub Discussions. More specifically, we searched and manually collected 303 SO posts and 927 GitHub discussions related to the usage of Copilot. We identified the programming languages, Integrated Development Environments (IDEs), technologies used with Copilot, functions implemented, benefits, limitations, and challenges when using Copilot. The results show that when practitioners use Copilot: (1) The major programming languages used with Copilot are JavaScript and Python, (2) the main IDE used with Copilot is Visual Studio Code, (3) the most common used technology with Copilot is Node.js, (4) the leading function implemented by Copilot is data processing, (5) the main purpose of users using Copilot is to help generate code, (6) the significant benefit of using Copilot is useful code generation, (7) the main limitation encountered by practitioners when using Copilot is difficulty of integration, and (8) the most common expected feature is that Copilot can be integrated with more IDEs. Our results suggest that using Copilot is like a double-edged sword, which requires developers to carefully consider various aspects when deciding whether or not to use it. Our study provides empirically grounded foundations that could inform software developers and practitioners, as well as provide a basis for future investigations on the role of Copilot as an AI pair programmer in software development.

KW - Artificial Intelligence

KW - Computer Graphics and Computer-Aided Design

KW - Computer Networks and Communications

KW - Software

U2 - 10.1142/s0218194023410048

DO - 10.1142/s0218194023410048

M3 - Journal article

JO - International Journal of Software Engineering and Knowledge Engineering

JF - International Journal of Software Engineering and Knowledge Engineering

SN - 0218-1940

ER -