El programa nace en los años 70 en el MIT. Recibiría por aquel entonces el nombre de Macsyima (MAC's SYmbolic MAnipulator), del cual el MIT mandaría en 1982 una copia al DOE (US Dep. Of Energy), que aportó fondos al proyecto, esta primera versión es conocida como DOE-Macsyma.
Posteriormente el DOE concede la licencia de explotación del programa a la empresa Symbolics, que sigue desarrollando el proyecto durante unos años. En 1992 el programa es adquirido por una empresa que se llamaría Macsyima Inc. pero el programa iría perdiendo influencia progresivamente ante la presencia en el mercado de otros programas similares como Maple o Mathematica, ambos inspirados en el propio Macsyima.
Pero no murió: Desde el año 1982 hasta su fallecimiento en 2001, William Schelter, en la Universidad de Texas mantuvo una versión de este programa adaptada al estándar Common Lisp, la cual ya se conocía con el nombre de maxima para diferenciarla de la versión comercial. En el año 1998, Schelter consiguió del DOE permiso para distribuir maxima bajo la licencia GNU-GPL http://www.gnu.org/licenses/gpl.html; con este paso, muchas más personas empezaron a dirigir su mirada hacia maxima.
Actualmente, el proyecto es un programa escrito en el lenguaje LISP que está siendo liderado por un grupo de desarrolladores de varios países, asistidos y ayudados por muchas otras personas interesadas en maxima, que mantienen un cauce de comunicación a través de una lista de correo: http://maxima.sourceforge.net/maximalist.html
LISP es un lenguaje de programación usado en el mundo de la inteligencia artificial, se diferencia de otros lenguajes en que la forma de entender la programación es distinta, es totalmente declarativa y no procedimental: Para implementar un programa se le dice qué se quiere lograr y cómo, pero sin indicar paso a paso las acciones para lograrlo, aunque también se puede trabajar haciendo programación procedimental clásica, que es lo que usaremos en este curso dado el cambio mental y la dificultad de trabajar con una programación declarativa, que no es en absoluto una programación al uso.
Puesto que maxima se distribuye bajo la licencia GNU-GPL, tanto el código fuente como los manuales son de libre acceso a través de la página web del proyecto: http://maxima.sourceforge.net
El software libre fue definido por R. Sallman como aquel que garantice: Libertad para ejecutar el programa en cualquier lugar en cualquier momento y con cualquier propósito; Libertad de estudiar cómo funciona el programa y adaptarlo a nuestras necesidades (i.e. acceso al código fuente); Libertad para redistribuir copias a cualquier persona; Libertad para mejorar el programa y publicar las mejoras. Con el fin de mejorar las cuatro libertades anteriores se impone una restricción adicional, compatible con las anteriores: Los trabajos anteriores tienen que mantener la misma licencia libre que el trabajo adicional. Este es mecanismo que utilizan las licencias tipo GPL se conoce como copyleft.
wxmaxima no es más que una interfaz gráfica de maxima, que permite el manejo de éste de una forma visual, dando acceso a gran parte de los comandos de maxima con el simple uso del ratón. Existen más interfaces para maxima, por ejemplo la ejecución desde línea de comando o incluso programas para dispositivos móviles con sistema operativo Android, pero wxmaxima es ahora el más interesante.
Esta es una hoja de trabajo de wxmaxima:
La instalación del entorno o interfaz la haremos desde la web del proyecto:
http://maxima.sourceforge.net/es/
Una vez dentro de la página vamos al apartado de descargas y allí escogemos la opción más adecuada a nuestro sistema operativo: Hay interfaces para IOS, Linux y Android que permiten trabajar con maxima, sin embargo nosotros trabajaremos con wxmaxima en Windows, así que como se explica en el vídeo a continuación elegiremos el enlace en ese apartado.
Es importante saber qué tipo de sistema operativo tenemos instalado: o bien un Windows de 32 bits (versiones más antiguas) o bien un Windows de 64 bits. En la demo a continuación yo elegiré el de uno de 64. Para saber cuál, vaya a:
Explorador de Windows -> click derecho sobre Equipo -> Propiedades
como se muestra en el vídeo a continuación:
Recomendamos las siguientes versiones:
Win.32.bits---> maxima-clisp-sbcl-5.38.
Win.64.bits---> maxima-sbcl-5.38.0-win64
En el vídeo a continuación se muestra cómo descargar la versión anterior de wxmaxima (y maxima) para sistema de 64 bits:
Una vez lo tenemos descargado, la instalación es muy rápida, sólo requiere indicar el idioma y la ubicación donde queremos los archivos del programa, en el cuadro de diálogo final podemos escoger iniciar ya el programa, vemos paso a paso la instalación en la siguiente serie de capturas de pantalla:
Paso 1 de la instalación:
Paso 2 de la instalación:
Paso 3 de la instalación:
Paso 4 de la instalación:
Paso 5 de la instalación:
Paso 6 de la instalación:
Paso 7 de la instalación:
Paso 8 de la instalación:
Paso 9 de la instalación:
Paso 10 de la instalación:
Paso 11 de la instalación:
Paso 12 de la instalación:
Paso 13 de la instalación:
Paso 14 de la instalación:
Paso 15 de la instalación:
Paso 16 de la instalación:
Paso 17 de la instalación:
Paso 18 de la instalación:
Paso 19 de la instalación:
Paso 20 de la instalación, ya el maxima y su interfaz wxmaxima instalado, sólo tendríamos que dar doble clic al icono que ha creado:
Por último, para comenzar a trabajar en maxima, configuramos el idioma (básicamente para poder usar acentos en las celdas de texto), para ello vamos a:
Lo mostramos en el siguiente vídeo:
maxima, a diferencia de otros programas o lenguajes para hacer matemáticas no requiere ni demasiados recursos en el ordenador, ni tampoco conocimientos muy profundos para su uso, ahí radica su utilidad como herramienta educativa en la educación secundaria. Además de su uso como calculadora y de la extensa y variada ayuda que incluye en diferentes formas, la integración en el interfaz de wxmaxima permite usar las funciones propias de maxima a través de menús y cuadros de diálogo fácilmente utilizables sin ningún conocimiento de programación.
Por ejemplo, puedo ejecutar las siguientes sentencias en una hoja de trabajo (cada una en una celda de input, con su correspondiente celda de output) conociendo las funciones correspondientes:
Pero, como se muestra en el siguiente vídeo, podríamos haber hecho la mayor parte de lo anterior sin problema a través de los diferentes menús del interfaz sin tener ningún conocimiento previo de maxima: