Livecode. Una nueva forma de programar.

LiveCode Logo

¿Qué es Livecode?

Livecode es una interesantí­sima herramienta de programación relativamente reciente, la cual promete algo hasta ahora inédito:

Que un mismo programa hecho con esta herramienta funcione sin problemas en Windows, LINUX, MacOSX, UNIX (Solaris y BSDs) IOS y Android.

Algo parecido a lo que hace Java, Python o “.Net”, pero mucho más sencillo. Obviamente no se puede utilizar Java, Python o “.Net” para programar para Ipad e Iphone (a excepción de Xamarin con C#).

Además, estos otros lenguajes que menciono, no se portan muy bien a la hora de diseñar aplicaciones gráficas (con la excepción de .net en Windows) y Java (aunque todos sabemos lo “bonitas” que son las aplicaciones en Java  🙁    )

Y si, es verdad, ¡¡LiveCode funciona en todas partes!! (pero con matices que luego veremos).

Antes que nada, os voy a contar un poco la historia de esta herramienta y su funcionamiento.

Historia de LiveCode y Revolution (el lenguaje de programación de Livecode)

Livecode se inspira en un lenguaje de programación mucho más antiguo denominado “HyperTalk”. Este lenguaje fue creado en 1987 por un programador Estadounidense llamado Dan Winkler.

HyperTalk
HyperTalk

Por lo visto, Apple se interesó mucho en este lenguaje y lo compró para incorporarlo en un producto suyo denominado HyperCard.

HyperTalk era un lenguaje de programación extraordinariamente sencillo (prácticamente era como hablar en Inglés).

Apple distribuyó en sus sistemas  operativo el HyperCard desde 1987 hasta el año 2004, (año en el cual Steve Jobs decidió dar por finalizado el producto y retirarlo del mercado). De hecho, HyperCard nunca se portó demasiado bien en sistemas operativos de Apple que no fueran “Classic” (debido a que Apple no le daba soporte).

La pregunta del millón es:

¿Era HyperCard un buen software? ¿porqué lo retiró Apple?

HyperCard no solo era un buen software: Era un excelente software.

Steve Wozniak (el co-fundador) de Apple llegó a decir que HyperCard era el mejor software jamás escrito: “I still believe that HyperCard is the best program ever written,”

http://www.macworld.com/article/1018126/woz.html

A finales de los años ochenta existí­an cientos de empresas trabajando con HyperCard. Incluso, la todopoderosa Oracle, ofrecí­a un software basado en HyperCard para conectarse a bases de datos de Oracle: Oracle Media Objects (la cual, luego derivó en Oracle Forms). Activision usó Hypercard en muchos de sus productos y como nota curiosa HyperCard fue usado en Quebec para controlar el robot que insertaba y retiraba las cintas de disco del National Film Board “CinéRobothèque”.
El juego de ordenador  Myst fue hecho con Hypercard.

Hubo fabricantes que crearon un montón de “plugins” para HyperCard: Primitivos sistemas de acceso a Internet, controladores de los puertos hardware del Mac para manipular dispositivos electrónicos, sistemas de animación y multimedia, etc.

Actualmente, lenguajes de programación como “Apple Script” están basados en HyperCard.

Entonces, ¿por qué Steve Jobs decidió eliminar este excelente producto de “golpe y porrazo”?

Bueno, Apple jamás dijo nada sobre el motivo, y Jobs se lo llevó a la tumba. No obstante existen múltiples teorí­as como estas:

  1. Macromedia forzó a Apple a eliminarlo debido a que al principio del milenio le hací­a la competencia a Flash, y amenazó a Apple con eliminar el soporte para Flash en los Macs (luego Jobs se “vengó” eliminando años más tarde el soporte para Flash en los nuevos Iphones e Ipads).
  2. HyperCard estaba haciendo la competencia a Filemaker (también de Apple y muy parecido), y como HyperCard siempre se habí­a distribuido gratis en los Mac, Jobs decidió eliminarlo (la teorí­a mas plausible).
  3. Jobs, con el estreno de MacOSX querí­a “profesionalizar” el diseño de aplicaciones para los Macs obligando a los programadores a utilizar la tienda de Apple y la plataforma Xcode. Hypertalk venía de serie en todos los macs e incluso existian versiones para UNIX, por lo tanto Apple quería hacer “pasar por caja” a todo el mundo.

Esta y otras razones mas “románticas” se explican aquí­ (en Inglés):

¿Por qué HyperCard tení­a que morir: Why Hypercard Had to Die?

http://web.archive.org/web/20150605191133/http://www.loper-os.org/?p=568

El lenguaje

LiveCode está inspirado completamente en el lenguaje HyperTalk (Versión MetaCard) y la primera versión del lenguaje surgió en el año 2001. En aquella época se llamó “Revolution”.

 

MetaCard
MetaCard

Revolution fue cambiado de nombre a “LiveCode” en el año 2010.

La empresa que creó y desarrolla actualmente este lenguaje es Runtime Revolution Ltd, empresa Escocesa con sede en Edimburgo.

Livecode ganó el premio de la revista Macworld (Macworld Annual Editor’s Choice Award) por “mejor desarrollo de software del año 2004”.

A partir del año 2013 existen varias versiones de Livecode:

Varias versiones de pago que cuestan entre 50€ y 1.500€ (dependiendo de sus características) y una versión libre (completamente pública), la cual es gratis, pero la misma pone como condición que si se comercializa un programa, es obligatorio publicar el código de forma pública (Licencia GPL).

Se puede bajar LiveCode desde aquí­ (Hay versiones de la herramienta de desarrollo para Windows, Linux y Mac y una versión para ser ejecutada desde un servidor web como si fuera PHP ):

https://downloads.livecode.com/livecode/

LiveCode ejecutándose en un Mac
LiveCode ejecutándose en un Mac
¿Cómo es LiveCode?

 LiveCode es un lenguaje muy sencillo, es casi como hablar en inglés:

put url “binfile:picture.jpg” into url ftp://john:[email protected]:2121/picture.jpg

Este ejemplo anterior se coje la imagen “Picture.jpg” y se manda al servidor “ftp.example.net” mediante FTP (con el usuario John, clave “passwd” y puerto “2121”.

Mediante el otro siguiente ejemplo escribiremos en tí­pico “Hola mundo” en una ventana emergente:

answer “Hello World!”

Livecode tiene aproximadamente 1900 (un poco más) sentencias de programación y las mismas se pueden extender mediante “plugins” o programándolas directamente en lenguaje “C”.

La filosofí­a de la herramienta de desarrollo se basa en un “baraja de cartas” denominada “Main Stack” o “Baraja principal” de la cual cuelgan “Cards” o “Cartas”.

Voy a explicar este concepto un poco más:

Cuando arrancamos la herramienta de desarrollo, tenemos que crear un nuevo proyecto. Este nuevo proyecto contendrá un “Main Stack” que será algo así­ como la “página” principal.

De esta “página” colgaran la siguientes “pantallas” que iremos creando para nuestro programa.

Cada una de estas pantallas se llamará “Card” y tendrá un número único y exclusivo.

Ejemplos

Si quiero crear un pequeño software que se conecte a Internet y me diga que tiempo hace en la calle, tendré que hacer lo siguiente:

Primero: Crear un “Main Stack”

Segundo: Crear una nueva carta donde (por ejemplo) se nos invite a introducir la ciudad cuyo tiempo queremos consultar.

Tercero: Crearemos una tercera carta donde aparecerá el resultado de nuestra consulta.

La Herramienta es muy parecida al viejo “Visual Basic”, ya que podemos arrastrar a las diferentes cartas, botones, etiquetas, cuadros de texto, etc. Y programar cada objeto para que haga cualquier cosa. Es decir:

Técnicamente, LiveCode es un lenguaje de programación orientado a “eventos del ratón” (igual que visual Basic).

LiveCode entorno de programación
LiveCode entorno de programación

 

Una cosa que me encanta de Livecode es la facilidad para manejar puertos USB y puertos serie, y por ejemplo, poder controlar un Arduino de forma muy cómoda.

Un ejemplo:

/* Mandar el carácter  “H” por el puerto USB / Serie a un Arduino */

set the serialControlString to BAUD=9600, PARITY=N, DATA=8, STOP=1 — configuramos el puerto
open driver /dev/ttyACM0for binary update — Abrimos el puerto
write numToChar(0x48) to driver /dev/ttyACM0 — Mandamos el carácter “H” en hexadecimal al arduino conectado al puerto /dev/ttyACM0 en Linux

Si trabajas con Windows solo habrá que cambiar el puerto /dev/ttyACM0 por el que tengamos en Windows (COM1, COM2, etc.)

Problemas:

Hasta aquí­ todo parece muy bonito, pero existen problemas molestos, los cuales os voy a listar:

1)      Falta de documentación: Al ser un lenguaje reciente apenas hay documentación del mismo (sobre todo el Castellano).

2)      No existe todaví­a una comunidad de usuarios amplia en Internet.

