Just to share the news with you, it seems GAMS has reinvented itself today, throwing away its archaic and odd language with the launch of GAMSpy, a library (and API) to write and solve mathematical optimization models directly in Python:
There is still very little out there, but I wonder how it stands in terms of expressiveness, as one of the mayor advantages of JuMP over Pyomo for me is the more concise syntax available thanks to Julia macros.
Also, at this point, one wonder if there is still space for a new paying optimization library, that need to be learn, when Pyomo and JuMP do already a good job.
The source code is available: GitHub - GAMS-dev/gamspy: Python-based algebraic modeling interface to GAMS
The docs (including examples) are available here:
I haven’t tried it myself, but if anyone does and finds a feature that they think would be useful in JuMP, please let me know
One concrete work item is to make it easier for the JuMP matrix to produce data frames: Improve support for relational algebra · Issue #3438 · jump-dev/JuMP.jl · GitHub.
You have always been able to combine JuMP with DataFrames.jl or a database, but it often requires a different modeling style compared with the ‘nested summation’ syntax you often see in math papers. See these tutorials for examples: