ANALYZING STACK OVERFLOW DISCUSSIONS ON C, JAVA, AND PYTHON: A MIXED-METHOD STUDY ON QUESTION TYPES AND TOPICS - Nugroho, Yusuf Sulistyo; Minalloh, Aldin Nasrun; Devi, Keke Rachma; Islam, Syful (Jurnal Teknik Informatika (Jutif), 2024)
The modern software development characteristic is significantly shaped by the evolution of programming languages. The increasing complexity of these languages demands effective tools and resources for learning and troubleshooting. As a result, forums such as Stack Overflow (SO) have become crucial for addressing technical issues that arise during program execution, especially for novice programmers. Although discussions on SO are common, there hasn't been a clear description of the question types and topics for the three main programming languages, i.e., C, Java, and Python. This gap is problematic as it limits the ability of educators, platform designers, and developers to effectively address the specific needs of users. Without such insights, novice programmers may struggle to find relevant guidance, potentially hindering their learning and slowing the adoption of best practices. To fill this gap, we conducted a qualitative and quantitative study on these three language-related discussions shared on SO. By utilizing a dataset of 4,499,718 questions extracted from SOTorrent, we applied a manual labeling method to classify questions into categories such as “How,” “What,” and “Why.” Furthermore, we implemented Latent Dirichlet Allocation (LDA) for topic modeling to understand the prevalent discussion topics. The results show that “How” questions dominate across all languages, particularly in Python (60.94%), reflecting a high demand for practical implementation guidance. Analysis of discussion topics indicates that C is centered on system programming and low-level operations, while Java discusses more on application development and object-oriented programming. In contrast, Python focuses more on data handling and structures. These insights suggest that while practical support is necessary for learners, a deeper understanding of programming concepts and the need for customized instructional resources to support developers are important. The findings contribute to the community and relevant fields by offering actionable insights to improve the usability of SO as a learning and problem-solving platform.