A través de la lista de correo sage-dev acabo de descubrir hace un momento Mathics: un sistema de álgebra computacional (CAS) libre y gratuito con una interfaz web y basado en SymPy y Sage.
En el momento de escribir estas líneas se trata de un proyecto personal de Jan Pöschko, un estudiante austríaco. Me parece impresionante que una sola persona haya llevado esto adelante: este hombre tiene mi más sincera admiración.
Aunque está basado en SymPy y tiene soporte para Sage también, Mathics toma la sintaxis de Mathematica, el popular CAS de Wolfram Research. Como se menciona en la introducción, Mathics busca parecerse a Mathematica lo máximo posible. Puedes leer las motivaciones del proyecto (hay por ahí quien dice que tienen un punto de ironía, cada uno que lo interprete a su manera :P).
Al contrario que CAS como Mathematica, Maple o Derive, Mathics es libre y gratuito (GPLv3):
«It is free both as in “free beer” and as in “freedom”».
La interfaz web disponible en http://www.mathics.net/ hace que podamos utilizarlo también como sustituto de Wolfram|Alpha (no te dice el sentido de la vida, el Universo y todo lo demás… pero resuelve ecuaciones :)). Además, se puede instalar localmente y ejecutarlo como cualquier otro programa de nuestro ordenador, preferiblemente en Linux y Mac OS X aunque también, en principio, puede instalarse en Windows (aunque no hay de momento un instalador que haga el proceso rápido y directo).
Algunas de las características más reseñables de Mathics son
- Un poderoso lenguaje de programación funcional (el que usa Mathematica),
- Un sistema de reglas y búsqueda de patrones,
- Números racionales, complejos y aritmética de precisión arbitraria,
- Numerosos métodos de manipulación de listas y estructuras,
- Una interfaz gráfica interactiva en el navegador que usa MathML y MathJax, además de una interfaz de línea de comandos,
- Creación de imágenes y gráficas y representación en el navegador usando SVG,
- Una versión online en http://www.mathics.net para acceso instantáneo,
- Exportación de resultados a $latex LaTeX$ usando Asymptote para los gráficos,
- Una forma muy sencilla de definir nuevas funciones en Python y
- Un sistema integrado de documentación y pruebas.
En la misma interfaz web podéis ver una pequeña muestra de las posibilidades de Mathics. Es, además, muy fácil compartir cuadernos y resultados, simplemente haciendo clic en el asterisco de la esquina superior derecha.
Jan anda buscando desarrolladores, así que si queréis ayudar o tal vez escribir documentación, tutoriales, … o simplemente ver cómo funciona un CAS por dentro, aquí tenéis el código fuente de Mathics en GitHub.
Un saludo a todos y larga vida al software libre 🙂
Oye, que interesante.
¿Y todo esto se lo ha currado un tipo? La gente es la bomba, la verdad.
Lo que no entiendo son las motivaciones. Si, supuestamente, se queja de la ‘belleza estructural’ de mathematica, ¿por qué la usa/imita para un proyecto tan bonito?
Me recuerda a la nueva versión de ipython.
Nop, al contrario! El cree que el lenguaje Mathematica tiene esa belleza estructural, al ser puramente funcional y poder anidar las expresiones. Efectivamente, el nuevo notebook web de IPython está también muy bien hecho: ya lo he probado un poco y es muy práctico.
A mí casi siempre me ha bastado con Maxima, que es el primo libre de Maple…
No está basado en Python, si no en Lisp, but i like it…
Sí, no lo he probado pero creo que Maxima es el CAS libre clásico y más extendido. Además, Sage lo utiliza para diversas tareas. Pero esta debilidad que tenemos en este blog por Python… 😛
Ojeando la web de sympy y la intro que has dejado aquí, me parece más amable y usable Maxima.
Pero creo que Lisp tiene menos futuro que Python, por lo que si esto fuera una quiniela hípica, apostaría por sympy.
Pero por ahora, que estoy aún verde en Python, sigo usando Maxima, mientras aprendo a volar 😉
import antigravity
http://xkcd.com/353/
😛
Pingback: Introducción a IPython: mucho más que un intérprete de Python « Pybonacci