AppleScript

De Viquipèdia
Dreceres ràpides: navegació, cerca

Script d'Apple és un llenguatge de programació desenvolupat per Apple i dissenyat per a executar sota els sistemes Mac OS. Genèricament, Applescript és la paraula usada per designar l'entorn de Scripts de Mac OS, pensat per operar en paral·lel a la GUI.

Història[modifica | modifica el codi]

El projecte Applescript va ser una branca derivada del projecte HyperCard. HyperCard contenia un llenguatge de programació basat en la llengua Anglesa anomenat Hypertalk, que podia ser usat per incloure contingut lògic en un programa de HyperCard. Els enginyers d'Apple van pensar que podria dissenyar un llenguatge de script similar per a ser usat amb qualsevol aplicació, i el projecte Applescript va començar.

MacOS necessitar profunds canvis i millores per implementar Applescript. Molts d'aquests canvis es van publicar amb el llançament del sistema 7, principalment el concepte del Apple Event. Script d'Apple va competir per atreure l'atenció dels desenvolupadors amb altres noves tecnologies que van ser llançades al mateix temps (Baloon help, Publish and Subscribe, etc.). Per a algunes de les aplicacions, Applescript va ser la tecnologia més difícil d'implementar, requerint que es reescribieran grans porcions de codi de baix nivell de les mateixes, i fins i tot el propi marc d'aplicació d'Apple, MacApp, no va suportar els Apple Events durant algun temps.

El llançament va ser l'octubre de 1993 com a part del sistema 7.1.1 (La primera gran actualització del sistema 7). QuarkXPress (Versió 3.2) va ser una de les primeres grans aplicacions que va suportar Applescript, i com a resultat, Applescript va ser àmpliament adoptat en els segments de publicació del mercat d'Apple. Encara que és discutible, la raó per la qual la plataforma Mac es va mantenir com a líder de mercat després de la publicació de QuarkXPress i altres aplicacions per a la plataforma Microsoft Windows, va ser que era l'única que suportava l'automatització de fluxos de treball complexos.

El pas cap a Mac OS X i el seu marc Cocoa ha significat una millor implementació de Applescript. Les aplicacions Cocoa ofereixen compatibilitat amb Applescript de forma bàsica sense cap esforç per part del desenvolupador, i poden assolir nivells profunds de compatibilitat amb una mica d'inversió de temps del desenvolupador. AppleScript Studio, publicat amb Mac OS X 10.2, permet als usuaris programar aplicacions senceres usant Applescript i objectes Cocoa.

Conceptes Bàsics[modifica | modifica el codi]

Script d'Apple va ser concebut principalment com un llenguatge de programació de scripts, oferint als usuaris una eina intel·ligent de control i permetent la comunicació entre diferents aplicacions.

Els sistemes anteriors al sistema 7 posseïen un model rudimentari de Esdeveniment amb el qual es podien executar un nombre fixat d'esdeveniments de baix nivell, com "tecla premuda" o "botó de ratolí premut". Cada aplicació era responsable de la gestió i traducció a accions d'alt nivell que tinguessin algun sentit per a l'usuari, com "Executar l'opció de menú enganxar". En molts casos, el mateix esdeveniment contenia tant el concepte d'acció (fer clic) com les instruccions per a la seva execució (quan es faci clic, executar l'opció enganxar).

La implementació de Applescript va requerir al desenvolupador la separació de l'acció de l'execució, un treball al que Apple es va referir com "Factoring". Els programadors van ser animats a escriure dues maneres diferents de maneig dels esdeveniments, una per al maneig d'esdeveniments de baix nivell (clics, pulsacions de tecles, etc.) I una altra per a esdeveniments d'alt nivell (Apple Events).

Script d'Apple en Mac OS X[modifica | modifica el codi]

En Mac OS X, Applescript és molt més senzill d'implementar per als desenvolupadors, particularment per a les aplicacions desenvolupades en Cocoa. A diferència de Mac OS on els esdeveniments són processats per les aplicacions, sota Cocoa els esdeveniments són transformats a una instrucció d'alt nivell per l'objecte NSApplication, i després dirigit a un objectiu correcte. Això significa que totes les aplicacions de Cocoa porten el "Factoring" fet, el programador normalment no escriu res sobre el maneig de l'esdeveniment i només ha d'escriure com respondrà l'aplicació als processos que l'esdeveniment sol·liciti.

Una altra important avantatge és que els objectes Cocoa se'ns presenten com a estàndards de manera que tots poden accedir-hi directament. Sota Cocoa, Applescript és molt més "lleuger", el motor de scripts interpreta l'script, tradueix els noms d'objecte al seu format intern i després els envia a l'aplicació objectiu.

La metàfora del "Llenguatge natural"[modifica | modifica el codi]

Mentre que els Apple events són una manera d'enviar instruccions a les aplicacions, Applescript és un llenguatge específic per generar Apple events. Mantenint la tradició de Mac OS de senzillesa d'ús, el llenguatge Applescript està dissenyat sobre la base de la metàfora del "llenguatge natural", de la mateixa manera que GUI està recolzat en la metàfora de l'escriptori. Els programes de Applescript són generalment llegibles i editables per qualsevol. Està basat en el llenguatge Hypertalk de HypeCard, i millorat perquè no només pugui referir-se al món d'aquest, sinó que teòricament pot referir-se a qualsevol document. Amb aquesta finalitat, l'equip de Applescript va introduir el nou AppleEvent Object Model (Model d'objectes AppleEvent o AEOM), el qual definia els objectes que qualsevol aplicació coneixia.

Generalment AEOM definia un nombre determinat d'objectes, com "document" o "paràgraf" i accions que es podien fer amb ells, com "tancar" o "copiar". El sistema també definia les maneres de referir-se a les propietats dels objectes, de manera que es pogués assenyalar al "tercer paràgraf del document 1", o al "color de l'última paraula de la finestra activa". AEOM utilitza un diccionari per associar els Apple Events a objectes comprensibles per les persones, permetent la traducció en tots dos sentits entre Applescript i els Apple Events. Per saber que elements d'una aplicació poden ser objecte de scripts, es poden consultar aquests diccionaris (en Xcode i l'editor de scripts, per exemple).

Vegeu també[modifica | modifica el codi]

Nota[modifica | modifica el codi]