sábado, 24 de noviembre de 2007

Matemáticas open source

Ya sabéis que soy usuario de Linux (estoy maravillado con ubuntu gutsy, por cierto). Lo soy por varias razones:

  1. Porque llevo 12 años usándolo
  2. Porque es eficiente, rápido y seguro
  3. Porque me permite controlar todo lo que pasa en mi máquina
  4. Porque es gratis
  5. Porque es open source

Los dos últimos no son lo mismo. El que sea gratis tiene que ver con lo que me cuesta el sistema operativo. El que se open source tiene que ver con el modelo de desarrollo del software. Cuando alguien tiene una idea y quiere desarrollarla pero
a) No tiene tiempo suficiente
b) No tiene recursos suficientes
c) No tiene todos los conocimientos necesarios
entonces si hace que su idea sea open source y hay más gente interesada se crea un comunidad de desarrolladores.

El modelo privativo es opuesto:
a) Tienen desarrolladores dedicados
b) Con los conocimientos necesarios
c) ¿Con recursos suficientes?

Cuando un proyecto lo mantienen millares de usuarios interesados en mejorar el software se pueden construir productos de calidad. Ejemplos:
  • El propio sistema operativo linux que es lider en servidores
  • Apache
  • Firefox
  • OpenOffice
  • Vlc
  • openssh
  • gcc
Y muchos más

Recientemente he leído un artículo en la revista de los miembros de la sociedad americana de matemática. En el artículo se discute un tema que he hablado con algunos de mis colegas. Si todo el mundo usa mathematica, matlab y maple para sus cálculos analíticos, ¿cómo estamos seguros de que los resultados de estos programas son correctos en todas las condiciones? Estos programas son de pago y su código es cerrado. ¿Cómo funcionan? ¿En qué condiciones podrían fallar?


Como discute el autor, claramente las matemáticas (y la ciencia en general) necesita software cuyo funcionamiento interno no sea un secreto.

Aquí es donde entra el mayor problema del software open source (y probablemente una de las razones de la poca implantación de Linux como entorno de escritorio a pesar de su dominio en los servidores): no hay concentración de fuerzas. Me explico. Si buscas un programa para crear DVDs en linux encuentras 200. Lo mismo con editores de texto, visualizadores de PDF, ....

Ya existen algunas alternativas a estos programas. El más popular es el clon de matlab llamado octave (del que hablamos en el pasado en este post). Pero seamos realistas, MATLAB de la da todavía mil vueltas a octave: por el número de toolboxes que se han desarrollado (este problema es menor porque octave es casi 100% compatible) pero sobre todo porque es mucho mucho más rápido en tiempo de cálculo. Existen alternativas open-source a maple (una llamada máxima pero no hablo de ella porque la desconozco aunque el screenshot que os pego aquí tiene muy buena pinta), pero imagino que no están a la altura en tiempos de cálculo y funcionalidades.


Si se quiere crear una herramienta matemática universal, abierta y gratuita es necesario concentrar las fuerzas. Espero que el artículo de David Joyner anime esta iniciativa.