secciones

Buscando tecnología

Pongamos que queremos hacer una aplicación. Se trata de una aplicación clásica, de escritorio, no una aplicación web ni nada parecido. Ya que estamos ¿porqué no hacerla para varios sistemas operativos? Contemos como mínimo Linux, Windows y MacOS X. Y la aplicación se tiene que ver bien en cada sistema, no tiene que parecer un alien venido del espacio (o de otro sistema operativo). Idealmente se debería poder instalar con un instalador propio sin requerir demasiado trabajo previo, como complicadas instalaciones de interpretes, etc. Bueno, podríamos aceptar la instalación previa de un interprete o máquina virtual si ella misma no es difícil de instalar, doble click y basta.

Vamos allá, pensemos, pensemos, ¿qué opciones tenemos?

Algunas ideas:

  • Usar el antiguo y fiable C++ con una librería gráfica multiplataforma tipo wxWidgets (antes wxWindows). C++ no es un dechado de portabilidad en cuanto a código fuente, pero con los #ifdef adecuados, puede ser una buena opción. Incluso creo que existen librerías para recolección automática de basura, porque muchachos, estamos en el siglo 21, gestionar uno mismo la memoria para lo que no sea programación de sistema parece una perdida de tiempo.
  • Python más librería gráfica. Python está reconocido como un excelente lenguaje. Y seguimos con la opción de wxWidgets, ya que existe binding del mismo para python. Por supuesto, es necesario instalar el interprete de python previo a nuestro programa, pero no parece complicado. Además es posible que se pueda crear un paquete con nuestro programa más el interprete.
  • Java. Ya, ya se que tiene muy mala prensa. Pero que le vamos a hacer, me gusta. Y como ya dije, una aplicación como jPlucker me demuestra que se puede hacer una buena aplicación de escritorio con él. Nuevamente tiene el problema de tener que instalar previamente la JVM. Pero no es complicado, de veras. Además siempre se puede hacer un cobundle de la JVM junto al programa.
  • .Net y/o Mono. No tengo claro cómo está esto. ¿Lo que se hace en .Net es compatible con Mono y viceversa? ¿O mejor desarrollar sólo para Mono? ¿Está suficientemente maduro? ¿Es fácil instalar la máquina virtual de mono? ¿se puede instalar junto con la aplicación?

Bueno, hagan juego señores. Ideas, experiencias con las opciones anteriores, nuevas opciones. Cualquier cosa es bienvenida.

Idea extra: ¿No sería interesante hacer una especie de banco de pruebas donde implementasemos una pequeña aplicación con todas las opciones posibles para comparar?

Anterior: Prestamo en Bibliotecas Públicas Siguiente: Napkin para Java