Title
Time present and time past: analyzing the evolution of JavaScript code in the wild
Abstract
JavaScript is one of the web's key building blocks. It is used by the majority of web sites and it is supported by all modern browsers. We present the first large-scale study of client-side JavaScript code over time. Specifically, we have collected and analyzed a dataset containing daily snapshots of JavaScript code coming from Alexa's Top 10000 web sites (~7.5 GB per day) for nine consecutive months, to study different temporal aspects of web client code. We found that scripts change often; typically every few days, indicating a rapid pace in web applications development. We also found that the lifetime of web sites themselves, measured as the time between JavaScript changes, is also short, in the same time scale. We then performed a qualitative analysis to investigate the nature of the changes that take place. We found that apart from standard changes such as the introduction of new functions, many changes are related to online configuration management. In addition, we examined JavaScript code reuse over time and especially the widespread reliance on third-party libraries. Furthermore, we observed how quality issues evolve by employing established static analysis tools to identify potential software bugs, whose evolution we tracked over time. Our results show that quality issues seem to persist over time, while vulnerable libraries tend to decrease.
Year
DOI
Venue
2019
10.1109/MSR.2019.00029
Proceedings of the 16th International Conference on Mining Software Repositories
Keywords
Field
DocType
JavaScript, bug persistence, code reuse, software evolution
Static program analysis,World Wide Web,Computer science,Software bug,Configuration management,Code reuse,Web application,Software evolution,Database,Scripting language,JavaScript
Conference
ISSN
ISBN
Citations 
2574-3848
978-1-7281-3370-6
1
PageRank 
References 
Authors
0.35
22
4
Name
Order
Citations
PageRank
Dimitris Mitropoulos19015.14
Panos Louridas24911.16
Vitalis Salis310.35
Diomidis Spinellis42023178.89