De status van dit document is voorlopig en zou nog kunnen wijzigen.
Language choice for the ace project
Introduction
This document outlines the decision-making process for selecting a programming language for the ace project. The goal is to choose a language that best meets the project’s requirements in terms of performance, security, and development efficiency.
Criteria for Choosing a Programming Language
- Prototyping Speed: The language should enable rapid prototyping to explore the feasibility of a claim sourcing database.
- Performance: The language must efficiently handle the project’s requirements.
- Library and Tool Availability: A rich ecosystem of libraries and tools is essential for efficient development.
- Security: Built-in security features are crucial for developing a secure project.
- Correctness: Features that minimize the possibility of errors are important.
- Community Support: A large and active community can provide valuable support and resources.
Options for programming languages
Based on the criteria for community support, we have started with the list of most common programming languages. The list is based on the TIOBE index for May 2024, which ranks languages by popularity and usage.
May 2024,May 2023,Change,Programming Language,,Ratings,Change
1,1,,,Python,16.33%,0.0288
2,2,,,C,9.98%,-3.37%
3,4,,,C++,9.53%,-2.43%
4,3,,,Java,8.69%,-3.53%
5,5,,,C#,6.49%,-0.94%
6,7,,,JavaScript,3.01%,0.0057
7,6,,,Visual Basic,2.01%,-1.83%
8,12,,,Go,1.60%,0.0061
9,9,,,SQL,1.44%,-0.03%
10,19,,,Fortran,1.24%,0.0046
11,11,,,Delphi/Object Pascal,1.24%,0.0023
12,10,,,Assembly language,1.07%,-0.13%
13,18,,,Ruby,1.06%,0.0026
14,15,,,MATLAB,1.06%,0.0018
15,14,,,Swift,1.01%,0.0009
16,8,,,PHP,0.97%,-0.62%
17,13,,,Scratch,0.93%,-0.02%
18,17,,,Rust,0.93%,0.0011
19,33,,,Kotlin,0.89%,0.0052
20,26,,,COBOL,0.85%,0.0029
Disqualifying issues per language
Performance and Correctness: Python, JavaScript, Visual Basic, Ruby Security and Correctness: C, C++, PHP Community Support: Fortran, Delphi/Object Pascal, Assembly language, Swift, COBOL Not Applicable to the Project: SQL, MATLAB, Scratch
Remaining options
- Java
- C#
- Go
- Rust
- Kotlin
Conclusion
After evaluating the options based on the criteria, the team has decided to use Go for the ace project. The primary reason for this choice is the prioritization of prototyping speed, which is crucial for exploring the feasibility of the claim sourcing database. Rust’s higher demands on the developer will lead to slower development. Additionally, Java, Kotlin, and C# are not very well known to the development team, making Go a more suitable option due to its familiarity and ease of use.