Quisiera comentaros hoy una situación real como la vida misma. Te cambias de Windows, o a Linux, o decides que los MAC son lo tuyo, o pasas a una versión más moderna del sistema operativo… y ya no te funciona el emulador de marrás que tan apañado era. Pues bien, hay solución.
Poco a poco están saliendo mejores emuladores escritos en Java que no tienen nada que envidiar a las versiones compiladas que venimos usando. El mejor caso es el JSpeccy de José Luis Sánchez, emulador que uso a diario y que tiene funciones la mar de majas (emulación de TV, carga acelerada pero no instantánea de cinta, etc).
Gracias a estar en Java no hace falta ni instalar, simplemente lo descargas y lo usas desde donde quieras. Lo puedes llevar en un pendrive y te funcionará en cualquier sistema operativo con soporte Java (lo raro es encontrar uno que no lo tenga). ¿Tienes Windows? basta tener el Java Runtime. ¿Tienes Linux? suele tener ya el Java Runtime. ¿Tienes Mac? sin problemas. Es decir, una GOZADA.
Pero no es el único caso, HalfNes sigue su camino y ya empieza a ser un emulador de NES la mar de majo. El escalado que tiene es fantástico, dejándote una sensación muy agradable al jugar, y ya están probando un modo TV que aunque ahora mismo va a paso de caracol ya deja entrever que será toda una joya.
¿Megadrive? pues el JEnesis, ¿Mame? pues el JMame (basado en el MAME32), y así un largo etcétera. Evidentemente no todos van de lujo, pero lo bueno de estar escritos en Java es que todos los esfuerzos se centran en aumentar la compatibilidad y mejorar las opciones, no se tienen que preocupar de distintas versiones para cada sistema operativo.
Mmmm, sigues necesitando instalar el runtime Java, que no tienen todos los equipos. Para mí es una desventaja clara. Java no es el camino de rosas, el «compile once, run everywhere» que nos quieren vender.
Creo que, buscando la portabilidad, es todavía más cómodo usar emuladores en Javascript, que ya empieza a haber muchos y buenos.
El java runtime lo tendrás que instalar en Windows tarde o temprano porque te lo piden cantidad de webs, así que no es problema.
En Linux viene de serie.
En MAC creo que también viene de serie.
Java es el programa que necesitas tener instalado para poder hacerte la declaración de renta en España, aunque solo sea por eso está instalado en muchísimos equipos.
Y si bien no es un camino de rosas (nada lo es), el hecho es que JSpeccy funciona de forma comprobada en Windows 32/64, Linux 32/64, MacOS-X, Solaris 10 x86/SPARC, zLinux y AIX. Y sin tocar ni una línea. Si tuviera que programar en C++ usaría la Qt, pero ni con esa grandísima librería conseguiría esa portabilidad con menos esfuerzo.
Lo que no tiene sentido es hacer nada en .NET que para usar una VM no funciona en nada que no sea Windows (porque MONO es un chiste de mal gusto). Y a mucha gente le encanta .NET… (y yo les respeto, of course).
Pienso que hay sitio para todos los emuladores que alguien quiera hacer, sobre todo aquellos que son gratuitos y con fuentes disponibles porque esos serán lo que más posibilidades tienen de sobrevivir en el tiempo. JS es una opción más, ideal para dispositivos móviles, pero ese no es el objetivo de un emulador como JSpeccy, la verdad….
No todo el mundo se hace la declaración de la renta, así que como excusa para tener instalado el JRE por «obligación» no me vale 😛
Sigo opinando que, como paradigma de portabilidad, cualquier desarrollo que pueda correr en un navegador tendrá las de ganar en el futuro.
Dicho lo cual, por supuesto que coincido en que hay sitio para todos los emuladores, cuantos más mejor.
Respecto a .NET, Windows sigue siendo la plataforma mayoritaria (en ordenadores) y lo seguirá siendo durante unos cuantos años, por lo que su uso no es despreciable si tu objetivo no es llegar al 100% de los usuarios.
Saludos.
Y el .NET porque tengo un par de juegos que lo usan (el FEZ creo) sino volaba también! 😛
Aunque entiendo las ventajas y sé que tienes razón, a mi sigue sin convencerme el tema del Java runtime, no es por nada especial pero es un paso que si me lo puedo evitar mejor.
Hasta hace un par de años tenía varias aplicaciones que lo usaban, en alguna reinstalación me tocó los webs o me daba error al actualizar o dejó de funcionar, no recuerdo que fué, pero en ese momento busqué alternativas con su EXE independiente.
Desde entonces no lo usé nunca más, incluso webs que lo usaban casi no hay, de hecho ahora mismo no recuerdo cuando fue la última vez que alguna me lo pidió. Y seguramente pasé de instalarlo.
Sí tengo que reconocer que para la portabilidad es seguramente la mejor opción, pero como ultimamente estoy plantado en Windof tampoco echo de menos esa compatibilidad entre sistemas, aunque sí que me mantengo inflexible con mi política de aplicaciones portables!! 🙂
Más información de hacia dónde van los tiros:
http://www.chullohack.com/2013/10/23/firefox-bloquea-java-una-apuesta-arriesgada-por-la-seguridad/
Primero, dice que marcará como inseguro el plugin de Java, no que no funcionará. Y no es el único.
En segundo lugar el plugin de Java no ES Java, a ver si nos aclaramos. Ese plugin ha dado muchos quebraderos de cabeza últimamente, pero el uso de applets es casi inexistente hoy en día. Eso sí, los pocos que se usan, muchos de ellos son webs oficiales, probablemente porque para ciertos temas de seguridad no existe nada mejor hoy en día. Pero quede claro que esas vulnerabilidades no afectan en prácticamente ningún caso al cliente de Java ni a la versión server de Java. Puedes instalar Java, desactivar el plugin y tan contento. Por eso digo que un problema con el plugin no significa automáticamente un problema con todo Java, sino solo con esa parte.
No sé qué habrá dentro de 5, 10 o 25 años, pero sé que a día de hoy, las ventajas que proporciona Java con la multiplataforma no las tiene nadie más. El día que exista algo mejor, seré el primero en probarlo y abandonar Java si hace falta (soy pragmático, no incondicional).
Tratando de lo que nos ocupa, si solo vas a usar Windows, probablemente lo más práctico es comprar Spectaculator. Es barato y mucho mejor que JSpeccy, eso nadie lo pone en duda. Siempre que no te importe que el día de mañana el autor abandone lo que ya no le da pasta y deje tirado a todo el mundo (en Unix pasó eso con el XZX y en DOS con el Z80). Siempre te quedará Specemu, aunque su autor no tiene claro si lo abandona o lo sigue manteniendo. Si vas a usar algún Unix, la ventaja de JSpeccy es que el GUI es un poco más «manejable» que el espartano interfaz de Fuse, aunque a éste último también lo considero un emulador más completo. Si vas a usar MacOS-X o varios sistemas a la vez, JSpeccy es el único que funciona y se ve exactamente igual en todos con esfuerzo cero. Es gratis y te doy los fuentes. Crucificarlo con una excusa tan débil como que está hecho en Java y hacer palmas a los que están escritos en .NET no me parece coherente, y muchos lo hacen.
Yo aporté la voluntad, el trabajo y las ganas de aportar algo a la comunidad del Spectrum. Ya no puedo poner nada más. Si necesitas algo que JSpeccy no tiene (un debugger por ejemplo) es que ese emulador no te sirve y eso ya es harina de otro costal. Pero la excusa de Java está ya muy manida…
Hola.
Yo estoy intentando hablar del futuro, no crucificando Java. Mi IDE, con el que trabajo a diario, está escrito en Java. Conozco perfectamente la diferencia entre Java, el plugin de Java, Java en servidor y los cientos de contextos en que se usa.
Tampoco entiendo a qué viene el alegato soft propietario vs soft libre. Creo que no vas a necesitar convencer a nadie de aquí de las ventajas del software libre.
Ni tampoco he dicho que no me guste tu emulador, ni valore tu forma de hacer las cosas. Todo lo contrario, proyectos como el tuyo son los que dan vida a este mundillo. Siento mucho que te hayas ofendido, pero me parece que te has tomado el tema como algo personal.
Un saludo.
PD: No uso Windows desde hace años.
No me he ofendido ni me lo tomo como algo personal, pretendía contestar a lo que se parecía a una especie de ataque ad-hominem a la entrada de Radastan a través de Java. Tú mismo, en la primera contestación dices:
«Mmmm, sigues necesitando instalar el runtime Java, que no tienen todos los equipos. Para mí es una desventaja clara. Java no es el camino de rosas, el “compile once, run everywhere” que nos quieren vender.»
Si digo lo que digo es porque estoy habituado a que casi la única crítica infundada al emulador sea, precisamente, que está escrito en Java, como si eso fuera una especie de pecado mortal. Podrían decirse montones de cosas con fundamento, pero lo que casi siempre se esgrime como si fuera la sota de bastos es el lenguaje en el que está escrito.
Debe ser que en mi trabajo uso habitualmente varias plataformas y, si no fuera por Java, tendría más de un problema y de dos. Pero quédate tranquilo que ni me ofendo ni me lo tomo como una cosa personal. 😉
Hola.
Mi argumento primero era (y sigue siendo) que si hay algún software que está más extendido en los ordenadores (y no ordenadores) que el runtime de Java, es un navegador web 🙂
Saludos.
Hola Radastan,
me parece muy acertado este artículo.
Llevo 34 años programando (no te digo más que he vivido el tema tarjetas perforadas) he visto toda clase de promesas y paradigmas de la programación en la Empresa pública y Privada, y JAVA es de momento lo que más facilita en cuanto a interoperatividad de sistemas, de hecho te puedo asegurar que la mayoría de los Equipos Docentes en la Universidad Actual adoptan JAVA para la docencía pero no por que sea más o menos bueno para según que ámbitos sino para evitarse muchos problemas entre alumnos vs. S.O. Por otro lado felicitar al creador del emulador en Java (no conocía su web) me quedo con la maravillosa introducción que refleja muy bien al menos como me he sentido yo al afrontar algunas tareas.
Salu2.
J.A.
Hola,
si es cierto lo de los navegadores (aunque muchos bancos funcionan con AS400 por seguridad todavía y sus aplicativos no utilizan Windows) Además personalmente me encuentro más incompatibilidades en navegadores que en JAVA, aún hay veces que sino lo haces con IE el tema no funciona. Ejemplo real: aplicativos de facturación de telefónica (con millones de clientes) no funcionan sino es IE, vaya tela.
En fin….el que invente JAVA, Navegador o lo que sea realmente compatible con un sólo código se hace rico.:-).
Salu2
J.A.