Skip to Main content Skip to Navigation
Conference papers

Does JavaScript software embrace classes?

Abstract : JavaScript is the de facto programming language for the Web. It is used to implement mail clients, office applications, or IDEs, that can weight hundreds of thousands of lines of code. The language itself is prototype based, but to master the complexity of their application, practitioners commonly rely on some informal class abstractions. This practice has never been the target of empirical investigations in JavaScript. Yet, understanding it would be key to adequately tune programming environments and structure libraries such as they are accessible to programmers. In this paper we report a large and in-depth study to understand how class emulation is employed in JavaScript applications. We propose a strategy to statically detect class-based abstractions in the source code of JavaScript systems. We used this strategy in a dataset of 50 popular JavaScript applications available from GitHub. We found systems structured around hundreds of classes, suggesting that JavaScript developers are standing on traditional class-based abstractions to tackle the growing complexity of their systems.
Document type :
Conference papers
Complete list of metadata

Cited literature [25 references]  Display  Hide  Download

https://hal.inria.fr/hal-01185854
Contributor : Lse Lse <>
Submitted on : Friday, August 21, 2015 - 4:59:10 PM
Last modification on : Friday, December 11, 2020 - 6:44:05 PM
Long-term archiving on: : Wednesday, April 26, 2017 - 10:08:14 AM

File

saner2015.pdf
Files produced by the author(s)

Licence


Copyright

Identifiers

Collections

Citation

Leonardo Humberto Silva, Miguel Ramos, Marco Tulio Valente, Alexandre Bergel, Nicolas Anquetil. Does JavaScript software embrace classes?. SANER 2015 : International Conference on Software Analysis, Evolution, and Reengineering, Mar 2015, Montreal, Canada. pp.73 - 82, ⟨10.1109/SANER.2015.7081817⟩. ⟨hal-01185854⟩

Share

Metrics

Record views

846

Files downloads

999