The backend layer is the core component of the solution, so it's necessary to define the technology involved to build it.
- Java
- Python
Alternative selected: Python
Following table contains all the reasons that drives the decision:
Criteria | Description |
---|---|
Usability | Python is simpler and easier to learn (lower learning curve). |
Most In-Demand | Over the last years, Python became a more demanded language than Java. |
Offer | Due to the high demand, the community grows continuously, so it's easier to recruit developers to conform a team. |
Deliverability | Python is dynamically typed, so it's fast and friendly for development. In addition, it uses asynchronous code to tackle situations and challenges faster because each unit of code runs separately. |
Boost productivity | It allows to have a totally functional application within a few lines of code, unlike Java. |
Community | It's widely accepted by the community with a large amount of libraries supporting common tasks and use cases. |
Usability | It contains code that can be used for many different purposes, ranging from generating documentation to unit testing. |
Constraint ID | Explanation |
---|---|
CONS.01 | With Python es easier to find developers and active community |
CONS.03 | There were no restrictions, except for those defined here, about technology related decisions |
Characteristic ID | Explanation |
---|---|
AC.MOD.01 | Python is a good fit to ensure the best modifiability |