3)      A veces es un dolor de cabeza configurar el entorno para que funcione correctamente con Android. Aunque esto se ha resuelto con la versión 7.0 y posteriores.

4)      A veces es necesario adquirir “plugins” de pago para trabajar cómodamente con el entorno de desarrollo (sobre todo si desarrollas para Android e IOS).

5)      Hay “comandos” que solo funcionan bien en algunas plataformas y en otras no.

6)      Hay cosas que todaví­a no se pueden hacer. Por ejemplo: Algunas funciones avanzadas en IOS no están soportadas aún.

7)      Al ser desarrollado por una empresa pequeña, todaví­a no se sabe muy bien qué futuro tendrá.

8)      La herramienta tiene algunos fallos o “bugs” molestos (sobre todo en Linux).

9)      Todo el entorno de desarrollo y la documentación están en Inglés.

Por lo demás, os diré que las ventajas superan a los inconvenientes y en nuestra empresa https://www.networkdreams.net/ hemos decidido hacer una apuesta fuerte por este lenguaje.

¿Os animáis a aprender LiveCode?

Recursos:

Tutoriales: http://lessons.runrev.com (solo en Inglés)

Foros: http://forums.livecode.com (solo en Inglés)

 

Pequeña presentación y tutorial de LiveCode en Español (el sonido tarda unos segundos en entrar)
¡Ojo! esta presentación es antigua y es anterior a la versión gratuita de la misma (LiveCode 6.0).

Ahora mismo Livecode ya va por la versión 9.3.

Livecode se rediseñó completamente desde la versión 8.0 y se añadió  la posibilidad de crear “widgets” personalizados desde la versión 8.0 🙂

10 Comentarios

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Privacidad y cookies

Utilizamos cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mismas Enlace a polí­tica de cookies y política de privacidad y aviso legal.

Pulse el botón ACEPTAR para confirmar que ha leído y aceptado la información presentada


ACEPTAR
Aviso de cookies