Desarrollo multiplataforma

Los clientes que tenemos en Arcadina, fotógrafos profesionales en su mayoría, trabajan con dos plataformas Windows y Mac, aunque últimamente, sobre todo desde que Apple se pasó a los procesadores Intel y durante el último año más todavía (no sabemos porqué), Mac parece que esté ganando la “batalla”.

Nuestro software PhotoGestión está desarrollado con Delphi y funciona sobre Windows, yprácticamente a diario se produce una conversación así (más o menos):

- ¿Funciona en Mac? – No, todavía no funciona en Mac – ¿Para cuando estará en Mac? – Pues no sabemos decirle, no tenemos definida una fecha.

Llevo bastante tiempo, a ratos no a full-time, buscando una solución que permita a una empresa pequeña desarrollar para Windows y para Mac, he probado varios entornos, pero ninguno me ha terminado de gustar (debe ser que los comparo con mi estimado Delphi). He estado evaluando Mono+C#, RealBasic, FreePascal+Lazarus, Java, Mono+Delphi Prism y Velneo V7

Mono+C# Es un lenguaje avanzado, con una gran comunidad, con miles de componentes y librerías, es un lenguaje estándar ISO. Mono está apoyado por grandes empresas, es OpenSource y está demostrando

RealBasic casi lo consigue, pero no me decidí por la falta de comunidad, porque no será sencillo encontrar a desarrolladores con experiencia, y porque no encontré algunos componentes que necesitamos si o si.

FreePascal+Lazarus, no llega al nivel, tuve muchos problemas al intentar hacer algo, posiblemente por falta de experiencia, no lo niego. Era el primer candidato, para aprovechar parte del código que tenemos. Espero que alguna empresa (¿Embarcadero?) lo respalde y puedan dedicarle más recursos.

Java, el entorno multiplataforma por excelencia. Muchos puntos a favor: millones de programadores con experiencia, gran comunidad, miles de librerías y componentes, rendimiento más que suficiente para el tipo de aplicación que realizamos, abrumado por la cantidad de documentación y código que hay. Para mí el que más posibilidades tiene.

Delphi Prism he estado leyendo sobre él. Es el Pascal para .NET y Mono. Pero me parece que todavía está verde, hablo con la probabilidad de equivocarme porque no lo he probado.

Velneo V7, con éste entorno me pasa lo mismo que con Delphi Prism, sólo he leído acerca de él. No encontré demasiadas referencias, ni componentes y supongo que no será sencillo encontrar personal con experiencia.

Lo que he sacado en claro durante este tiempo es que:


  1. Es un tema complejo, que igual se escapa a nuestras posibilidades, dados nuestros recursos.

  2. El tema de la apariencia/interfaz: o no se parece a ningún entorno, o si queremos que tenga el look&feel de cada uno se ha de separar por capas y la de presentación hacerla ex-profeso para cada GUI con los widgets que correspondan, con las normas de cada entorno, etc. cosa que complica más el asunto.

  3. Las pruebas y verificaciones se multiplican por mucho.

  4. Temas de instaladores, bases de datos, sistemas de informes, mecanismos de impresión (necesitamos imprimir en una impresora de tickets), etc. Es algo que se multiplica por dos.

  5. Que posiblemente el futuro vaya por SaaS (alquiler de aplicaciones que se encuentran alojadas en servidores ajenos a la empresa que los utiliza), y que por lo tanto este perdiendo el tiempo con ésto. Claro que desarrollar una aplicación vía web tampoco está exenta de retos.


En fin, un mundo apasionante éste del desarrollo de aplicaciones informáticas 😉

10 pensamientos sobre “Desarrollo multiplataforma

  1. Te tomo la palabra con el punto cinco y te añado un enlace y una reflexión: tanto Mac (Safari, Chrome, Firefox) como Windows (Chrome, Firefox) tienen motores idénticos. A menos que necesites mucho proceso de CPU (y aún así V8 de Google tendría mucho que decir), ni lo pienses…

    Además controlas quién, cuándo y cómo se acceden a las aplicaciones y las actualizas cuando quieras.

  2. Gracias Al. Extenso artículo, habrá que leerlo con detenimiento.

    Esa es la gran conclusión a la que he llegado, además por la experiencia con LaGaleriaDigital. Son muchas más las ventajas que los inconvenientes.

    La gran barrera a solventar es que muchos clientes no quieren dejar fuera de sus instalaciones sus datos. Pero para eso se puede montar un mini servidor con XAMPP, WAMP, MAMP, etc…

  3. Humildemente te recomendaría (con los requisitos que has planteado en el artículo) la evaluación de Python como alternativa viable al desarrollo multiplataforma.

    Suerte y un saludo

  4. El problema que veo con Python son las herramientas y que me faltan componentes (reports, calendarios avanzados, etc.). Como lenguaje me encanta, lo he utilizado en varios sitios, pero no tengo la experiencia necesaria para confiar que será la elección adecuada para nosotros.

    Como le digo a alsanan: Creo que acertaré si elijo el camino de aplicaciones web, aunque sean en servidores locales. En éste entorno si que tenemos experiencia con PHP, JavaScript y demás teconlogías. Hay mucha documentación, ejemplos, librerías, etc.

    Gracias de todas formas.

  5. Hola Jose Alberto te recomiendo que vayas a una de las presentaciones que Velneo está haciendo por españa ahora mismo.

    http://velneo.es/73918/velneo-seminario-ventry-presentaciones-en-tu-ciudad/

    Creo que te resultará muy interesante. Aquí puedes ver un sencillo vídeo de como empezar.

    http://velneo.es/73632/mis-primeros-pasos-con-velneo-v7/

    De todas las plataformas que comentas es la única que además es PaaS lo que te permitirá desplegar tus apps en la nube o en local.

    Espero haberte ayudado. Un cordial saludo.

  6. Gracias alfonso.

    He visto que en Valencia es el 8 de marzo, me he apuntado mirar un mes antes a ver como tengo la agenda.

    De todas formas me da la impresión que la plataforma velneo está más pensada para desarrollos “in-house” que para el tipo de aplicaciones que hacemos en Arcadina.

  7. Si en la plataforma 6x de Velneo esa era la visión pero la plataforma V7 se enfoca más hacia SaaS/PaaS. Este vídeo te resultará interesante http://www.youtube.com/watch?v=9DFRQsWKnFU

    Me ha gustado mucho tu post ya que hoy día cuando buscas soluciones con las características que comentas ves que no hay grandes soluciones. Velneo es una sorpresa para mucha gente que la conoce.

    Por otra parte para mi el futuro como para ti va por SaaS, de eso no tengo duda. El in-house seguirá pero el mercado que crecerá será el del SaaS en los próximos 10 años. El in-house está creciendo a un 8% anual pero el SaaS llegará a cuotas superiores al 20% anual.

    un cordial saludo.

  8. Tienes razón en que Mac está dando mucha guerra, y a mi parecer más que dará.
    Sobre la programación multiplataforma, te doy la razón en que REALbasic no tiene comunidad, al menos en castellano, pero que no te pase nada si te metes con Java. El ecosistema es muy complejo, demasiado para mi gusto, demasiadas herramientas parecidas, demasiado de todo para que un novato se pueda introducir facilmente.
    Y lo de aplicaciones web en escritorio yo, sencillamente no lo veo. Para mi el escritorio es una cosa y la web otra, y la gente quiere tener “sus” datos en “sus” ordenadores, y más cuando hay dinero por enmedio.
    Saludos,