Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
216 lecturas y 5 respuestas
  • [Editado]

    Sugerencias e ideas para aplicaciones multiplataforma

    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. :)

    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. :)

    Este tema lleva más de 6 meses inactivo. Es recomendable que abras un nuevo tema para retomar la conversación.
    • Boca de Pez Boca de Pez
      6

      yo creo que un aspecto importante es el tamaño de la…

      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.