{"id":1543,"date":"2014-06-03T08:53:05","date_gmt":"2014-06-03T06:53:05","guid":{"rendered":"http:\/\/descartesjs.org\/documentacion\/?p=1543"},"modified":"2021-08-06T16:46:52","modified_gmt":"2021-08-06T15:46:52","slug":"interpretes-de-descartes","status":"publish","type":"post","link":"https:\/\/reddescartes.org\/documentacion\/interpretes-de-descartes\/","title":{"rendered":"Int\u00e9rpretes de Descartes"},"content":{"rendered":"<p>Conceptual y pr\u00e1cticamente un int\u00e9rprete de Descartes lo que hace es leer el c\u00f3digo de una escena de Descartes y lo transforma en otro c\u00f3digo que es el que efect\u00faa la representaci\u00f3n y aporta la interactividad de los objetos cartesianos en el <em>software<\/em> y <em>hardware<\/em> del usuario.<\/p>\n<p><span style=\"line-height: 1.5em;\">Descartes cuenta con dos int\u00e9rpretes del c\u00f3digo de una escena.<\/span><\/p>\n<ul>\n<li>Uno en Java al que denominamos&nbsp;<strong>Descartes<\/strong>&nbsp;y que se distribuye en un archivo de extensi\u00f3n&nbsp;<a href=\"https:\/\/es.wikipedia.org\/wiki\/Java_Archive\">jar<\/a>&nbsp;que seg\u00fan la versi\u00f3n o utilidades que incluye tiene diferente nombre (ver las librer\u00edas de Descartes en&nbsp;<a href=\"https:\/\/arquimedes.matem.unam.mx\/Descartes5\/lib\/\">este enlace<\/a>).\n<ul>\n<li>Si este int\u00e9rprete no se localiza el navegador informar\u00e1 de que no se han encontrado las clases Java referenciadas.<\/li>\n<li>Desde la versi\u00f3n 7.13 de Java,&nbsp;<em>Oracle<\/em>&nbsp;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.<\/li>\n<li>Descartes en su versi\u00f3n 5 es un&nbsp;<em>applet&nbsp;<\/em>firmado y con certificaci\u00f3n, por tanto, las escenas desarrolladas con esta versi\u00f3n no deber\u00edan bloquearse, pero en la web pueden encontrarse miles de escenas que est\u00e1n en versiones anteriores.<\/li>\n<li>Por limitaciones de&nbsp;<em>Android<\/em>&nbsp;e&nbsp;<em>iOS<\/em>, Java no es ejecutable en tabletas y&nbsp;<em>smartphones<\/em>, por ello el int\u00e9rprete de Descartes en Java no permite ver las escenas de Descartes en esos dispositivos.<\/li>\n<li>El int\u00e9rprete y el software del editor de configuraci\u00f3n de Descartes en Java es software libre,&nbsp;est\u00e1 bajo la licencia&nbsp;<a href=\"https:\/\/joinup.ec.europa.eu\/software\/page\/eupl\/licence-eupl\" target=\"_blank\" rel=\"noopener noreferrer\">EUPL v.1.1<\/a>.&nbsp;El c\u00f3digo fuente se encuentra en :&nbsp;<a href=\"https:\/\/arquimedes.matem.unam.mx\/Descartes5\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/arquimedes.matem.unam.mx\/Descartes5\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Uno en javascript al que denominamos&nbsp;<strong>DescartesJS<\/strong>&nbsp;y que se distribuye en un archivo nombrado descartes-min.js que puede enlazarse o descargarse desde el&nbsp;<a href=\"https:\/\/arquimedes.matem.unam.mx\/Descartes5\/lib\/\">directorio de librer\u00edas de Descartes<\/a>.&nbsp;&nbsp;En el nombre de ese archivo el prefijo descartes es obvio, la extensi\u00f3n es js porque es c\u00f3digo en javascript, &nbsp;y el sufijo min es de minimizado, es decir que el c\u00f3digo previamente a la distribuci\u00f3n se ha compactado quitando espacios y denominaciones m\u00e1s extensas que son necesarias en el desarrollo, pero no en la ejecuci\u00f3n.\n<ul>\n<li>Si \u00e9ste int\u00e9rprete no es localizado el navegador omitir\u00e1 ese c\u00f3digo, no se observar\u00e1 la escena y no habr\u00e1 ning\u00fan rastro de esa omisi\u00f3n&nbsp;en lo que muestra el navegador.<\/li>\n<li>El int\u00e9rprete&nbsp;<strong>DescartesJS<\/strong>,&nbsp;software desarrollado en JavaScript y HTML5, est\u00e1 bajo licencia&nbsp;<a href=\"https:\/\/www.gnu.org\/licenses\/lgpl.html\" target=\"_blank\" rel=\"noopener noreferrer\">LGPL<\/a>. El c\u00f3digo fuente se encuentra en&nbsp;<a href=\"https:\/\/github.com\/jlongi\/DescartesJS\">https:\/\/github.com\/jlongi\/DescartesJS<\/a>.<\/li>\n<li>DescartesJS lee el c\u00f3digo de una escena de Descartes y lo transforma en un c\u00f3digo javascript que es ejecutable sobre cualquier navegador compatible HTML5.&nbsp;HTML5 que es el actual est\u00e1ndar del lenguaje de marcas para p\u00e1ginas web y al que progresivamente van adapt\u00e1ndose todos los navegadores en todos los sistemas operativos, pero hay que ser conscientes que cada navegador tiene diferente nivel de estandarizaci\u00f3n y que pueden encontrarse comportamientos distintos dependientes no s\u00f3lo del navegador que se est\u00e9 usando, sino tambi\u00e9n de la versi\u00f3n del mismo en cada sistema operativo, de la versi\u00f3n de \u00e9ste e incluso del fabricante que lo distribuye. Ello ocurre especialmente en las tabletas y smartphones. \u00a1Ciertamente es un handicap usual en la inform\u00e1tica!, pero es de esperar que vayan confluyendo todos hacia lo establecido.<\/li>\n<li>La compatibilidad HTML5 permite que las escenas se vean en cualquier ordenador, tableta y<em>&nbsp;smartphone<\/em>&nbsp; independientemente del sistema operativo que porte.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>A priori, en lo que ata\u00f1e a la eficiencia,&nbsp;ambos int\u00e9rpretes se ubican en igual estatus inicial.&nbsp;Experimentalmente puede comprobarse que la carga de una escena con el int\u00e9rprete en javascript suele manifestarse como m\u00e1s r\u00e1pida que el int\u00e9rprete en Java. Ello es consecuencia de que Java opera con un <em>JIT<\/em> (<em>just in time compiler<\/em>) que en principio retrasa un poco el inicio de la ejecuci\u00f3n para conseguir que \u00e9sta sea despu\u00e9s m\u00e1s r\u00e1pida, pero nada impide a javascript funcionar de la misma manera, y seguramente ir\u00e1 mejorando.<\/p>\n<p>La ventaja mayor de DescarteJS se encuentra en que todo el proceso de interpretaci\u00f3n e interacci\u00f3n con la escena se realiza exclusivamente en el navegador sin utilizar ning\u00fan software adicional. Adicionalmente, es bien conocida la dificultad que a los usuarios siempre le ha supuesto la instalaci\u00f3n de Java y los problemas de compatibilidad con los complementos en los navegadores, si bien \u00faltimamente 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&nbsp;<span style=\"line-height: 1.5em;\">que usan la versi\u00f3n instalada (plugin de Descartes)&nbsp;<\/span><span style=\"line-height: 1.5em;\">a partir de la versi\u00f3n 7.13 de Java quedan bloqueadas y en la nueva versi\u00f3n de Descartes5 a\u00fan sigue ocasionando incompatibilidades a pesar de ser un applet firmado y certificado. As\u00ed pues, independientemente de&nbsp;reconocer la innovaci\u00f3n que Java introdujo en los a\u00f1os 90 del pasado siglo y que a Descartes ha aportado much\u00edsimo, en RED Descartes centramos nuestra labor en el int\u00e9rprete DescartesJS.<\/span><\/p>\n<p>Tambi\u00e9n hay que se\u00f1alar 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\u00e9rprete Descartes Java o con DescartesJS. Por ello, aunque&nbsp;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\u00e1 una revisi\u00f3n y adaptaci\u00f3n individual de cada escena, pero obviamente no lo es para escenas que se desarrollen en el nuevo entorno, m\u00e1s si \u00e9stas se desarrollan usando el <a href=\"https:\/\/descartesjs.org\/documentacion\/?p=1408\">editor en javascript<\/a>.<\/p>\n<p>El int\u00e9rprete de Descartes Java incorpora el <a href=\"https:\/\/descartesjs.org\/documentacion\/?p=213\">editor de configuraci\u00f3n est\u00e1ndar<\/a> que cuenta con paneles de edici\u00f3n interactiva, sin embargo DescartesJS s\u00f3lo incorpora un editor de l\u00edneas y por tanto, en este caso, si se desea esa edici\u00f3n interactiva hay que usar el <a href=\"https:\/\/descartesjs.org\/documentacion\/?cat=20\">gestor de escenas<\/a> o el <a href=\"https:\/\/descartesjs.org\/documentacion\/?p=1408\">editor en javascript <\/a>citado. El acceso a los editores integrados se realiza ubicando el rat\u00f3n sobre la escena y pulsando el bot\u00f3n auxiliar del rat\u00f3n (bot\u00f3n derecho, para ratones configurados como diestros).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conceptual y pr\u00e1cticamente un int\u00e9rprete de Descartes lo que hace es leer el c\u00f3digo de una escena de Descartes y lo transforma en otro c\u00f3digo que es el que efect\u00faa la representaci\u00f3n y aporta la interactividad de los objetos cartesianos en el software y hardware del usuario. Descartes cuenta con dos int\u00e9rpretes del c\u00f3digo de una escena. Uno en Java al que denominamos&nbsp;Descartes&nbsp;y que se distribuye en un archivo de extensi\u00f3n&nbsp;jar&nbsp;que seg\u00fan la versi\u00f3n o utilidades que incluye tiene diferente nombre (ver las librer\u00edas de Descartes en&nbsp;este enlace). Si este int\u00e9rprete no se localiza el navegador informar\u00e1 de que no<\/p>\n<a class=\"more-link\" rel=\"nofollow\" href=\"https:\/\/reddescartes.org\/documentacion\/interpretes-de-descartes\/\">[Leer m\u00e1s...]<\/a>","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[18,12],"tags":[],"_links":{"self":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/1543"}],"collection":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/comments?post=1543"}],"version-history":[{"count":11,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/1543\/revisions"}],"predecessor-version":[{"id":3320,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/1543\/revisions\/3320"}],"wp:attachment":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/media?parent=1543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/categories?post=1543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/tags?post=1543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}