Entra en escena, Livecode 5.0

Livecode LogoHace mucho ya hablé de Livecode, aunque al parecer, la entrada se perdió en el cambio de blog. La idea de escribir esta entrada, es porque estamos evaluando de nuevo esta herramienta, muy seriamente, para adoptarla para migrar nuestros proyectos actuales, y basar en ella los futuros, sobre todo, tras la salida de la nueva versión 5, que incluye soporte para Android.

Sí, ya sé que soy impulsivo, y que cambio de lenguaje como quien cambia de camisa, pero las decisiones que suelo tomar, siempre suelen basarse en algún tipo de fundamento, y siempre va acompañado de un análisis del mercado. En Komenco nos encontrábamos desarrollando “felizmente” bajo Velneo. Una herramienta que nos gusta mucho, de una empresa española, con una comunidad envidiable respecto a otras plataformas de desarrollo, y con una filosofía basada en cloud más que interesante. Pero ciertas reuniones con clientes, han hecho que surjan distintos proyectos nuevos, que nos han obligado a plantearnos la posibilidad de migrar los proyectos ahora, antes que sea demasiado tarde.

 Antecedentes

Por un lado, nos han surgido proyectos de movilidad, bajo Android e iPhone. Velneo ha sacado en su nueva versión v7.8 un cliente beta para Android (para niveles 3 y 4), que además de ser Beta, requiere de conexión con el vServer para funcionar. La idea no es mala,  todo lo contrario, pero no nos sirve. Nosotros requerimos que nuestras aplicaciones funcionen autónomas del lado del cliente, y luego sincronicen con el servidor, y además, para iOS no ha salido nada y no se sabe tampoco si está en planning o para cuando. Existiría la posibilidad de montar la aplicación sobre Tablets con Windows XP/7, pero entonces obligaríamos al cliente a migrar sus dispositivos, cuando muchos de ellos ya disponen teléfonos Android. También existe la posibilidad de montar las aplicaciones de movilidad sobre PhoneGAP, y que comuniquen con la aplicación Velneo por sockets, pero entonces estamos diversificando, y el equipo requiere el doble de conocimiento para mantener dos aplicaciones en dos lenguajes distintos, algo, que en Komenco, acabando de comenzar, no nos podemos permitir, y más aún cuando mi filosofía es, siempre y cuando sea posible, usar el mismo lenguaje “para todo”.

Por otro lado, el cliente también nos han pedido que requieren una pequeña intranet web que ellos mismos pudieran ampliar y modificar. También podría desarrollarse perfectamente en Velneo, con el módulo vModApache, pero que exista vModApache no implica que Velneo sea una herramienta para desarrollar web (ya que no lo es), y por último, los datos deben ser cómodamente gestionados por un DBA e integrados con otras herramientas y por todos es sabido que la BBDD de Velneo es cerrada, y se requieren herramientas propias de Velneo, o tirar de ODBC para poder acceder a los datos, sin contar, que Velneo no es una herramienta pensada, que no quiere decir que no pueda, con otras BBDD. Tema vetado.

Por supuesto, el entorno que elijamos, debe estar totalmente respaldado por una empresa consolidada.

Alternativas

Tras darle muchísimas vueltas al asunto, nos encontrmos con distintas opciones viables.

  • Windev, WebDev y Windev Mobile de la empresa PCSoft.
  • RealStudio de la empresa RealSoftware.
  • Livecode de la empresa Runrev LTD.

Seguramente existan muchas otras herramientas existentes, pero de todas las que se estuvieron estudiando, estas tres, fueron las que más nos gustaron.

WinDev/WebDev/WinDev Mobile

