AppleScript 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 | |
Contenido
¿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"
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
En inglés: AppleScript Facts for Kids