robot de la enciclopedia para niños

AppleScript para niños

Enciclopedia para niños

AppleScript es un lenguaje de programación especial creado por Apple. Su propósito principal es ayudar a las computadoras Mac a realizar tareas automáticamente y a que diferentes programas se comuniquen entre sí. Piensa en AppleScript como un "cerebro" que le da instrucciones a tus aplicaciones de Mac para que hagan cosas por sí solas.

Datos para niños
AppleScript
Desarrollador(es)
Apple
https://developer.apple.com/applescript/ y https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide
Información general
Extensiones comunes .scpt, .scptd, .applescript
Apareció en 1993
Última versión estable 2.2.1
Sistema de tipos dinámico
Influido por HyperCard
Sistema operativo System 7, Mac OS 8, Mac OS 9 y Mac OS X
Licencia licencia privativa

¿Cómo surgió AppleScript?

Los inicios con HyperCard

AppleScript nació de un proyecto anterior llamado HyperCard. HyperCard tenía su propio lenguaje de programación, llamado HyperTalk, que era muy parecido al inglés. Los ingenieros de Apple pensaron que sería genial tener un lenguaje similar que funcionara con cualquier programa, no solo con HyperCard. Así fue como empezó el proyecto AppleScript.

La llegada de AppleScript y el Sistema 7

Para que AppleScript funcionara, el sistema operativo de Mac necesitaba muchos cambios. Estos cambios llegaron con el lanzamiento del System 7. Una de las mejoras más importantes fue la introducción de los "Apple Events". Piensa en los Apple Events como mensajes especiales que las aplicaciones pueden enviarse entre sí para pedir o dar información.

Al principio, implementar AppleScript fue un desafío para los desarrolladores de programas. Requería reescribir partes importantes de sus aplicaciones. Sin embargo, en octubre de 1993, AppleScript fue lanzado oficialmente como parte del System 7.1.1.

AppleScript y la publicación digital

Programas importantes como QuarkXPress (versión 3.2) fueron de los primeros en usar AppleScript. Esto hizo que AppleScript fuera muy popular en el mundo de la publicación digital. Gracias a él, los usuarios de Mac podían automatizar tareas complejas, lo que ayudó a que la plataforma Mac siguiera siendo líder en ese campo.

La evolución con Mac OS X

Cuando Apple pasó a Mac OS X, AppleScript mejoró aún más. Las aplicaciones creadas con la tecnología Cocoa de Mac OS X son compatibles con AppleScript de forma más sencilla. Esto significa que los desarrolladores pueden añadir fácilmente la capacidad de automatización a sus programas. Con Mac OS X 10.2, se lanzó AppleScript Studio, que permitía a los usuarios crear aplicaciones completas usando solo AppleScript.

¿Cómo funciona AppleScript?

La comunicación entre aplicaciones

AppleScript fue diseñado para ser una herramienta que permite a los usuarios controlar sus programas de forma inteligente. Su principal función es facilitar la comunicación entre diferentes aplicaciones.

Antes de AppleScript, los programas solo podían manejar eventos muy básicos, como un clic del ratón o una tecla pulsada. Cada programa tenía que interpretar estos eventos y convertirlos en acciones más complejas, como "pegar texto".

Con AppleScript, los desarrolladores tuvieron que separar la acción (por ejemplo, "pegar") de cómo se ejecuta (por ejemplo, "clic en el menú Pegar"). Esto hizo que los programas fueran más flexibles y pudieran responder a instrucciones de alto nivel, como las que da AppleScript.

AppleScript en Mac OS X: más fácil y potente

En Mac OS X, AppleScript es mucho más fácil de usar para los desarrolladores. Los eventos básicos se transforman automáticamente en instrucciones de alto nivel, que luego se envían al programa correcto. Esto significa que los programadores no tienen que preocuparse tanto por cómo se manejan los eventos, sino solo por cómo su aplicación responderá a las órdenes de AppleScript.

Además, los elementos de los programas de Mac OS X son más accesibles para AppleScript. El "motor" de AppleScript interpreta las instrucciones, las traduce y las envía al programa, haciendo que todo funcione de manera más fluida.

El "lenguaje natural" de AppleScript

Hablando con tu computadora

Una de las características más interesantes de AppleScript es que está diseñado para parecerse al lenguaje humano, especialmente al inglés. Así como la interfaz gráfica de tu Mac usa iconos y ventanas que se parecen a objetos de escritorio, AppleScript usa palabras y frases que suenan naturales.