Windev ya lo conocemos. Ya he programado en WLanguage, y es una herramienta muy potente, además de disponer en la actualidad de licencias de V15. Tras navegar un buen rato por internet, y acordarme de haberlo usado en el pasado, decidimos descartarlo. Por un lado por el tema económico, del que hablaré más adelante. Las principales razones por la que se descartó, fué que la Suite de PCSoft, sólamente corre en Windows. Los desarrolladores deben programar forzosamente desde Windows, y además, sobre un IDE bastante pesado e inestable. En el pasado ya me hizo alguna que otra jugarreta, y no fué en un proyecto precisamente grande. Además, las indagaciones por internet no han sido muy satisfactorias. Me he encontrado con una comunidad bastante quemada, quejándose de, inestabilidad, cantidad ingente de novedades que se presentan a bombo y platillo tras un año sólamente de la aparición de la versión anterior, y además, de las cuales, novedades sólo son una cuarta parte, y de ahí, habría que eliminar las que no funcionan, o estan mal implementadas.

RealStudio

Realstudio era otra alternativa. Me gustaba la simplicidad del lenguaje (a pesar que no me guste Basic, pero ésto es otro tema) que no restaba potencia a la herramienta. IDE que funciona en Windows/Mac/Linux, con deploy nativo en Windows/Mac/Linux, y con un modo Web Edition, que permite generar aplicaciones CGI para correr en la web, como si fuera una aplicación de escritorio. Pero algo fallaba, y ese algo, era la movilidad. RealStudio, actualmente no tiene ninguna solución para movilidad, salvo el Web Edition. Diréis que al fin y al cabo, los terminales si tienen conexión a internet, pueden trabajar perfectamente sobre una Web, pero recordar, que uno de los requisitos, es que pueda trabajar desconectado. Existen muchas razones que pueden provocar que el dispositivo móvil, por alguna u otra razón, no tenga cobertura, se caiga la red, mil razones, que no queremos que puedan interferir en el trabajo de nuestros clientes, ya que, si no hay cobertura en cierto lugar, la responsabilidad, no sería del operador, si no nuestra por no tener prevista una solución ante ésta situación. Para mantener conexión constante, hubiéramos continuado con Velneo, con el que relativamente, estábamos bastante contentos. Existía la alternativa de usar Realstudio + PhoneGAP. Esta solución no me terminaba de desagradar. Los proyectos Web y Escritorio podríamos afrontarlos con RealStudio, y PhoneGAP para movilidad (mucha movilidad, ya que PhoneGAP funciona en muchas plataformas), pero entonces, me acordé de Livecode y la belleza de su lenguaje…

LiveCode

Livecode era la última alternativa. A finales de 2010, ya fué una herramienta que estuve “estudiando” para basar nuestras soluciones, y sinceramente, la única razón por la que no acabé comprándola, fueron unos problemas en el pago de la solución. Por aquel entonces, disponía de una tarjeta Maestro, pero necesitaba una tarjeta Mastercard/VISA que me permitiera realizar la compra, y el intentarlo desde una transferencia bancaria internacional (la sede de Runrev se encuentra en Edimburgo) no fué satisfactoria. Podría haberme esperado al Lunes, y haberla hecho desde mi banco, pero mi impaciencia de aquel entonces hizo que lo descartara (lo sé, soy impulsivo, ya lo dije, pero he madurado) y me decantara al final por Velneo (hecho, que por cierto, no me arrepiento para nada, si no fuera por la prisa que me corre ahora).Livecode corre sobre Windows/Mac/Linux, y despliega en Windows/Mac/Linux. Para movilidad permite generar aplicaciones para iOS y Android, y para web, permite generar una aplicación que corre directamente en el navegador a través de un plugin propio, o bien instalar el RevServer (que es un CGI) para poder programar en scripting como hace PHP, mezclando HTML y código Livecode. Livecode tampoco es que sea perfecto. El plugin para web no está actualizado (aunque de todas formas no pensábamos usarlo), el despliegue para Android al parecer tiene alguna carencia aún, y Runrev tiene una política al parecer bastante curiosa con el licenciamiento de actualizaciones de sus productos hacia  nuevas versiones. Pero su lenguaje (me quiere sonar que se llama Transcript)su manera de trabajar, me llamaba demasiado la atención.

