OpenOpt was created as optimization toolbox for MATLAB/Octave in June 2006.
It had been written by phd student Dmitrey Kroshko, cybernetics institute, NAS Ukraine. Our department has lots of optimization-related code, however, almost all our software is implemented using Fortran or C language, so RAD (rapid application development) is impossible, and OpenOpt was intended to be solution of the problem. See also: SciPy/SciKits vs Fortran, C languages from SciPy FAQ
Two first solvers were ralg and ShorEllipsoid, both were implementations of algorithms invented by Naum Z. Shor.
Then, for some reasons, MATLAB/Octave OpenOpt version had been rewritten to Python. Some of the reasons are:
- MATLAB is costly, while Python and scipy are 100% free, even w/o copyleft
- Object-oriented tools in MATLAB are very badly implemented, at least for now (v. 2007)
- Pass-by-copy makes some things very difficult to be implemented.
- MATLAB programming constructs are very inconvenient in comparison to Python, for example operator "+=" is absent in MATLAB yet.
As for Octave, according to a message from MATLAB mail list, "all those Octave, SciLab etc are tentative representations of MATLAB, while the latter is tentative representation of anything except matrices". Also, Octave lacks a good IDE, has copyleft restriction (license: GPL, hence it cannot be used by anyone), and depends on Mathworks decisions (to remain MATLAB-compatible), so they can't implement their own features and ideas into language.
OpenOpt was sponsored by GSOC 2007 and 2008.
See also: OpenOpt Acknowledgements