Esto hace que los programas escritos en AppleScript sean fáciles de leer y entender, incluso para personas que no son expertas en programación. Se basa en el lenguaje HyperTalk de HyperCard, pero mejorado para poder controlar cualquier programa o documento.

El Modelo de Objetos AppleEvent (AEOM)

Para lograr esto, el equipo de AppleScript creó el Modelo de Objetos AppleEvent (AEOM). Este modelo define objetos comunes que cualquier aplicación puede entender, como "documento" o "párrafo", y acciones que se pueden realizar con ellos, como "cerrar" o "copiar".

El AEOM también permite referirse a propiedades específicas de los objetos, como "el tercer párrafo del documento 1" o "el color de la última palabra de la ventana activa". Usa un "diccionario" para traducir las instrucciones de AppleScript a los mensajes que los programas entienden (Apple Events) y viceversa. Puedes consultar estos diccionarios en herramientas como Xcode para saber qué partes de un programa pueden ser controladas con AppleScript.

Ejemplos de código en AppleScript

Tu primer programa: "Hola Mundo"

Archivo:Hola Mundo AppleScript
Resultado obtenido al ejecutar el programa.

El programa más sencillo en AppleScript, que muestra un mensaje de "¡Hola mundo!", se escribe así:

 display dialog "¡Hola mundo!"

Cuando ejecutas este código, aparecerá una pequeña ventana con el mensaje.

Añadiendo comentarios

Los comentarios son notas que pones en tu código para explicar lo que hace. AppleScript tiene dos formas de añadir comentarios:

  • `(* cuerpo del comentario *)`: Para comentarios que ocupan varias líneas.
  • `--`: Para comentarios de una sola línea.
--Este comentario solo puede ocupar una línea
(* En cambio con este,
podemos usar múltiples líneas*)

Variables y tipos de datos

Las variables son como cajas donde guardas información. En AppleScript, no necesitas decir de antemano qué tipo de información vas a guardar. Puedes asignar un valor a una variable de dos maneras:

 set miNombre to "Ana"
--o
copy 15 to miEdad

Los nombres de las variables no distinguen entre mayúsculas y minúsculas (miVariable es lo mismo que mivariable). Pueden contener letras, números y el guion bajo (_).

Los tipos de información básicos en AppleScript son:

  • Número: Como 10, 3.14.
  • Texto: Una serie de letras y símbolos, como "Hola".
  • Registros: Un conjunto de etiquetas con sus valores, como `{nombre : "Juan", edad : 12}`.
  • Lista: Un conjunto ordenado de valores, como `{1, "manzana", true}`.

Aquí tienes algunos ejemplos:

--Valores lógicos (verdadero o falso):
set esVerdadero to true
set esFalso to false

set miNumero to 25 -- miNumero es de tipo Número

set miTexto to "Esto es un ejemplo de texto"

set miLista to {"rojo", "verde", "azul"} -- Los valores están separados por comas

set miRegistro to {fruta : "manzana", color : "rojo"} -- La etiqueta (fruta, color) va antes del valor

Puedes cambiar el tipo de un dato usando la palabra `as`:

2 as text -- devuelve "2" (el número 2 como texto)
true as text -- devuelve "true" (el valor lógico true como texto)
"3.14" as number -- devuelve 3.14 (el texto "3.14" como número)

-- Algunas conversiones no son posibles y causan un error:
"texto" as number -- Esto daría un error

Funciones (Handlers)

Las funciones son bloques de código que realizan una tarea específica. En AppleScript se llaman "handlers". Puedes definirlas de varias maneras:

on saludar for nombre
    -- cuerpo de la función
    display dialog "Hola, " & nombre & "!"
end saludar

-- Para usar la función:
saludar for "María"

Puedes usar palabras como `for`, `over`, `by`, etc., para hacer que tus funciones suenen más naturales.

on dividir numerador over denominador
    return numerador / denominador
end dividir

-- Puedes llamar a la función de diferentes maneras:
dividir 10 over 2 -- devuelve 5
dividir over 2 for 10 -- también devuelve 5

También puedes definir funciones con parámetros entre paréntesis:

on sumarNumeros(num1, num2)
    return num1 + num2
end sumarNumeros

-- Para usarla:
sumarNumeros(5, 3) -- devuelve 8

Funciones especiales para aplicaciones

Cuando guardas un script como una aplicación, hay funciones especiales que se ejecutan automáticamente en ciertos momentos:

  • Run: Se ejecuta cuando abres la aplicación.
