Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study
Dantas, Maia
Developers often search for reusable code snippets on general-purpose web search engines like Google, Yahoo! or Microsoft Bing. But some of these code snippets may have poor quality in terms of readability or understandability. In this paper, we propose an empirical analysis to analyze the readability and understandability score from snippets extracted from the web using three independent variables: ranking, general-purpose web search engine, and recommended site. We collected the top-5 recommended sites and their respective code snippet recommendations using Google, Yahoo!, and Bing for 9,480 queries, and evaluate their readability and understandability scores. We found that some recommended sites have significantly better readability and understandability scores than others. The better-ranked code snippet is not necessarily more readable or understandable than a lower-ranked code snippet for all general-purpose web search engines. Moreover, considering the readability score, Google has better-ranked code snippets compared to Yahoo! or Microsoft Bing
academic
Lisibilité et Compréhensibilité des Extraits Recommandés par les Moteurs de Recherche Web Généralistes : une Étude Comparative
Les développeurs recherchent fréquemment des extraits de code réutilisables sur des moteurs de recherche généralistes tels que Google, Yahoo! ou Microsoft Bing. Cependant, ces extraits de code peuvent présenter une qualité médiocre en termes de lisibilité ou de compréhensibilité. Cet article propose une analyse empirique utilisant trois variables indépendantes (classement, moteur de recherche généraliste et site web recommandé) pour analyser les scores de lisibilité et de compréhensibilité des extraits de code extraits du web. L'étude a collecté les 5 premiers sites web recommandés par Google, Yahoo! et Bing pour 9 480 requêtes ainsi que leurs extraits de code correspondants, et a évalué leurs scores de lisibilité et de compréhensibilité. L'étude révèle que certains sites web recommandés surpassent significativement les autres en termes de scores de lisibilité et de compréhensibilité. Les extraits de code mieux classés ne sont pas nécessairement plus lisibles ou compréhensibles que ceux moins bien classés sur tous les moteurs de recherche généralistes. De plus, en matière de scores de lisibilité, Google offre un meilleur classement des extraits de code que Yahoo! ou Microsoft Bing.
Problème central: Les extraits de code recommandés par les moteurs de recherche généralistes présentent des variations de qualité en termes de lisibilité et de compréhensibilité, et les extraits mieux classés ne sont pas nécessairement de meilleure qualité
Besoin pratique: Les développeurs utilisent largement les moteurs de recherche généralistes pour trouver des exemples de code, mais il manque une évaluation systématique de la qualité de ces extraits
Limitations des moteurs de recherche: Bien que Google dispose de plus de 200 facteurs de classement, les pages mieux classées peuvent contenir des exemples de code de qualité médiocre
La réutilisation d'extraits de code peut réduire le temps des tâches de programmation et accélérer le processus de développement
Google détient plus de 90% de la part de marché des moteurs de recherche, mais la qualité du classement des codes sur les autres moteurs de recherche reste inconnue
Il est nécessaire de comprendre la relation mutuelle entre lisibilité et compréhensibilité : la lisibilité est associée à la compréhension syntaxique, tandis que la compréhensibilité concerne les aspects sémantiques
L'article cite un cas d'étude de Hora : lors de la recherche « File.mkdirs examples » sur Google, l'extrait de code de Tutorialspoint, bien que présentant des indicateurs de lisibilité et de réutilisabilité médiocres, est mieux classé en raison de l'inclusion d'explications en langage naturel similaires à la requête.
Première étude comparative systématique: Analyse comparative à grande échelle de la lisibilité et de la compréhensibilité des extraits de code recommandés par trois grands moteurs de recherche : Google, Yahoo! et Microsoft Bing
Construction d'un ensemble de données à grande échelle: Collecte de 47 400 liens web pour 9 480 requêtes, couvrant 5 355 sites web distincts
Cadre d'analyse multidimensionnel: Proposition d'une méthode d'analyse basée sur trois variables indépendantes : classement, moteur de recherche et site web recommandé
Découvertes empiriques: Confirmation de deux hypothèses importantes : les extraits de code mieux classés ne possèdent pas nécessairement une lisibilité/compréhensibilité supérieure ; il existe des différences significatives de qualité de code entre les sites web recommandés
Standardisation des mesures de compréhensibilité: Proposition d'une méthode de normalisation convertissant la complexité cognitive en intervalle 0,1
Entrée: Requêtes liées à la programmation
Sortie: Scores de lisibilité et de compréhensibilité des extraits de code
Contraintes: Analyse uniquement des extraits de code Java, considération des 5 premiers résultats de recherche
Utilisation du modèle prédictif proposé par Scalabrino et al.
Inclusion d'indicateurs tels que les commentaires, la cohérence des identificateurs, la cohérence textuelle, la quantité de significations et les concepts
Plage de sortie : 0,1, où 0 indique une faible lisibilité et 1 une lisibilité élevée
Mesure de compréhensibilité:
Basée sur la complexité cognitive proposée par Campbell
Paradoxe du classement: Le classement des moteurs de recherche n'est pas complètement corrélé à la qualité du code, les extraits Top-2 et Top-3 peuvent avoir une qualité supérieure
Différences entre moteurs de recherche: Google offre les meilleures performances en lisibilité, mais l'avantage est limité
Différenciation de la qualité des sites web: Il existe des différences significatives de qualité entre les sites web recommandés, les sites tutoriels (GeeksforGeeks) offrant une meilleure lisibilité
Limitations de compréhensibilité: L'indicateur de compréhensibilité actuel a une capacité de discrimination limitée pour les extraits de code simples
Orientation pour les développeurs: Recommandation de donner la priorité aux extraits de code des sites tutoriels tels que GeeksforGeeks
Stratégie de recherche: Ne pas se fier uniquement au classement pour sélectionner les extraits de code, considérer les indicateurs de qualité de manière globale
Amélioration des outils: Fourniture de normes de référence pour l'évaluation de la qualité des moteurs de recherche de code
Contribution académique: Nouvelle perspective pour la recherche en recherche de code et ingénierie logicielle
Orientation pratique: Impact direct sur le comportement de recherche de code des développeurs
Amélioration des outils: Fondement pour l'optimisation des algorithmes de classement des moteurs de recherche et des systèmes de recommandation de code
Recherche ultérieure: Base pour la recherche dans les domaines connexes
Méthodes de mesure de la lisibilité et de la compréhensibilité du code
Recherche sur les systèmes de recherche et de recommandation de code
Analyse de la qualité du code StackOverflow
Recherche sur les mécanismes de classement des moteurs de recherche
Évaluation Globale: Cet article est une recherche empirique en ingénierie logicielle de haute qualité qui comble un vide dans l'évaluation de la qualité de la recherche de code. Il possède une valeur théorique et pratique importante. La méthodologie de recherche est scientifiquement rigoureuse, l'échelle des données est suffisante, la fiabilité des conclusions est élevée, et elle fournit des perspectives précieuses aux développeurs et aux chercheurs.