SlideShare a Scribd company logo
Availability and Usage of Platform-Specific APIs:
A First Empirical Study
Ricardo Job and André Hora
Software Runs on Multiple Platforms
2
Diversity of Development Environments
https://www.jetbrains.com/lp/devecosystem-2023/development/#os_devenv
Platform-Specific API
API that is implemented for a particular platform,
therefore, it may not work on other platforms than the
target one.
3
signal.setitimer
if sys.platform != "win32":
# Clear the alarm signal set by
# ioloop.set_blocking_log_threshold so it doesn't fire
# after the exec.
signal.setitimer(signal.ITIMER_REAL, 0, 0)
4
https://github.com/tornadoweb/tornado/blob/f5df43f26bb4d00759176f7cbec8bdce69f2f4f/tornado/autoreload.py#L206-L210
Platform-Specific APIs
The Python Standard Library Documentation (version 3.11)
5
https://docs.python.org/3.11/library/
Platform-Specific APIs
6
RQ1: What is the availability of platform-specific APIs?
RQ2: What is the usage of platform-specific APIs?
RQ1: Availability of Platform-Specific APIs
Study Design
7
availability notes
8,795 APIs 1,841 Platform-Specific APIs
version 3.11
RQ1: Availability of Platform-Specific APIs
Major Findings
8
21% of the APIs are platform-specific.
15% of the modules contain at least one platform-specific API.
17 different platforms with availability restrictions.
RQ2: Usage of Platform-Specific APIs
Study Design
9
AST-based
analysis
1,841
Platform-Specific APIs
100
Software Systems
19,288
Usage instances
683
Distinct Platform-Specific APIs
RQ2: Usage of Platform-Specific APIs
Major Findings
10
Platform-specific APIs are largely used in Python.
19K usages of platform-specific APIs in all 100 projects.
Top-3: asyncio.sleep, subprocess.Popen, and subprocess.PIPE.
Implications
Practitioners and Researchers
• Platform-specific APIs are widespread in the Python Standard
Library but there is a lack of dedicated documentation.
• Platform-specific APIs are largely used by Python systems but
there is an absence of best practices and anti-patterns.
11
Availability and Usage of Platform-Specific APIs:
A First Empirical Study
ricardo.job@ifpb.edu.br

More Related Content

PDF
Developing cross platform apps in Flutter (Android, iOS, and Web)
PDF
Developing Cross platform apps in flutter (Android, iOS, Web)
PDF
Build and deploy scientific Python Applications
PDF
Fast and Generic Malware Triage Using openioc_scan Volatility Plugin
PDF
56_Implementation
PPT
Asp dot net
PPT
Unit 2
PDF
Android OS Porting: Introduction
Developing cross platform apps in Flutter (Android, iOS, and Web)
Developing Cross platform apps in flutter (Android, iOS, Web)
Build and deploy scientific Python Applications
Fast and Generic Malware Triage Using openioc_scan Volatility Plugin
56_Implementation
Asp dot net
Unit 2
Android OS Porting: Introduction

Similar to Availability and Usage of Platform-Specific APIs: A First Empirical Study (MSR 2024) (20)

PDF
What makes Flutter the best cross platform sdk
PPTX
Dart_Programming_language_and_Flutter_Framework.pptx
PDF
Ubuntu Core 技术详解
PDF
Build Great Networked APIs with Swift, OpenAPI, and gRPC
PPT
jhkghj
PPT
PPT
test2PPT
PPTX
Android summer training report
PPTX
Android summer training report
PPT
PDF
lecture-2-android-dev.pdf
PPT
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
PPTX
.net CLR
PPTX
Android session-1-sajib
PDF
Container based android
PDF
The Ten (10) Best C/C++ Productivity Tools, Plugins and Libraries
PDF
Extending Android's Platform Toolsuite
PPTX
flutterbootcamp
PPTX
flutter_bootcamp_MUGDSC_Presentation.pptx
What makes Flutter the best cross platform sdk
Dart_Programming_language_and_Flutter_Framework.pptx
Ubuntu Core 技术详解
Build Great Networked APIs with Swift, OpenAPI, and gRPC
jhkghj
test2PPT
Android summer training report
Android summer training report
lecture-2-android-dev.pdf
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
.net CLR
Android session-1-sajib
Container based android
The Ten (10) Best C/C++ Productivity Tools, Plugins and Libraries
Extending Android's Platform Toolsuite
flutterbootcamp
flutter_bootcamp_MUGDSC_Presentation.pptx
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
JavaScript API Deprecation in the Wild: A First Assessment (SANER 2020)
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
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)
JavaScript API Deprecation in the Wild: A First Assessment (SANER 2020)
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...
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)

PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Introduction to Artificial Intelligence
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Transform Your Business with a Software ERP System
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
ai tools demonstartion for schools and inter college
PDF
Nekopoi APK 2025 free lastest update
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
L1 - Introduction to python Backend.pptx
PDF
System and Network Administration Chapter 2
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Essential Infomation Tech presentation.pptx
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PTS Company Brochure 2025 (1).pdf.......
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
How to Migrate SBCGlobal Email to Yahoo Easily
Introduction to Artificial Intelligence
CHAPTER 2 - PM Management and IT Context
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Design an Analysis of Algorithms I-SECS-1021-03
Transform Your Business with a Software ERP System
How to Choose the Right IT Partner for Your Business in Malaysia
ai tools demonstartion for schools and inter college
Nekopoi APK 2025 free lastest update
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Operating system designcfffgfgggggggvggggggggg
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
L1 - Introduction to python Backend.pptx
System and Network Administration Chapter 2
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Essential Infomation Tech presentation.pptx
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free

Availability and Usage of Platform-Specific APIs: A First Empirical Study (MSR 2024)

  • 1. Availability and Usage of Platform-Specific APIs: A First Empirical Study Ricardo Job and André Hora
  • 2. Software Runs on Multiple Platforms 2 Diversity of Development Environments https://www.jetbrains.com/lp/devecosystem-2023/development/#os_devenv
  • 3. Platform-Specific API API that is implemented for a particular platform, therefore, it may not work on other platforms than the target one. 3
  • 4. signal.setitimer if sys.platform != "win32": # Clear the alarm signal set by # ioloop.set_blocking_log_threshold so it doesn't fire # after the exec. signal.setitimer(signal.ITIMER_REAL, 0, 0) 4 https://github.com/tornadoweb/tornado/blob/f5df43f26bb4d00759176f7cbec8bdce69f2f4f/tornado/autoreload.py#L206-L210
  • 5. Platform-Specific APIs The Python Standard Library Documentation (version 3.11) 5 https://docs.python.org/3.11/library/
  • 6. Platform-Specific APIs 6 RQ1: What is the availability of platform-specific APIs? RQ2: What is the usage of platform-specific APIs?
  • 7. RQ1: Availability of Platform-Specific APIs Study Design 7 availability notes 8,795 APIs 1,841 Platform-Specific APIs version 3.11
  • 8. RQ1: Availability of Platform-Specific APIs Major Findings 8 21% of the APIs are platform-specific. 15% of the modules contain at least one platform-specific API. 17 different platforms with availability restrictions.
  • 9. RQ2: Usage of Platform-Specific APIs Study Design 9 AST-based analysis 1,841 Platform-Specific APIs 100 Software Systems 19,288 Usage instances 683 Distinct Platform-Specific APIs
  • 10. RQ2: Usage of Platform-Specific APIs Major Findings 10 Platform-specific APIs are largely used in Python. 19K usages of platform-specific APIs in all 100 projects. Top-3: asyncio.sleep, subprocess.Popen, and subprocess.PIPE.
  • 11. Implications Practitioners and Researchers • Platform-specific APIs are widespread in the Python Standard Library but there is a lack of dedicated documentation. • Platform-specific APIs are largely used by Python systems but there is an absence of best practices and anti-patterns. 11
  • 12. Availability and Usage of Platform-Specific APIs: A First Empirical Study ricardo.job@ifpb.edu.br