on run
    -- comandos que se ejecutan al iniciar la aplicación
    display dialog "¡La aplicación ha iniciado!"
end run
  • Open: Se ejecuta cuando arrastras archivos al icono de tu aplicación.
on open archivosArrastrados
    -- comandos para procesar los archivos
    display dialog "Has arrastrado " & (count of archivosArrastrados) & " archivos."
end open
  • Idle: Si tu aplicación se queda abierta, esta función se ejecuta cada cierto tiempo (por defecto, cada 30 segundos).
on idle
    -- comandos que se ejecutan periódicamente
    display dialog "Sigo aquí..."
    return 60 -- la función se ejecutará de nuevo en 60 segundos
end idle
  • Quit: Se ejecuta cuando la aplicación recibe la orden de cerrarse. Puedes decidir si la aplicación se cierra o no.
on quit
    -- comandos antes de cerrar
    display dialog "¿Estás seguro de que quieres salir?" buttons {"Sí", "No"} default button "Sí"
    if button returned of result is "Sí" then
        continue quit -- la aplicación se cierra
    else
        return -- la aplicación no se cierra
    end if
end quit

Estructuras de control

Decisiones (Condicionales)

Puedes hacer que tu programa tome decisiones usando `if`:

-- Si se cumple una condición:
if miNumero > 10 then
   display dialog "El número es mayor que 10."
end if

-- Si hay varias opciones:
if miEdad < 13 then
    display dialog "Eres un niño."
else if miEdad < 18 then
    display dialog "Eres un adolescente."
else
    display dialog "Eres un adulto."
end if

Repeticiones (Bucles)

Los bucles te permiten repetir acciones varias veces:

  • Bucle infinito: Se repite sin parar hasta que lo detengas.
repeat
    display dialog "Esto se repite sin fin."
end repeat
  • Repetir un número de veces:
repeat 5 times
    display dialog "Hola, me repito 5 veces."
end repeat
  • Repetir mientras una condición sea verdadera:
set contador to 0
repeat while contador < 3
    display dialog "Contador: " & contador
    set contador to contador + 1
end repeat
  • Recorrer una lista:
set misFrutas to {"manzana", "pera", "uva"}
repeat with fruta in misFrutas
    display dialog "Me gusta la " & fruta & "."
end repeat

Bloque "tell"

El bloque `tell` es muy importante en AppleScript. Te permite darle instrucciones a un programa específico o a un objeto dentro de un programa.

-- Forma sencilla:
tell application "Finder" to make new Finder window

-- Forma con varias instrucciones:
tell application "Safari"
    activate -- abre Safari si no está abierto
    open location "https://www.apple.com" -- abre la página de Apple
end tell

Con `tell`, le dices a un programa (como Finder o Safari) qué acción quieres que realice.

Manejo de errores

A veces, los programas pueden tener errores. AppleScript te permite "atrapar" esos errores para que tu script no se detenga por completo.

try
    -- Intenta ejecutar este código
    "texto" as number -- Esto causará un error
on error descripcion number n
    -- Si hay un error, ejecuta esto
    display dialog "Ocurrió un error: " & descripcion & " (Código: " & n & ")"
end try

Si el código dentro de `try` falla, el programa no se detiene, sino que salta a la sección `on error`, donde puedes mostrar un mensaje o intentar solucionar el problema.

Programas para usar AppleScript

Herramientas para escribir AppleScript

  • Xcode: Es una herramienta de desarrollo de Apple que te permite escribir y crear aplicaciones con AppleScript.
  • Editor AppleScript: Viene incluido en Mac OS X. Con él puedes escribir, probar y guardar tus scripts como aplicaciones o archivos de texto. También te permite ver qué funciones de un programa puedes controlar con AppleScript.
  • Comandos de Terminal: Puedes ejecutar scripts de AppleScript directamente desde la Terminal de Mac OS X usando comandos como `osascript` para ejecutar o `osacompile` para crear un archivo de script.

Programas que puedes controlar con AppleScript

La mayoría de los programas creados por Apple pueden ser controlados con AppleScript. Algunos ejemplos son:

  • Finder (el explorador de archivos de tu Mac)
  • iTunes (para música)
  • Xcode (para desarrollo)
  • Safari (el navegador web)

Véase también

Kids robot.svg En inglés: AppleScript Facts for Kids

kids search engine
AppleScript para Niños. Enciclopedia Kiddle.