Conclusión

Tras perder una semana, como habréis podido imaginar por el título de la entrada, nos hemos decantado por Livecode por diversas razones.

Despliegue

Livecode nos permite programar desde Windows, Mac y Linux pudiendo hacer despliegue de la aplicación en Windows, Mac, Linux, iOS, Android, y Web, pudiendo abarcar con la misma herramienta los proyectos con sus requerimientos que tenemos actualmente, así como cualquier solución que se nos pueda presentar.

Lenguaje

Transcript es un lenguaje de programación “bello“. Escribir, mantener código, e incorporar nuevos desarrolladores, es totalmente entendible por otros programadores debido a que se programa como si estuvieras escribiendo inglés. No sé explicarme correctamente, por eso os pego un ejemplo de código.

De serie, trae funciones para todo tipo de necesidades, y si algo faltara, puede implementarse, o bien directamente en Livecode, o usando externals. Una

on mouseUp
put “Hello World!” into field 1
pass mouseUp
end mouseUp

De serie, trae funciones para todo tipo de necesidades (XML, sockets, bases de datos,manejo de archivos comprimidos, etc..etc..etc..), y si algo faltara, puede implementarse, o bien directamente en Livecode, o usando externals. Un detalle, es, que LiveCode, está escrito en LiveCode, eso ya dá un indicio de la potencia del lenguaje.

Versatilidad

LiveCode es una herramienta multipropósito. Podemos afrontar, no sólo aplicaciones empresariales, si no también contenido multimedia, juegos, etc… Además, todo el entorno, al estar construido sobre Livecode, tenemos acceso a él y podemos “alterarlo” a nuestras necesidades. Es programación basada en eventos, donde objetos interactúan unos con otros mandándose mensajes que recorren el message path“siguiendo una jerarquía, y que nosotros podemos capturar, dándonos un control absoluto del entorno. El control DataGrid, sin ir más lejos, no es un control como tal. Es un grupo de controles, agrupados (valga la redundancia), con un comportamiento ya programado que nos hace tener la impresión que es un único control, pero podemos desagrupar, controlar totalmente su comportamiento para nuestras necesidades, y volver a agrupar, obteniendo a partir de ahí un control totalmente distinto. Si, sé que no es nada nuevo, y que ésto existe desde hace eones, pero la facilidad con la que podemos tratarlo, si que no la he visto en otros lenguajes. Además, en LiveCode no hace falta “editar/compilar/depurar”. Cuando trabajamos sobre una stack ésta se está ejecutando en ese mismo instante, pudiendo controlar y modificar en todo momento el comportamiento de la aplicación a tiempo real.

Potencia y estabilidad

Para finalizar, lo que más me ha gustado de LiveCode. Es el conjunto de potencia y estabilidad. El IDE es muy muy ligero y estable, apenas enterándose el ordenador que tiene un completo entorno de desarrollo funcionando en ese momento, y las aplicaciones generadas son rápidas como un rayo. Si, es cierto, que a los 15 minutos llegué a colgar el IDE, pero también hay que admitir que fué culpa mía por tocar donde no debía y sin saber.

Finalizando

Como siempre he dicho, cada programador tiene unas necesidades, y el entorno de programación debe amoldarse en la medida de lo posible a éstas, así como el programador debe poner de su parte, ya que cada entorno tiene sus peculiaridades. LiveCode no es una excepción. Tendrá sus defectos, como todos, ya que no existe la herramienta perfecta, pero tras el estudio que hice en su momento, más el actual, diría que LiveCode es la herramienta que mejor se amolda actualmente a nuestras necesidades.

Para quienes les haya picado la curiosidad, en su web (que se encuentra, hoy 22/10/2011 a las 12:00 caída por un problema en sus servidores), podéis descargar un Trial para probar la herramienta, y creo que todos los Sábados se realiza un evento por streaming llamado LiveCode.tv Event donde programadores en LiveCode exponen sus proyectos y curiosidades. En estos eventos, los ponentes se comunican con los observadores mediante una aplicación llamada ChatRev, precisamente desarrollada en LiveCode.

