The main purpose of a modeling language is to retrieve data from a structured data source, such as a database, and generate a matrix that the optimization solver can handle. For large optimization models, this matrix generation requires a modeling language with highly advanced capabilities, such as sparse indexing and database management, as well as high scalability and speed. Many details need to be taken into account when choosing a modeling language for optimization projects: