Tuesday, February 11, 2014

matlab shlib cancer

Ah Matlab.  Some things are made easier by this language/platform... it's got it's large share of rough edges though.  But today I'm not going to complain about issues like race conditions in the ui libraries somehow existing on top of swing, a toolkit, one of the first, developed to be safe against such issues.  No, today I'm going to complain about how Matlab includes the following libraries:

  • Boost
  • OpenCV
  • libtiff, libpng, libjpeg, openjpeg
  • wxwidgets
  • libhdf5, netCDF
  • OpenSceneGraph
  • ITK
  • FFTW3
  • expat
  • QT (Qt4)
  • protobuf 

Here's the problem though.  They don't distribute headers or any kind of SDK.  They also patch the softwares and don't release the diffs causing all kinds of breakage.  They end up making it impossible to use these libraries in mex files.  But they are using more of these libraries and others like them as time goes on and breaking more and more mex files and codebases as time goes forward. Why are they including everything under the sun and not providing a way to use it?  What do they have to gain by not shipping headers? Do they think this is sustainable?  How frustrating and greedy!

Please mathworks, include the freaking headers, make these libraries continue to be usable in mex files.

And update your copy of HDF5.