Me gustaría enlazaros a una parte del primer LiveCode.tv Event que ví (de 1 hora de duración), donde Bjoernke, un experimentado programador en LiveCode, está mejorando un pequeño Generador de consultas SQL, y desarrollando modificaciones en tiempo real que le van pidiendo por ChatRev, mostrando la potencia que tiene este entorno. Por cierto, Bjoernke es un cachondo, no dejéis de revisar su canal de UStream.

    • Carlos
    • 22 octubre 2011

    Hola, he leído el post y creo[*] que estás/áis enfocando mal el asunto. Por varios motivos, uno es éste:

    mi filosofía es, siempre y cuando sea posible, usar el mismo lenguaje “para todo”.

    Tal vez no sea el motivo principal pero lo destaco para haceros recordar que en el software no existe ninguna bala de plata. Sé que no os descubro Roma (bueno, si no os suena aquí tienes http://bit.ly/2u2Vw tema por el que los años no pasan). Queréis una navaja suiza para las plataformas software más utilizadas a nivel pyme/doméstico (al menos: win32/64, unix, macos, android, ios) que sea estable, flexible y potente. Además con la que poder obtener binarios/artefactos ligeros, eficiones, buenos, bonitos y baratos. Lo siento, pero sabéis que no lo hay ni lo habrá :-) Es importante que volváis a haceros a la idea que ni Velneo ni siquiera LiveCode es la solución para todo. Queréis matar moscas a cañonazos y seguro que no os descubro Roma pero me da que habéis perdido cierta perspertiva.

    ¿Queréis algo multiusos real? ¿Queréis un todo en uno? Para vuestro nicho (pymes/doméstico) y para casi todos a lo mejor ya existe desde hace años y se llama C, o se llama C++ Pero desde luego que tiene un alto coste y roza con vuestro problema principal (que al final lo pondré): el coste es que os especialicéis _completamente_ en desarrollo software con C++ Ir a capas superiores en pro de ser menos experto en tu herramienta, conduce a tener que trabajar con más herramientas (no siendo experto en ninguna de ellas. Experto en el sentido de ser un experto en C++. Que evidentemente no tiene el mismo valor que un experto en LiveCode, tiene mucho más porque con LiveCode no puedes hacer ni la mitad ni tiene una cuarta parte de estabilidad y potencia que algo como C/C++, seamos realistas)

    El mayor problema: la impaciencia. La cosa está jodida, sí, pero el desarrollo software es como es, no intentéis saltaros pasos o encomendaros al espíritu de Velneo o LiveCode.

    No puedo seguir con el comentario, que llego tarde. Un saludo y ánimo.

    [*] opinión personal y sin ánimo de “tirarte de las orejas”, enseñarte nada que ya no sepas o dármelas de mejor “lo que sea” que tú. Después de leer el post me apeteció comentar la jugada nada más :) si no estáis de acuerdo con mi comentario pues perfecto pero no ofenderos que no es mi intención de verdad.

    • Giuseppe Luigi
    • 22 octubre 2011

    Hola Carlos, gracias por tu comentario. Tranquilo que no me tomo a mal tu comentario ni mucho menos, este blog está abierto a comentarios de todo tipo siempre y cuando, como tú, se hagan desde el respeto. Y bien….

    Sé que lo que queremos, no existe. Pero si podemos hacer una aproximación a lo que buscamos. La idea, es buscar una herramienta de alto nivel, que nos acerque lo máximo posible al mayor número de proyectos, para evitar, programar en Velneo una cosa, programar PHP otra, programar en Java otra, programar en ObjectiveC otra.

    Está claro, que Livecode, no llega a la estabilidad y portabilidad de C++, pero también nos ahorra unos cuantos quebraderos de cabeza que éste último si nos daría.

    Soy de la opinión, que a día de hoy, usar lenguajes de bajo nivel como C/C++ para montar un ERP, por ejemplo, eso sí que es matar moscas a cañonazos con un código mucho más complicado de mantener.

    LiveCode no puedes hacer ni la mitad ni tiene una cuarta parte de estabilidad y potencia que algo como C/C++, seamos realistas

    La estabilidad de la aplicación, la dá el programador. En cualquier lenguaje se puede programar mal. Y respecto a hacer la mitad de lo que hace C/C++, eso depende del primsa a usar. No tengo intención de desarrollar un sistema operativo, por ejemplo, por lo que, que con C++ pueda, no sirve como baza en mi análisis.

    Para el tema de movilidad, lo que permite LiveCode de momento nos sobra, y lo mismo para web. La idea no es tirar de LiveCode para todos los proyectos web obviamente. Muchos de ellos serán abracados con Typo3, o Drupal… un CMS ya hecho, pero si nos vale para programar “extensiones” sin tener que lidiar con PHP o Java (que no me gusta ninguno de los dos) por ejemplo, y el código podría ser mantenido por todo el equipo al programar todos bajo el mismo lenguaje.

    No sé si comprendes un poco mejor mi punto de vista.

    Nosotros no programamos a bajo nivel, entre otras cosas, porque para los proyectos que vamos a desarrollar, no nos hace falta. Si desarrolláramos videojuegos, si que tiraríamos de un lenguaje de bajo nivel como C

    Actualmente, el equipo de desarrollo consiste en mi, y si no pasa nada un par de personas que se incorporarán en breve. Yo, no sé C/C++ ni tampoco PHP (y ni ganas de aprender ninguno de los dos siempre y cuando pueda evitarlo), por lo que, apostar por una herramienta, que permita que pueda olvidarme de quebraderos de cabeza (memory leaks, portabilidad, librerías etc….) y centrarme en la lógica de la aplicación que es lo que me interesa, no creo que sea perder el tiempo, y ni mucho menos una locura ;)

    Un saludo.

    • Rodolfo
    • 26 octubre 2011

    Hola,Giuseppe.

    Igual que tú he mirado las mimas alternativas por lo que me interesa mucho saber tus impresiones de LiveCode a medida que vayas avanzando.

    Ojalá puedas seguir compartiendo en este foro tu experiencia en LiveCode.

    Saludos,

    Rodolfo

    • Roberto Blasco
    • 9 noviembre 2011

    Hola.

    He estado probando la herramienta y me parece ser un poco de juguete. ¿Estás seguro de que puede cubrir todas tus espectativas para un dispositivo móvil dado un momento?

    Un saludo. Roberto Blasco.

    • Giuseppe Luigi
    • 9 noviembre 2011

    Hola Roberto,

    Bueno, principalmente, fueron un par de proyectos en movilidad los que me impulsaron a volver a chequear LiveCode e inclinarme hacia él.

    Estos proyectos, se han echado para atrás, por desgracia, pero por contra, han surgido otros que inclinan la balanza de nuevo para no moverme de Velneo (cosa que tampoco me hacía tanta gracia, tirar tiempo y dinero invertidos en esta herramienta), así que, digamos, la cosa se queda como está.

    El tema es, que no me gusta eliminar post, si algo lo he escrito, escrito está, y aunque no tenga mucho sentido ya que seguiré desarrolando en Velneo, quizás, la información le pueda ser útil a otra gente.

    Respecto a que LiveCode parece de juguete, bueno, he trabajado con la versión Trial haciendo pruebas, y he coincidido con otros desarrolladores hispanohablantes que están haciendo proyectos “serios”, y de momento, toda la información “recolectada” ha sido satisfactoria. Para mi, Visual Basic si que era de juguete (sobre todo comparado con Delphi), y mira donde llegó.

  1. Aun no hay enlaces.