lunes, 22 de marzo de 2010

Sustitutos libres de MatLab

Bueno, para estrenarnos en el blog vamos a escribir un pequeño apunte acerca de las alternativas que tenemos a MatLab en el mundo del software libre.

Como creo que todos sabemos por experiencia, MatLab es un software que, en temas de cálculo numérico, permite hacer (casi) de todo. Como también es un intérprete de un lenguaje de programación nos permite el desarrollo de aplicaciones, característica que, en mi caso, es la que más uso. Como aspectos negativos, nos encontramos varios:
  1. No es software libre, con lo que tenemos que creernos lo que hace porque sí, no podemos modificarlo (en el caso de que alguien sepa cómo), no podemos redistribuirlo, etc.
  2. Hasta que no haya un número importante de usuarios que necesiten una característica determinada, MathWorks no la implementará.
  3. Hay plataformas para las que no existe de forma nativa, como los *BSD, por ejemplo (aunque parece que en FreeBSD se puede instalar la versión de Linux).
  4. Cuesta un dineral. No sé el precio exacto, pero es una barbaridad, muchos miles de euros. Y todo ese dinero para, al final, no usar más que un pequeño porcentaje de sus funcionalidades.
En realidad, alguien podría decir que el único aspecto importante es el del dinero. Pasamos entonces a intentar convencerlo de usar un software equivalente, repasando varias de las alternativas que existen:
  1. GNU Octave: Podría decirse que, a efectos prácticos, es un clon de MatLab. Es software libre (pertenece al proyecto GNU) y puede que sea la alternativa más sólida al programa de MathWorks. A nivel de sintaxis es compatible casi al 100% con MatLab, e incluso añade características interesantes que éste no tiene. En cuanto a los cálculos, GNU Octave se basa en bibliotecas de referencia: BLAS (la versión de referencia, ATLAS o GotoBLAS) y LAPACK para el álgebra, FFTW para las transformadas de Fourier, etc. También permite enlazar funciones escritas en C/C++ o Fortran de una manera fácil (tarea que no es trivial en MatLab). Eso sí, tiene una pega: el soporte para gráficos no es nada bueno (comparado con el de MatLab).
  2. FreeMat: No he usado nunca este programa, aunque tiene buena pinta. También tiene una compatibilidad con MatLab a nivel de sintaxis muy alta.
  3. Scilab: Este es un software francés que parece que tiene buena fama. Aunque tiene la pega de que su sintaxis es bastante diferente a la de MatLab, cuanta con la ventaja frente a otras alternativas libres de tener un muy buen entorno gráfico. Tampoco lo he usado nunca, pero lo pongo por si alguien tiene interés.
Y, para finalizar, un poco de autobombo. Hace unas semanas escribí un paquete para Octave que facilita el trabajo con proyecciones cartográficas mediante la biblioteca PROJ.4 (la cual merecería una charla aparte). Por si a alguien le interesa, se puede encontrar OctPROJ (que así se llama la criatura) en la web de Octave-Forge.

Sobre este tema se podría escribir mucho más, pero no tengo ganas.

2 comentarios:

Miguel A. Santoyo dijo...

Como siempre surge mi duda: ¿es la compatibilidad con Matlab (en el caso de Octave) para leer y escribir archivos, igual de limitada como en el caso de openoffice?. Lo digo porque casi toda la gente con la que trabajo en Almeria usa Matlab (afortunada o desafortunadamente) y los archivos de trabajo que me envian estan en ese formato. Como siempre, será complicado convencer al personal hasta que no se tenga cierta seguridad de una compatibilidad relativamente aceptable (ojo: no defiendo para nada a Matlab, ni a Office; que quede claro). Así, pues siempre tengo alguna version de matlab (y mira que uso muy poquito este programa, porque casi todo lo hago en.... !!!FORTRAN!!! jeje).

Bea Moreno dijo...

.. muy interesante, le voy a echar un ojo, gracias!

Publicar un comentario