Language choice for the ace project
Criteria for choosing a programming language
- Performance: The language must be able to handle the requirements of the project efficiently.
- Availability of libraries and tools: The language must have a rich ecosystem of libraries and tools that can help the team develop the project efficiently.
- Security: The language must have built-in security features that can help the team develop a secure project.
- Correctness: The language must have features that can help the team develop a project with limited possibility for errors.
- Community support: The should be commonly used, and have a large community of developers who can help the team with any issues they may encounter.
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.
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
- Python: Performance and correctness
- C: Security and correctness
- C++: Security and correctness
- JavaScript: Performance, security, and correctness
- Visual Basic: Performance and correctness
- SQL: Not applicable to the project
- Fortran: Community support
- Delphi/Object Pascal: Community support
- Assembly language: Security, correctness, and Community support
- Ruby: Performance
- MATLAB: Not applicable to the project
- Swift: Community support
- PHP: Security and correctness
- Scratch: Not applicable to the project
- COBOL: Community support
Remaining options
- Java
- C#
- Go
- Rust
- Kotlin
Conclusion
Based on the criteria for choosing a programming language, the team has decided to use Rust for the ace project. Rust is a systems programming language that is known for its performance, security, and correctness. It has a rich ecosystem of libraries and tools that can help the team develop the project efficiently. Rust is also gaining popularity in the developer community, which means that the team will have access to a large community of developers who can help them with any issues they may encounter.