Time present and time past: Analyzing the evolution of javascript code in the wild

Dimitris Mitropoulos, Panos Louridas, Vitalis Salis, Diomidis Spinellis

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

4 Citations (Scopus)

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.

Original languageEnglish
Title of host publicationProceedings - 2019 IEEE/ACM 16th International Conference on Mining Software Repositories, MSR 2019
PublisherIEEE
Pages126-137
Number of pages12
ISBN (Electronic)9781728134123
DOIs
Publication statusPublished - May 2019
Externally publishedYes
Event16th IEEE/ACM International Conference on Mining Software Repositories, MSR 2019 - Montreal, Canada
Duration: 26 May 201927 May 2019

Publication series

NameIEEE International Working Conference on Mining Software Repositories
Volume2019-May
ISSN (Print)2160-1852
ISSN (Electronic)2160-1860

Conference

Conference16th IEEE/ACM International Conference on Mining Software Repositories, MSR 2019
CountryCanada
CityMontreal
Period26/05/1927/05/19

Keywords

  • Bug Persistence
  • Code Reuse
  • JavaScript
  • Software Evolution

Fingerprint Dive into the research topics of 'Time present and time past: Analyzing the evolution of javascript code in the wild'. Together they form a unique fingerprint.

Cite this