An alternative is JuMP [1], a package for Julia. You can model optimization problems with linear, quadratic, and general nonlinear constraints/objective and send them to a variety of open-source and commercial solvers. JuMP, these solver wrappers, and more are all part of the JuliaOpt organization [2]. Once of the great things about JuMP is that it generates the internal/computer-friendly form for LPs/MILPs/MIQCQPs/... very quickly, as good as any commercial tool. If you are solving nonlinear problems, it'll generate first and second derivatives for you using automatic differentiation (see JuliaDiff for more on that [3])
[1]: https://github.com/JuliaOpt/JuMP.jl
[2]: http://juliaopt.org
[3]: http://juliadiff.org