BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Sugerencias e ideas para aplicaciones multiplataforma

LineBenchmark

Como el título indica, ¿alguna sugerencia para portar todas las aplicaciones realizadas en .net a multiplataforma (windows, Linux, etc.) a alguien que no entiende de estas cosas raras?.

Hasta ahora he estado pensando en varios lenguajes, y como sabréis, no existe uno solo que lo tenga todo.

De momento la prueba ha sido con la aplicación RouterPass (la intención es que serán todas las que he realizado), que la he vuelto a desarrollar tanto en Java con NetBeans, como en C++ con QT Creator. En este tipo de aplicación, no tiene mayor importancia el usar o no el gran infravalorado Java (recursos, memoria, etc, etc.) ya que no se necesita capacidad de computación y la respuesta por las pruebas realizadas son plenamente satisfactorias e incluso, diría que mejor que en .net

Pongo el screenshot de la aplicación funcionando en KUbuntu (Ubunto como diría alguno... :D ) con Java. En C++ es más de lo mismo por lo que no pongo captura. :)

Imagen original en http://img249.imageshack.us/img249/6904/routerpass2.th.png

Los pros y contras... Tamaño: Desarrollándolo con Java y sin florituras de Look&Feel, el tamaño del archivo resultante más librerías es de 288KB

En C++ más librerias QT4... supera los 11MB por una aplicación de tan solo 34KB. :-O
Por supuesto que no todo es el tamaño, pero me sorprende y hay que tener en cuenta que una aplicación no es más buena/mala o más o menos eficiente por su tamaño, aunque uno de sus puntos es que todo se reduzca a la mínima expresión cuando se desarrolla para hacer no solo el uso de las buenas prácticas, sino de comprensión y de que cada compilador tiene sus cosas a la hora de compilar ciertas instrucciones aunque estas sean válidas y hagan su cometido. Otra cosa más, es que también hay que pensar en quien estará detrás de la aplicación y de que su uso, debe ser lo más sencillo y adaptado posible, pero ese es otro cantar.

Con .Net y Linux... mal, muy mal por el momento gracias a mono que no es maduro y que creo que nunca lo llegará a ser para ciertas aplicaciones. Una de ellas el LineBenchmark... que quizás la aplicación está demasiado 'avanzada' o mono, demasiado atrasado. Con Wine... un desastre y con MV, de aquella manera.

Opciones: LineBenchmark v3 en C++ y multiplataforma aunque llene de librerías y pese un egg y parte del otro (amén de que hay que empezar desde cero y rediseñar no solo el código sino todos los controles que son únicos)... o en Java, que no creo que llegue a dar el rendimiento que tiene ahora con .net ya que se necesita cierto nivel de computación para que, a equipos con escasos recursos les funcione decentemente.

Está claro que no me importa el lenguaje que se use :D , sino que sea lo 'más multiplataforma' posible y que se pueda beneficiar todo el mundo. Abstenerse el mencionar lo relacionado con Web, ya que eso si sería multiplataforma, pero se trata de aplicaciones de escritorio. :)

Le eché un ojo a Native Client de Google, aunque creo que después de dos años, aún hay muchas limitaciones como el uso casi 'obligatorio' de cierto/s lenguajes que no se adaptan a algunos porpósitos de los que tengo en mente.

Se aceptan sugerencias/ideas. :)

BocaDePez

yo creo que un aspecto importante es el tamaño de la aplicacion una vez compilada, aunque no te lo parezca si tengo cobertura gprs si es un tamaño de 11 megas me lo pensaré antes de bajar.

yo creo que lo mas "universal y multiplataforma" es java, otro tema es si necesitas acceder directamente a recursos de hardware, entonces tendras que ir como minimo por C/C++ y pillarlo con JNI.

Es un tema complejo, tambien deberias mirar cuales son los potenciales clientes y que librerias incorporan esas plataformas, buffff, no es cualquier cosa aunque a priori parezca sencillo.

🗨️ 4
LineBenchmark

Exacto, eso es lo complicado: Buscar algo que se adapte a la mayor parte de las posibilidades.

En cuanto a Java, tiene esa 'cosa', que solo se necesita de la MV java, y en cuanto a realizar aplicaciones para móvil, que también tengo ya en mente hacer algunas cosillas en J2ME.

Los potenciales clientes, son los usuarios en global, así que no hay un perfil definido y complica más la cosa. :D

Saludos.

🗨️ 3
BocaDePez

creo que lo que deberias hacer es enfocar las aplicaciones al entorno mas demandado y mas empresarial, que al final es el que da dinero.

🗨️ 2
LineBenchmark

Pero eso dependerá del tipo de aplicación y de los objetivos. Hacer dinero está bien, ya que cualquier trabajo realizado necesita de su remuneración o recompensa, y una de ellas es ganar dinero, que es lo que se necesita hoy en día para subsistir en la actual sociedad y a veces, tan solo para cubrir unos gastos y poder poner a disposición y disfrute de todos algo creado sin un ánimo de lucro pensado.

No es un punto primordial en este momento, ya que lo que deseo principalmente es que lo que hay ahora ya desarrollado en .Net llegue al mayor número de usuarios, 'transportando' los programas a otra plataforma distinta a Windows. Vamos, las que ya hay colgadas en la Web de LineBenchmark y nuevas que vendrán sin pensar que si he estado un día o cinco Meses desarrollando algo, no tenga que volverlo a desarrollarlo de nuevo en todas y cada una de las plataformas. :)

La verdad es que no me esperaba por ejemplo que LBK fuera tan usado y de ahí que me plantee la alternativa, aunque para ello me lleve todo un año en volverlo a desarrollar.

Quizás por eso, antes no me preocupaba tanto y sencillamente diferenciaba entre desarrollo/plataforma y estaba más pasivo a la hora del desarrollo. Es decir, que algo que se hacía por ejemplo para Linux, no lo hacía para Windows y viceversa. No había tampoco motivación para ello y dependía en gran medida del tamaño final (lo repetitivo, me aburre :D ).

¿Cual es el entorno más demandado y más empresarial?. Al final, depende de a quien se dirigirá la aplicación, el tipo de aplicación y el objetivo a cumplir, aunque lo que está claro es que debe llegar al máximo número de usuarios.

Saludos.

🗨️ 1
BocaDePez
BocaDePez