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
Leggibilità e Comprensibilità dei Frammenti di Codice Consigliati dai Motori di Ricerca Web Generici: uno Studio Comparativo
Gli sviluppatori cercano frequentemente frammenti di codice riutilizzabili su motori di ricerca generici come Google, Yahoo! o Microsoft Bing. Tuttavia, questi frammenti di codice potrebbero avere una qualità inferiore in termini di leggibilità o comprensibilità. Questo articolo presenta un'analisi empirica che utilizza tre variabili indipendenti (ranking, motore di ricerca generico e sito web consigliato) per analizzare i punteggi di leggibilità e comprensibilità dei frammenti di codice estratti dal web. Lo studio ha raccolto i primi 5 siti web consigliati da Google, Yahoo! e Bing per 9.480 query e i corrispondenti frammenti di codice consigliati, valutandone i punteggi di leggibilità e comprensibilità. Lo studio ha rilevato che alcuni siti web consigliati hanno punteggi di leggibilità e comprensibilità significativamente superiori rispetto ad altri. I frammenti di codice con ranking più alto non sono necessariamente più leggibili o comprensibili rispetto a quelli con ranking più basso su tutti i motori di ricerca generici. Inoltre, in termini di punteggi di leggibilità, Google ha un ranking migliore dei frammenti di codice rispetto a Yahoo! o Microsoft Bing.
Problema Centrale: I frammenti di codice consigliati dai motori di ricerca generici presentano variazioni di qualità in termini di leggibilità e comprensibilità, e i frammenti con ranking più alto non hanno necessariamente una qualità superiore
Esigenza Pratica: Gli sviluppatori utilizzano ampiamente i motori di ricerca generici per trovare esempi di codice, ma manca una valutazione sistematica della qualità di questi frammenti
Limitazioni dei Motori di Ricerca: Sebbene Google utilizzi oltre 200 fattori di ranking, le pagine con ranking più alto potrebbero contenere esempi di codice di qualità inferiore
Il riutilizzo di frammenti di codice può ridurre il tempo delle attività di programmazione e accelerare il processo di sviluppo
Google possiede oltre il 90% della quota di mercato dei motori di ricerca, ma la qualità del ranking del codice su altri motori di ricerca rimane sconosciuta
È necessario comprendere la relazione reciproca tra leggibilità e comprensibilità: la leggibilità è associata alla comprensione sintattica, mentre la comprensibilità è associata agli aspetti semantici
L'articolo cita un caso di studio di Hora: quando si cerca "File.mkdirs examples" su Google, il frammento di codice di Tutorialspoint, sebbene abbia indicatori di leggibilità e riutilizzabilità inferiori, ha un ranking più alto perché contiene spiegazioni in linguaggio naturale simili alla query.
Primo Studio Comparativo Sistematico: Analisi comparativa su larga scala della leggibilità e comprensibilità dei frammenti di codice consigliati da tre principali motori di ricerca: Google, Yahoo! e Microsoft Bing
Costruzione di Dataset su Larga Scala: Raccolta di 47.400 link web da 9.480 query, coprendo 5.355 siti web diversi
Framework di Analisi Multidimensionale: Proposta di un metodo di analisi basato su tre variabili indipendenti: ranking, motore di ricerca e sito web consigliato
Risultati Empirici: Conferma di due importanti ipotesi: i frammenti di codice con ranking più alto non hanno necessariamente leggibilità/comprensibilità superiore; esiste una variazione significativa della qualità del codice tra i diversi siti web consigliati
Standardizzazione della Metrica di Comprensibilità: Proposta di un metodo standardizzato per convertire la complessità cognitiva nell'intervallo 0,1
Input: Dichiarazioni di query correlate alla programmazione
Output: Punteggi di leggibilità e comprensibilità dei frammenti di codice
Vincoli: Analisi solo di frammenti di codice Java, considerando i primi 5 risultati di ricerca
Paradosso del Ranking: Il ranking del motore di ricerca non è completamente correlato alla qualità del codice, i frammenti Top-2 e Top-3 potrebbero avere una qualità superiore
Differenze tra Motori di Ricerca: Google ha le migliori prestazioni in termini di leggibilità, ma il vantaggio è limitato
Differenziazione della Qualità del Sito Web: Esiste una variazione significativa della qualità tra i diversi siti web consigliati, i siti di tutorial (GeeksforGeeks) hanno una leggibilità superiore
Limitazioni della Comprensibilità: La metrica di comprensibilità attuale ha una capacità di discriminazione limitata per frammenti di codice semplici
Guida per gli Sviluppatori: Si consiglia di dare priorità ai frammenti di codice da siti di tutorial come GeeksforGeeks
Strategia di Ricerca: Non si dovrebbe fare affidamento solo sul ranking per selezionare i frammenti di codice, è necessario considerare complessivamente le metriche di qualità
Miglioramento degli Strumenti: Fornire standard di riferimento per la valutazione della qualità ai motori di ricerca di codice
Contributo Accademico: Fornisce nuova prospettiva per la ricerca sulla ricerca di codice e l'ingegneria del software
Guida Pratica: Influenza direttamente il comportamento di ricerca del codice degli sviluppatori
Miglioramento degli Strumenti: Fornisce base per l'ottimizzazione degli algoritmi di ranking dei motori di ricerca e dei sistemi di raccomandazione del codice
Ricerca Successiva: Pone le basi per la ricerca in campi correlati
L'articolo cita 23 articoli correlati, principalmente includenti:
Metodi di misurazione della leggibilità e comprensibilità del codice
Ricerca su sistemi di ricerca e raccomandazione di codice
Analisi della qualità del codice di StackOverflow
Ricerca sui meccanismi di ranking dei motori di ricerca
Valutazione Complessiva: Questo è un articolo di ricerca empirica di alta qualità nell'ingegneria del software, che colma il vuoto nella ricerca sulla valutazione della qualità della ricerca di codice, con importante valore teorico e pratico. Il metodo di ricerca è scientificamente rigoroso, la scala dei dati è sufficiente, l'affidabilità delle conclusioni è elevata, fornendo intuizioni preziose per sviluppatori e ricercatori.