Exploring API Deprecation Evolution in Java']JavaScript

被引:3
|
作者
Nascimento, Romulo [1 ]
Hora, Andre [1 ]
Figueiredo, Eduardo [1 ]
机构
[1] Univ Fed Minas Gerais, Dept Comp Sci, Belo Horizonte, MG, Brazil
关键词
API deprecation; !text type='Java']Java[!/text]Script library; Software evolution; Software maintenance; Software mining;
D O I
10.1109/SANER53432.2022.00031
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Building an application using third-party libraries is a common practice in software development. As any other system, software libraries and their APIs evolve. To support version migration and ensure backward compatibility, a recommended practice during development is to deprecate API. Different from other popular programming languages such as Java and C#, JavaScript has no native support to deprecate API elements. However, several strategies are commonly adopted to communicate that an API should be avoided, such as the project documentation, JSDoc annotation, code comment, console message, and deprecation utility. Indeed, there have been many studies on deprecation strategies and evolution mostly on Java, C#, and Python. However, to the best of our knowledge, there are no detailed studies aiming at analyzing how API deprecation changes over time in the JavaScript ecosystem. This paper provides an empirical study on how API deprecation evolves in JavaScript by analyzing 1,918 releases of 50 popular packages. Results show that close to 60% have rising trends in the number of deprecated APIs, while only 9.4% indicate a downward trend. Also, most deprecation occurrences are both added and removed on minor releases instead of removed on major releases, as recommended by best practices.
引用
收藏
页码:169 / 173
页数:5
相关论文
共 50 条
  • [1] Exploring API Deprecation Evolution in JavaScript
    Nascimento, Romulo
    Hora, Andre
    Figueiredo, Eduardo
    Proceedings - 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2022, 2022, : 169 - 173
  • [2] Java']JavaScript API Deprecation in the Wild: A First Assessment
    Nascimento, Romulo
    Brito, Aline
    Hora, Andre
    Figueiredo, Eduardo
    PROCEEDINGS OF THE 2020 IEEE 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER '20), 2020, : 567 - 571
  • [3] Java']JavaScript API Deprecation Landscape: A Survey and Mining Study
    Nascimento, Romulo
    Figueiredo, Eduardo
    Hora, Andre
    IEEE SOFTWARE, 2022, 39 (03) : 96 - 105
  • [4] Mining API Type Specifications for Java']JavaScript
    Wang, Shuai
    Dou, Wensheng
    Gao, Chushu
    Wei, Jun
    Huang, Tao
    2017 24TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2017), 2017, : 368 - 377
  • [5] Statically Checking Web API Requests in Java']JavaScript
    Wittern, Erik
    Ying, Annie T. T.
    Zheng, Yunhui
    Dolby, Julian
    Laredo, Jim A.
    2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2017, : 244 - 254
  • [6] The Lifetime of Android API Vulnerabilities: Case Study on the Java']JavaScript-to-Java']Java Interface
    Thomas, Daniel R.
    Beresford, Alastair R.
    Coudray, Thomas
    Sutcliffe, Tom
    Taylor, Adrian
    SECURITY PROTOCOLS XXIII, 2015, 9379 : 126 - 138
  • [7] A Formal Model for Checking Cryptographic API Usage in Java']JavaScript
    Mitchell, Duncan
    Kinder, Johannes
    COMPUTER SECURITY - ESORICS 2019, PT I, 2019, 11735 : 341 - 360
  • [8] Analyzing the Evolution of Java']Javascript Applications
    Chatzimparmpas, Angelos
    Bibi, Stamatia
    Zozas, Ioannis
    Kerren, Andreas
    PROCEEDINGS OF THE 14TH INTERNATIONAL CONFERENCE ON EVALUATION OF NOVEL APPROACHES TO SOFTWARE ENGINEERING (ENASE), 2019, : 359 - 366
  • [9] The Lifetime of Android API Vulnerabilities: Case Study on the Java']JavaScript-to-Java']Java Interface (Transcript of Discussion)
    Thomas, Daniel R.
    SECURITY PROTOCOLS XXIII, 2015, 9379 : 139 - 144
  • [10] To react, or not to react: Patterns of reaction to API deprecation
    Sawant, Anand Ashok
    Robbes, Romain
    Bacchelli, Alberto
    EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (06) : 3824 - 3870