Capítulo 3. Programación en MetaTalk y Transcript

Tabla de contenidos
Variables
Vectores
Paso de mensajes y funciones
Instrucciones: control de flujo
Envío de mensajes y cancelación
Edit the tool with the tool
Multiplataforma
Programando en MetaCard y Revolution sin pilas
Caso de estudio: personalizando MetaCard
Ejercicios y actividades

Este punto es una breve revisión a cuestiones muy relacionadas con aspectos de programación tanto en una como en otra herramienta de las que nos ocupan aquí. Este apartado introduce los aspectos de programación más básicos de los lenguajes MetaTalk (MetaCard) y Transcript (Revolution), de forma breve se hace un repaso de las características que más sorprenden al programador aconstrumbrado a un lenguaje imperativo, así como de los conceptos que relacionan a estos lenguajes con las metodologías orientadas a objetos (aunque ya aviso que no lo son) y aprovecharé para recordarle algunas cosas que ha podido ver en las referencias mencionadas hasta ahora, o las que se ha perdido.

Concretando, nos vamos a centrar en:

No espere una iniciación a la programación en esta sección, si no puntos de conexión con sus referencias anteriores a algún lenguaje de programación. Si necesita empezar con lo básico, como referencia le sugiero la serie de pilas MetaTalk Programmer de MetaCard Corp. Esta "serie" está compuestra por dos pilas, que se muestran en la Figura 3-1: mtp.mc para el aprendizaje autónomo de cuestiones de programación y el mtpguide.mc para ayudar a planificar y dirijar esta actividad de forma externa al estudiante. Las puede encontrar en el sitio FTP de MetaCard.

Entre bromas y veras, MetaTalk Programmer, le obligará a seguir una trayectoria de aprendizaje en la que avanzará conforme vaya completando etapas. Si quiere saltarse la necesidad de contraseña o la secuencialidad tendrá que saber ya un poco de programación y otro poco de MetaCard; lo que querrá decir que puede dar por superada esta etapa. También encontrará apoyo si su papel es el de promotor de este proceso: con la ayuda de las lecciones básicas del Teacher's Manual dispone de un material ordenado y didáctico de instrucción en temas de programación, por supuesto aplicados sobre MetaCard, que construye sobre la anterior aplicación un curso básico con contenidos, lecciones, ejercicios, etc.

Figura 3-1. Puede aprender a programar con el propio MetaCard y su MetaTalk Programmer (izquierda) o dirigir este proceso con la ayuda de las lecciones básicas del (derecha) MetaTalk Programmer Teacher's Manual .

Variables

Las variables en MetaCard no se definen con un tipo de datos, sino que son un ejemplo de contenedores (containers). Estos pueden almacenar tanto valores alfabéticos como númericos y en MetaCard/Revolution se definen cinco clases: campos de texto, botones, imágenes, direcciones URLy variables.

Podemos hablar de sus características y diferencias con sentencias que puedan se ejecutadas en la "Message Box" y, en general, estos elementos admiten:

Nota: En otros lenguajes de programación se utiliza la orden write para escribir un texto. Aquí se puede utilizar también para escribir en ficheros o a un socket. Por ejemplo, si ha ejecutado MetaCard desde un terminal en su sistema operativo preferido y quiere mostrar un texto en este, puede ejecutar la siguiente orden desde la "Message Box":

write "hola" to stdout

Aquí utilizaremos la orden put por su mayor versatilidad y así reduciremos el número de órdenes a aprender.

Habrá que tener presente que existen diferencias particulares asociadas a cada tipo de contenedor:

Nota: No es obligatorio declarar las variables, pero puede ayudar (activando la opción Tools|Explicit variables del editor de scripts) para detectar omisiones al escribir el nombre de una variable no declarada. De esta forma, el sistema mostrará un error al encontrar una variable no declarada. En caso de no estar activa, el comportamiento por defecto es crear un variabe local con el nombre encontrado y que, inicialmente, tiene contenido vacío.

Además, estas líneas no se cuentan a la hora de aplicar el límite de 10 instrucciónes del Starter Kit, así que no se preocupe. Puede aprovechar para comentar su cometido junto a su declaración.

En lo que respecta a las variables cabe decir que estas no se pueden utilizar para mostrar información directamente en pantalla. Lo único que se puede declarar de ellas es su ámbito de validez, esto es: si sólo es visible y modificable su contenido en el presente script (local) o en cualquier otro script en que se repita la declaración utilizando la orden global. Tras cada una de estas órdenes puede ir tantos nombres de variables separados por comas como se desee.

Sugerencia: Existe otra acepción de variables: las de entorno. Estas hacen referencia a las que el sistema operativo ofrece a una aplicación en ejecución. Depende su número y nombre por tanto de su plataforma de ejecución, pero entre otros sirve para acceder a parámetros que se le pasen en la línea de órdenes. La sintáxis es la misma que en sistemas UNIX. Volveremos sobre esto cuando abordemos el tema de la construcción de CGIs con MetaCard