On the Usability of Reactive Programming APIs: A Mixed Evaluation
ABSTRACT Context Reactive Programming (RP) provides powerful abstractions for managing asynchronous and event‐driven behaviors, but its APIs are often perceived as complex and difficult to use, particularly due to their reliance on functional programming concepts. Objective This study investigates the usability of two prominent JavaScript RP libraries, RxJS and Bacon.js, to identify common usability issues and suggest improvements. Method A mixed‐method evaluation was conducted. First, objective structural metrics were applied to assess the libraries' design. Then, a user‐centered study was performed involving programming tasks, a post‐task questionnaire based on the Cognitive Dimensions of Notation (CDN) framework, and follow‐up interviews. Results Both libraries exhibited moderate usability. Metrics revealed strengths in reusability and parameter design, while user studies highlighted challenges in learnability, error handling, and documentation. RxJS generally performed better in metrics, while Bacon.js had stronger task completion rates. Conclusion The findings suggest that despite their popularity, RP APIs can still hinder adoption due to usability issues. Improvements such as enhanced documentation, guided error‐handling strategies, and reduced operator complexity can significantly improve developer experience.
Authors
- Carlos Zimmerle (ORCID: https://orcid.org/0009-0008-7574-4190)
- Kiev Gama (ORCID: https://orcid.org/0000-0003-1508-6196)
Institutions
- Universidade Federal de Pernambuco (BR)
Publication Details
- Journal
- Software Practice and Experience
- Published
- 2025-05-24
- DOI
- https://doi.org/10.1002/spe.3435
- Primary Topic
- Software Engineering Research
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Coordenação de Aperfeiçoamento de Pessoal de Nível Superior
- Conselho Nacional de Desenvolvimento Científico e Tecnológico
- Fundação de Amparo à Ciência e Tecnologia do Estado de Pernambuco
- Instituto Nacional de Ciência e Tecnologia para Engenharia de Software