Intérpretes de Descartes

Conceptual y prácticamente un intérprete de Descartes lo que hace es leer el código de una escena de Descartes y lo transforma en otro código que es el que efectúa la representación y aporta la interactividad de los objetos cartesianos en el software y hardware del usuario.

Descartes cuenta con dos intérpretes del código de una escena.

  • Uno en Java al que denominamos Descartes y que se distribuye en un archivo de extensión jar que según la versión o utilidades que incluye tiene diferente nombre (ver las librerías de Descartes en este enlace).
    • Si este intérprete no se localiza el navegador informará de que no se han encontrado las clases Java referenciadas.
    • Desde la versión 7.13 de Java, Oracle como desarrollador de este producto ha introducido filtros de seguridad que pueden bloquear las escenas en Windows y en Mac. En Linux con Open Java esto no acontece.
    • Descartes en su versión 5 es un applet firmado y con certificación, por tanto, las escenas desarrolladas con esta versión no deberían bloquearse, pero en la web pueden encontrarse miles de escenas que están en versiones anteriores.
    • Por limitaciones de Android e iOS, Java no es ejecutable en tabletas y smartphones, por ello el intérprete de Descartes en Java no permite ver las escenas de Descartes en esos dispositivos.
    • El intérprete y el software del editor de configuración de Descartes en Java es software libre, está bajo la licencia EUPL v.1.1. El código fuente se encuentra en : https://arquimedes.matem.unam.mx/Descartes5/
  • Uno en javascript al que denominamos DescartesJS y que se distribuye en un archivo nombrado descartes-min.js que puede enlazarse o descargarse desde el directorio de librerías de Descartes.  En el nombre de ese archivo el prefijo descartes es obvio, la extensión es js porque es código en javascript,  y el sufijo min es de minimizado, es decir que el código previamente a la distribución se ha compactado quitando espacios y denominaciones más extensas que son necesarias en el desarrollo, pero no en la ejecución.
    • Si éste intérprete no es localizado el navegador omitirá ese código, no se observará la escena y no habrá ningún rastro de esa omisión en lo que muestra el navegador.
    • El intérprete DescartesJS, software desarrollado en JavaScript y HTML5, está bajo licencia LGPL. El código fuente se encuentra en https://github.com/jlongi/DescartesJS.
    • DescartesJS lee el código de una escena de Descartes y lo transforma en un código javascript que es ejecutable sobre cualquier navegador compatible HTML5. HTML5 que es el actual estándar del lenguaje de marcas para páginas web y al que progresivamente van adaptándose todos los navegadores en todos los sistemas operativos, pero hay que ser conscientes que cada navegador tiene diferente nivel de estandarización y que pueden encontrarse comportamientos distintos dependientes no sólo del navegador que se esté usando, sino también de la versión del mismo en cada sistema operativo, de la versión de éste e incluso del fabricante que lo distribuye. Ello ocurre especialmente en las tabletas y smartphones. ¡Ciertamente es un handicap usual en la informática!, pero es de esperar que vayan confluyendo todos hacia lo establecido.
    • La compatibilidad HTML5 permite que las escenas se vean en cualquier ordenador, tableta y smartphone  independientemente del sistema operativo que porte.

A priori, en lo que atañe a la eficiencia, ambos intérpretes se ubican en igual estatus inicial. Experimentalmente puede comprobarse que la carga de una escena con el intérprete en javascript suele manifestarse como más rápida que el intérprete en Java. Ello es consecuencia de que Java opera con un JIT (just in time compiler) que en principio retrasa un poco el inicio de la ejecución para conseguir que ésta sea después más rápida, pero nada impide a javascript funcionar de la misma manera, y seguramente irá mejorando.

La ventaja mayor de DescarteJS se encuentra en que todo el proceso de interpretación e interacción con la escena se realiza exclusivamente en el navegador sin utilizar ningún software adicional. Adicionalmente, es bien conocida la dificultad que a los usuarios siempre le ha supuesto la instalación de Java y los problemas de compatibilidad con los complementos en los navegadores, si bien últimamente los sistemas operativos de ordenadores suelen incorporarlo y esa dificultad ha ido disminuyendo, pero las continuas actualizaciones en las que se ha ido embarcando Oracle (actual desarrollador de Java) han generado problemas adicionales en los applet Java y en Windows y Mac las escenas que usan la versión instalada (plugin de Descartes) a partir de la versión 7.13 de Java quedan bloqueadas y en la nueva versión de Descartes5 aún sigue ocasionando incompatibilidades a pesar de ser un applet firmado y certificado. Así pues, independientemente de reconocer la innovación que Java introdujo en los años 90 del pasado siglo y que a Descartes ha aportado muchísimo, en RED Descartes centramos nuestra labor en el intérprete DescartesJS.

También hay que señalar que no hay una equivalencia exacta entre el tratamiento a bajo nivel que hace Java y el que hace javascript, consecuentemente determinados objetos cartesianos no se visualizan de la misma forma si se ejecutan en el intérprete Descartes Java o con DescartesJS. Por ello, aunque el equipo de desarrollo de Descartes ha tratado de minimizar estas diferencias no ha podido conseguirse la deseada equivalencia total. Eso es especialmente negativo para escenas que estaban ya desarrolladas y que ahora quieran interpretarse con DescartesJS, ya que ello requerirá una revisión y adaptación individual de cada escena, pero obviamente no lo es para escenas que se desarrollen en el nuevo entorno, más si éstas se desarrollan usando el editor en javascript.

El intérprete de Descartes Java incorpora el editor de configuración estándar que cuenta con paneles de edición interactiva, sin embargo DescartesJS sólo incorpora un editor de líneas y por tanto, en este caso, si se desea esa edición interactiva hay que usar el gestor de escenas o el editor en javascript citado. El acceso a los editores integrados se realiza ubicando el ratón sobre la escena y pulsando el botón auxiliar del ratón (botón derecho, para ratones configurados como diestros).

Haz un comentario