A comparative analysis of modern programming languages in REST API development
Viitanen, Tuukka (2025)
Viitanen, Tuukka
2025
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202505059222
https://urn.fi/URN:NBN:fi:amk-202505059222
Tiivistelmä
The objective of this thesis was to compare different modern programming languages in a more realistic scenario, since many existing benchmarks compare applications with very little complexity. The programming languages in question were JavaScript, TypeScript, C#, Go and Rust. Both the programming languages and their ecosystems were to be considered.
The comparison was carried out by planning a REST API and implementing it in multiple programming languages. The REST API included multiple important features like CRUD operations, pagination, sorting, filtering, request validation, authentication and authorization: features that could be found in actual production applications. Major differences found during development were documented, and the implementations were tested for performance under heavy loads.
The load test results indicated that while all implementations performed well in requests that required less processing, the implementations using Go and C# performed considerably better in processing-heavy requests. The resource usage of the implementations also varied significantly.
To maintain objectivity, no clear winner was proclaimed, as each language had its strengths and weaknesses. Interesting insights into each language and their possible use cases were still achieved.
The comparison was carried out by planning a REST API and implementing it in multiple programming languages. The REST API included multiple important features like CRUD operations, pagination, sorting, filtering, request validation, authentication and authorization: features that could be found in actual production applications. Major differences found during development were documented, and the implementations were tested for performance under heavy loads.
The load test results indicated that while all implementations performed well in requests that required less processing, the implementations using Go and C# performed considerably better in processing-heavy requests. The resource usage of the implementations also varied significantly.
To maintain objectivity, no clear winner was proclaimed, as each language had its strengths and weaknesses. Interesting insights into each language and their possible use cases were still achieved.