SlideShare a Scribd company logo
JavaScript API Deprecation in the
Wild: A First Assessment
Romulo Nascimento, Aline Brito, Andre Hora, Eduardo Figueiredo
IEEE SANER 2020
Motivation
JavaScript is the most popular
programming language for the seventh
consecutive year
2
Motivation
GitHub also reports JavaScript as a
popular language
3
There are several JavaScript libraries
Lodash
Axios Angular
4
There are several JavaScript libraries
Lodash
Axios Angular
5
Library for
static analysis
There are several JavaScript libraries
Lodash
Angular
6
HTTP client
Axios
There are several JavaScript libraries
Axios Angular
7
Utility library
Lodash
Library services are provided via APIs
8
Libraries and their APIs evolve over time
9
API Deprecation
Deprecation mechanisms help clients to
migrate to new API versions
10
Example of API Deprecation
11
Example of API Deprecation
The question has
17K views
12
Example of API Deprecation
13
Example of API Deprecation
A developer recommends
two options
14
Example of API Deprecation
JSDoc deprecated
annotation
15
Example of API Deprecation
Console warning
message
16
How do developers
actually deprecate
JavaScript APIs?
17
Outline
18
1. Dataset
2. Searching for deprecation occurrences
3. Results
Dataset
19
Dataset
20
50 popular JavaScript projects
Metrics from GitHub repositories
Searching for Deprecation
Occurrences
21
We downloaded the source code of the 50 projects
(latest stable version)
22
We downloaded the source code of the 50 selected projects
(latest stable version)
We discarded files that are not part of the core systems
23
We downloaded the source code of the 50 selected projects
(latest stable version)
We discarded files that are not part of the core systems
We used a regular expression to find deprecation occurrence
candidates
24
We downloaded the source code of the 50 selected projects
(latest stable version)
We discarded files that are not part of the core systems
We used a regular expression to find deprecation occurrence
candidates
25
29 projects (58%)
Results
26
RQ1: How do Developers
Deprecate JavaScript APIs?
27
How do Developers Deprecate JavaScript APIs?
DATASET
1,279 deprecation
contexts
29 project (58%)
28
How do Developers Deprecate JavaScript APIs?
DATASET
29 project (58%) 1,279 deprecation
contexts
29
How do Developers Deprecate JavaScript APIs?
1,279 deprecation
contexts
We selected a
random sample of
268 cases (20%) for
manual analysis
30
How do Developers Deprecate JavaScript APIs?
Deprecation
utility
Code
comment
JSDoc
/* */
Console Deprecation
lists
31
How do Developers Deprecate JavaScript APIs?
Deprecation
utility
Any set of code functions to
aid code deprecation
88 occurrences (33%)
32
How do Developers Deprecate JavaScript APIs?
Code
comment
/* */
Use of code comments
excluding occurrences of JSDoc
27 occurrences (10%)
33
How do Developers Deprecate JavaScript APIs?
JSDoc
Use of the
JSDoc annotation
22 occurrences (8%)
34
How do Developers Deprecate JavaScript APIs?
Deprecation
lists
List of deprecated elements
18 occurrences (7%)
35
How do Developers Deprecate JavaScript APIs?
Console
Use of the JavaScript engine
native console API
11 occurrences (4%)
36
RQ2: Are JavaScript APIs
Deprecated with Replacement
Messages?
37
Are JavaScript APIs deprecated with
replacement messages?
67%
Replacement messages to support developers to
migrate to new versions
38
Example: Replacement Message
39
handleExceptions(...args){
...
console.warn('Deprecated:
.handleExceptions() will be removed in
winston@4. Use .exceptions.handle()')
...
}
Example: Replacement Message
40
handleExceptions(...args){
...
console.warn('Deprecated:
.handleExceptions() will be removed in
winston@4. Use .exceptions.handle()')
...
}
Are JavaScript APIs deprecated with
replacement messages?
Deprecation
utility
75 occurrences of
replacement messages
41
Code
comment
/* */
4 occurrences of
replacement messages
Are JavaScript APIs deprecated with
replacement messages?
42
Are JavaScript APIs deprecated with
replacement messages?
JSDoc
10 occurrences of
replacement messages
43
Conclusion and Discussion
44
Conclusion and Discussion
Deprecation adoption is not frequent in
JavaScript APIs
Only 3% of all analyzed files contain
occurrences of deprecation mechanisms
45
Conclusion and Discussion
Only 22 occurrences (8%) of JSDoc
JSDoc is not popular among deprecation
mechanisms
46
Future Studies
Survey with API developers about
motivation and impressions behind the
usage of JavaScript deprecation practices
47
Future Studies
Tool
Identification of
deprecation contexts
Alert about missing
replacement messages
48
JavaScript API Deprecation in the
Wild: A First Assessment
Romulo Nascimento, Aline Brito, Andre Hora, Eduardo Figueiredo
IEEE SANER 2020

More Related Content

PPTX
APIs, APIs and more APIs
PDF
API Deprecation: A Systematic Mapping Study
PPTX
Microsoft Graph developer community call-March 2020
PDF
Why Do We Break APIs? First Answers from Developers
PDF
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
PPTX
API Documentation Workshop tcworld India 2015
PPTX
Product Camp Silicon Valley 2018 - PM Technical Skills
PDF
APIdays Singapore 2019 - SDKs and Code Samples - The Cornerstone of API Devel...
APIs, APIs and more APIs
API Deprecation: A Systematic Mapping Study
Microsoft Graph developer community call-March 2020
Why Do We Break APIs? First Answers from Developers
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
API Documentation Workshop tcworld India 2015
Product Camp Silicon Valley 2018 - PM Technical Skills
APIdays Singapore 2019 - SDKs and Code Samples - The Cornerstone of API Devel...

Similar to JavaScript API Deprecation in the Wild: A First Assessment (SANER 2020) (20)

PPTX
API Documentation presentation to East Bay STC Chapter
PPTX
API Documentation -- Presentation to East Bay STC Chapter
PDF
Let’s learn how to use JavaScript responsibly and stay up-to-date.
PDF
Thesis+of+wei+wu.ppt
PDF
High quality Front-End
PDF
Practices and tools for building better API (JFall 2013)
PDF
Practices and tools for building better APIs
PPTX
Ext JS Upgrade Adviser EA Launch
PPTX
API workshop: Introduction to APIs (TC Camp)
PDF
Quo vadis, JavaScript? Devday.pl keynote
PDF
What's New in JavaScript
PDF
You Don t Know JS ES6 Beyond Kyle Simpson
PDF
[PDF]_Learning_ECMAScript_6.pdf
PPTX
Keynote - Open Source 101 - How JavaScript Became a Legitimate Open Source En...
PDF
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
PDF
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
PDF
Best practices for API Integration - Bearer.sh
PDF
Y U NO JS?
PDF
Making ES6 available to all with ChakraCore and Typescript
PDF
Making ES6 available to all with ChakraCore
API Documentation presentation to East Bay STC Chapter
API Documentation -- Presentation to East Bay STC Chapter
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Thesis+of+wei+wu.ppt
High quality Front-End
Practices and tools for building better API (JFall 2013)
Practices and tools for building better APIs
Ext JS Upgrade Adviser EA Launch
API workshop: Introduction to APIs (TC Camp)
Quo vadis, JavaScript? Devday.pl keynote
What's New in JavaScript
You Don t Know JS ES6 Beyond Kyle Simpson
[PDF]_Learning_ECMAScript_6.pdf
Keynote - Open Source 101 - How JavaScript Became a Legitimate Open Source En...
DepMiner: Automatic Recommendation of Transformation Rules for Method Depreca...
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Best practices for API Integration - Bearer.sh
Y U NO JS?
Making ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore
Ad

More from Andre Hora (15)

PDF
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
PDF
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
PDF
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
PDF
When should internal interfaces be promoted to public? (FSE 2016)
PDF
Assessing the Threat of Untracked Changes in Software Evolution (ICSE 2018)
PDF
Assessing Mock Classes: An Empirical Study (ICSME 2020)
PDF
What Code Is Deliberately Excluded from Test Coverage and Why? (MSR 2021)
PDF
Googling for Software Development: What Developers Search For and What They F...
PDF
Availability and Usage of Platform-Specific APIs: A First Empirical Study (MS...
PDF
How and Why Developers Migrate Python Tests (SANER 2022)
PDF
Test Polarity: Detecting Positive and Negative Tests (FSE 2024)
PDF
Monitoring the Execution of 14K Tests: Methods Tend to Have One Path that Is ...
PDF
PathSpotter: Exploring Tested Paths to Discover Missing Tests (FSE 2024)
PDF
Predicting Test Results without Execution (FSE 2024)
PDF
SpotFlow: Tracking Method Calls and States at Runtime (ICSE 2024)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
When should internal interfaces be promoted to public? (FSE 2016)
Assessing the Threat of Untracked Changes in Software Evolution (ICSE 2018)
Assessing Mock Classes: An Empirical Study (ICSME 2020)
What Code Is Deliberately Excluded from Test Coverage and Why? (MSR 2021)
Googling for Software Development: What Developers Search For and What They F...
Availability and Usage of Platform-Specific APIs: A First Empirical Study (MS...
How and Why Developers Migrate Python Tests (SANER 2022)
Test Polarity: Detecting Positive and Negative Tests (FSE 2024)
Monitoring the Execution of 14K Tests: Methods Tend to Have One Path that Is ...
PathSpotter: Exploring Tested Paths to Discover Missing Tests (FSE 2024)
Predicting Test Results without Execution (FSE 2024)
SpotFlow: Tracking Method Calls and States at Runtime (ICSE 2024)
Ad

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
history of c programming in notes for students .pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
AI in Product Development-omnex systems
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Operating system designcfffgfgggggggvggggggggg
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
2025 Textile ERP Trends: SAP, Odoo & Oracle
Reimagine Home Health with the Power of Agentic AI​
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
CHAPTER 2 - PM Management and IT Context
How to Choose the Right IT Partner for Your Business in Malaysia
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
history of c programming in notes for students .pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
top salesforce developer skills in 2025.pdf
AI in Product Development-omnex systems

JavaScript API Deprecation in the Wild: A First Assessment (SANER 2020)