Some optimization software/frameworks (commercial or open-source) such as AMPL, GAMS, Cplex, ... have a specific Algebraic modelling language. Some of them have another type of programming that uses APIs to connect with general programming languages like C ++ / Java or others.
AFAIK, Algebraic modelling language is a bit easier than general programming to write optimization models. I would like to know, especially in the practical situation (solving a real-world optimization model):
1) What is the difference between them?
2) Is it necessary to know a general programming language to write an optimization model?
3) What is the benefit of using a specific Algebraic modelling language over others (for instance GAMS Vs AMPL or OPL)?