Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3239235.3239524acmconferencesArticle/Chapter ViewAbstractPublication PagesesemConference Proceedingsconference-collections
research-article

What do concurrency developers ask about?: a large-scale study using stack overflow

Published: 11 October 2018 Publication History
  • Get Citation Alerts
  • Abstract

    Background Software developers are increasingly required to write concurrent code. However, most developers find concurrent programming difficult. To better help developers, it is imperative to understand their interest and difficulties in terms of concurrency topics they encounter often when writing concurrent code.
    Aims In this work, we conduct a large-scale study on the textual content of the entirety of Stack Overflow to understand the interests and difficulties of concurrency developers.
    Method First, we develop a set of concurrency tags to extract concurrency questions that developers ask. Second, we use latent Dirichlet allocation (LDA) topic modeling and an open card sort to manually determine the topics of these questions. Third, we construct a topic hierarchy by repeated grouping of similar topics into categories and lower level categories into higher level categories. Fourth, we investigate the coincidence of our concurrency topics with findings of previous work. Fifth, we measure the popularity and difficulty of our concurrency topics and analyze their correlation. Finally, we discuss the implications of our findings.
    Results A few findings of our study are the following. (1) Developers ask questions about a broad spectrum of concurrency topics ranging from multithreading to parallel computing, mobile concurrency to web concurrency and memory consistency to run-time speedup. (2) These questions can be grouped into a hierarchy with eight major categories: concurrency models, programming paradigms, correctness, debugging, basic concepts, persistence, performance and GUI. (3) Developers ask more about correctness of their concurrent programs than performance. (4) Concurrency questions about thread safety and database management systems are among the most popular and the most difficult, respectively. (5) Difficulty and popularity of concurrency topics are negatively correlated.
    Conclusions The results of our study can not only help concurrency developers but also concurrency educators and researchers to better decide where to focus their efforts, by trading off one concurrency topic against another.

    References

    [1]
    Lada A. Adamic, Jun Zhang, Eytan Bakshy, and Mark S. Ackerman. Knowledge sharing and Yahoo Answers: Everyone knows something. In WWW '08.
    [2]
    Miltiadis Allamanis and Charles Sutton. Why, when, and what: analyzing Stack Overflow questions by topic, type, and code. In MSR '13.
    [3]
    Mehdi Bagherzadeh and Hridesh Rajan. Order types: Static reasoning about message races in asynchronous message passing concurrency. In AGERE '17.
    [4]
    Mehdi Bagherzadeh and Hridesh Rajan. Panini: A concurrent programming model for solving pervasive and oblivious interference. In MODULARITY '15.
    [5]
    Kartik Bajaj, Karthik Pattabiraman, and Ali Mesbah. Mining questions asked by web developers. In MSR 2014.
    [6]
    Sushil Krishna Bajracharya and Cristina Videira Lopes. Analyzing and mining a code search engine usage log. Empirical Softw. Engg. '12, 17(4-5).
    [7]
    Anton Barua, Stephen W Thomas, and Ahmed E Hassan. What are developers talking about? an analysis of topics and trends in Stack Overflow. Empirical Softw. Engg. '14, 19(3).
    [8]
    Lauren R. Biggers, Cecylia Bocovich, Riley Capshaw, Brian P. Eddy, Letha H. Etzkorn, and Nicholas A. Kraft. Configuring latent dirichlet allocation based feature location. Empirical Softw. Engg. '14, 19(3).
    [9]
    David M. Blei, Andrew Y. Ng, and Michael I. Jordan. Latent Dirichlet allocation. J. Mach. Learn. Res., 3:993--1022, March 2003.
    [10]
    Stefan Blom, Joseph Kiniry, and Marieke Huisman. How do developers use APIs? a case study in concurrency. In ICECCS '13.
    [11]
    Sally Fincher and Josh Tenenberg. Making sense of card sorting data. Expert Systems '05, 22(3).
    [12]
    Patrice Godefroid and Nachiappan Nagappan. Concurrency at Microsoft: An exploratory survey. In (EC)2 '08.
    [13]
    Zoltán Gyöngyi, Georgia Koutrika, Jan Pedersen, and Hector Garcia-Molina. Questioning Yahoo! Answers. In workshop on question answering on the Web '08.
    [14]
    A. Hindle, M. W. Godfrey, and R. C. Holt. What's hot and what's not: Windowed developer topic analysis. In ICSME '09.
    [15]
    Hugh C. Lauer and Roger M. Needham. On the duality of operating system structures. SIGOPS Oper. Syst. Rev. '79, 13(2).
    [16]
    Edward A. Lee. The problem with threads. Computer '06, 39(5).
    [17]
    Yu Lin, Semih Okur, and Danny Dig. Study and refactoring of Android asynchronous programming. In ASE '15.
    [18]
    Yuheng Long, Mehdi Bagherzadeh, Eric Lin, Ganesha Upadhyaya, and Hridesh Rajan. On ordering problems in message passing software. In MODULARITY '16.
    [19]
    Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. A comprehensive study on real world concurrency bug characteristics. In ASPLOS '08.
    [20]
    Lena Mamykina, Bella Manoim, Manas Mittal, George Hripcsak, and Björn Hartmann. Design lessons from the fastest qa site in the west. In CHI '11.
    [21]
    Andrew Kachites McCallum. MALLET: A machine learning for language toolkit.
    [22]
    Sarah Nadi, Stefan Krüger, Mira Mezini, and Eric Bodden. "Jumping through hoops": Why do Java developers struggle with cryptography APIs? In ICSE '16.
    [23]
    Stephan Neuhaus and Thomas Zimmermann. Security trend analysis with CVE topic models. In ISSRE '10.
    [24]
    Gustavo Pinto, Fernando Castor, and Yu David Liu. Mining questions about software energy consumption. In MSR 2014.
    [25]
    Gustavo Pinto, Weslley Torres, and Fernando Castor. A study on the most popular questions about concurrent programming. In PLATEAU '15.
    [26]
    Gustavo Pinto, Weslley Torres, Benito Fernandes, Fernando Castor, and Roberto S.M. Barros. A large-scale study on the usage of Java's concurrent programming constructs. J. Syst. Softw. '15, 106(C).
    [27]
    M. F. Porter. Readings in information retrieval. chapter An Algorithm for Suffix Stripping. Morgan Kaufmann Publishers Inc., 1997.
    [28]
    Christoffer Rosen and Emad Shihab. What are mobile developers asking about? a large scale study using Stack Overflow. Empirical Softw. Engg. '16, 21(3).
    [29]
    Stack Exchange Dump. https://archive.org/details/stackexchange, June 2017.
    [30]
    Stack Overflow. http://www.stackoverflow.com/, June 2017.
    [31]
    Christoph Treude, Ohad Barzilay, and Margaret-Anne Storey. How do programmers ask and answer questions on the web?: Nier track. In ICSE '11.
    [32]
    Shaowei Wang, Tse-Hsun Chen, and Ahmed E. Hassan. Understanding the factors for fast answers in technical qa websites: An empirical study of four stack exchange websites. In ICSE '18.
    [33]
    Claes Wohlin, Per Runeson, Martin Hst, Magnus C. Ohlsson, Bjrn Regnell, and Anders Wessln. Experimentation in Software Engineering. 2012.
    [34]
    Xin-Li Yang, David Lo, Xin Xia, Zhi-Yuan Wan, and Jian-Ling Sun. What security questions do developers ask? a large-scale study of Stack Overflow posts. JCST '16, 31(5).

    Cited By

    View all
    • (2024)What is discussed about Flutter on Stack Overflow (SO) question-and-answer (Q&A) website: An empirical studyJournal of Systems and Software10.1016/j.jss.2024.112089(112089)Online publication date: May-2024
    • (2024)Understanding the implementation issues when using deep learning frameworksInformation and Software Technology10.1016/j.infsof.2023.107367166:COnline publication date: 1-Feb-2024
    • (2024)Developers’ information seeking in Question & Answer websites through a gender lensJournal of Computer Languages10.1016/j.cola.2024.10126779(101267)Online publication date: Jun-2024
    • Show More Cited By

    Index Terms

    1. What do concurrency developers ask about?: a large-scale study using stack overflow

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        ESEM '18: Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement
        October 2018
        487 pages
        ISBN:9781450358231
        DOI:10.1145/3239235
        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Sponsors

        In-Cooperation

        • IEEE CS

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 11 October 2018

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. concurrency topic difficulty
        2. concurrency topic hierarchy
        3. concurrency topic popularity
        4. concurrency topics
        5. stack overflow

        Qualifiers

        • Research-article

        Conference

        ESEM '18
        Sponsor:

        Acceptance Rates

        Overall Acceptance Rate 130 of 594 submissions, 22%

        Upcoming Conference

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)119
        • Downloads (Last 6 weeks)3
        Reflects downloads up to 11 Aug 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2024)What is discussed about Flutter on Stack Overflow (SO) question-and-answer (Q&A) website: An empirical studyJournal of Systems and Software10.1016/j.jss.2024.112089(112089)Online publication date: May-2024
        • (2024)Understanding the implementation issues when using deep learning frameworksInformation and Software Technology10.1016/j.infsof.2023.107367166:COnline publication date: 1-Feb-2024
        • (2024)Developers’ information seeking in Question & Answer websites through a gender lensJournal of Computer Languages10.1016/j.cola.2024.10126779(101267)Online publication date: Jun-2024
        • (2024)An empirical study of challenges in machine learning asset managementEmpirical Software Engineering10.1007/s10664-024-10474-429:4Online publication date: 15-Jun-2024
        • (2024)How far are we with automated machine learning? characterization and challenges of AutoML toolkitsEmpirical Software Engineering10.1007/s10664-024-10450-y29:4Online publication date: 13-Jun-2024
        • (2023)Identification of mobile development issues using semantic topic modeling of Stack Overflow postsPeerJ Computer Science10.7717/peerj-cs.16589(e1658)Online publication date: 24-Oct-2023
        • (2023)What issues are data scientists talking about? Identification of current data science issues using semantic content analysis of Q&A communitiesPeerJ Computer Science10.7717/peerj-cs.13619(e1361)Online publication date: 18-May-2023
        • (2023)An Automatic Transformer from Sequential to Parallel Java CodeFuture Internet10.3390/fi1509030615:9(306)Online publication date: 8-Sep-2023
        • (2023)Reactive Programming with Swift Combine: An Analysis of Problems Faced by Developers on Stack OverflowProceedings of the XXXVII Brazilian Symposium on Software Engineering10.1145/3613372.3613381(109-115)Online publication date: 25-Sep-2023
        • (2023)Understanding the Topics and Challenges of GPU Programming by Classifying and Analyzing Stack Overflow PostsProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616365(1444-1456)Online publication date: 30-Nov-2023
        • Show More Cited By

        View Options

        Get Access

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media