| AppleScript | |
|---|---|
| Paradigmaları | Tábiyiy til programmalastırıw,Skriptlew |
| Baǵdarlamashı | Apple Inc. |
| Birinshi payda bolıwı | 1993-jıl |
| Turaqlı reliz | 2.8 / 16-oktyabr, 2014-jıl |
| Tiplestiriw tártibi | Hálsiz, dinamikalıq |
| Operaciyalıq sistema | System 7, Mac OS 8, Mac OS 9, macOS |
| Licenziya | Menshikli (ayırım bólimleri APSL boyınsha qoljetimli) |
| Fayl keńeytpeleri | .scpt, .scptd, .applescript |
AppleScript — bulApple Inc. tárepinen jaratılǵanskriptlew tili bolıp, ol Mac qosımshaların avtomatlastırılǵan basqarıwdı ańsatlastıradı. Birinshi ret System 7-de usınılǵan, ol házirgi waqıtta macOS quramında avtomatlastırıw quralları paketiniń bir bólimi retinde kiredi. «AppleScript» termini skriptlew tiline, sol tilde jazılǵan skriptke yamasa tildiń tiykarında jatatuǵın macOS Ashıq Skriptlew Arxitekturasına (Open Scripting Architecture) silteme beriwi múmkin[1][2].
AppleScript tiykarınan Apple events ti basqarıw mexanizmi bolıp tabıladı — bul qosımshalar arasında maǵlıwmat almasıw hám olardı basqarıwǵa arnalǵan qosımshalar aralıq baylanıs (IAC) texnologiyası. Bunnan tısqarı, AppleScript tiykarǵı esaplawlardı hám tekstti qayta islewdi qollap-quwatlaydı hám tilge funkciyalar qosatuǵın skriptlew qosımshaları arqalı keńeytile aladı.
AppleScript Windows Script Host-tıń Windows ortalıǵına baylanıslı bolǵanı sıyaqlı, Mac ortalıǵına da tıǵız baylanıslı. Basqasha aytqanda, AppleScriptPython sıyaqlı ulıwma maqsetliskriptlew tili emes. AppleScripttiń óz ortalıǵınıń ayrıqsha táreplerine baylanıslı bolıwınıń bir usılı — onıń adreslenetuǵın obyektler hám operaciyalar sózliklerin járiyalaw ushın qosımshalarǵa súyeniwi.
Ádette buyrıq tiline tán bolǵanı sıyaqlı, AppleScript tikkeley intensiv qayta islewdi orınlaw ushın proektlestirilmegen. Mısalı, skript intensiv matematikalıq operaciyalardı yamasa quramalı tekstti qayta islewdi nátiyjeli orınlay almaydı. Degen menen, AppleScript basqa qurallar hám texnologiyalar menen birge qollanılıwı múmkin, bul oǵan anaǵurlım nátiyjeli programmalastırıw kontekstlerinen paydalanıwǵa imkaniyat beredi.
Tildiń strukturalıq,proceduralıq,obyektke baǵdarlanǵan hám tábiyiy til programmalastırıw aspektleri bar, biraq ol bulparadigmalardıń hesh birine qatań sáykes kelmeydi.
1980-jıllardıń aqırında Apple kompaniyası HyperCard-tıń HyperTalkskriptlew tilin pútkil kompaniya boyınsha hám óziniń klassikalıq Mac OS operaciyalıq sisteması ishinde aqırǵı paydalanıwshı islep shıǵıwı ushın, sonday-aq Apple hám Apple emes ónimler arasındaǵı processler aralıq baylanıs ushın standart til retinde qollanıwdı qarastırdı[3]. HyperTalk-tı jańa baslawshılar HyperCard stegin programmalastırıw ushın paydalana alatuǵın edi. Apple injenerleri uqsas, biraq anaǵurlım obyektke baǵdarlanǵan skriptlew tiliniń hár qanday qosımsha menen paydalanıw ushın proektlestiriliwi múmkin ekenligin anıqladı, hám AppleScript proekti Macintosh-tı tutas modernizaciyalaw boyınsha izertlew jumısınıń bir tarmaǵı retinde payda boldı hám aqıbetinde System 7-niń bir bólimine aylandı.
AppleScript 1993-jıl oktyabr ayında System 7.1.1 (System 7 Pro, System 7-ge birinshi iri jańalaw) quramında shıǵarıldı. QuarkXPress (ver. 3.2) AppleScriptti qollap-quwatlaǵan birinshi iri programmalıq támiynat qosımshalarınıń biri boldı. Bul, óz gezeginde, AppleScripttiń baspa hám baspaǵa shekemgi tayarlıq dúnyasında keń qabıl etiliwine alıp keldi, kóbinese quramalı jumıs aǵımların bir-birine baylanıstırdı. Bul Macintoshtıń baspa hám baspaǵa shekemgi tayarlıqtaǵı ústem ornın saqlap qalıwda tiykarǵı faktor boldı, hátte QuarkXpress hám basqa baspa qosımshaları Microsoft Windowsqa portlanǵannan keyin de.
AppleScript Appledıń keleshek áwlad operaciyalıq sistemasındaǵı keleshegi haqqındaǵı belgisizlikten keyin, Mac OS X-ke (shama menen 2002-jıl) ótiw hám onıń Cocoa freymvorkları AppleScripttiń paydalılıǵın hám qolaylılıǵın ádewir arttırdı. Cocoa qosımshaları qosımsha islep shıǵıwshılarǵa minimal kúsh penen óz qosımshaları ushın tiykarǵı skriptlew múmkinshiliklerin ámelge asırıwǵa imkaniyat berdi, bul tikkeley skriptlenetuǵın qosımshalardıń sanın keńeytti. Sol waqıtta Unix tiykarlarına ótiw hám AppleScripttiń Unix buyrıqların tikkeleydo shell script buyrıǵı[4] menen orınlaw qábileti AppleScriptlerge operaciyalıq sistemanıń ózin anaǵurlım jaqsı basqarıwǵa imkaniyat berdi.AppleScript Studio, Mac OS X 10.2-de Xcode quramında shıǵarılǵan, hám keyinirek Mac OS X 10.6-da shıǵarılǵan AppleScriptObjC freymvorkı paydalanıwshılarǵa AppleScriptti paydalanıp Cocoa qosımshaların qurıwǵa imkaniyat berdi.
2006-jılǵı maqalada Macworld jurnalı AppleScriptti Appledıń házirgi waqıtqa shekemgi 30 eń áhmiyetli ónimleriniń reytingine kirgizip, onı 17-orınǵa qoydı[5].
2013-jılǵı Macworld ushın jazılǵan maqalasında, tájiriybeli Mac programmalıq támiynat baǵdarlamashısı hám kommentatorı Djon Gruber óziniń «AppleScripttiń kútilmegen turaqlılıǵı» haqqındaǵı oylarınıń juwmaǵında bılay dedi: «Teoriyada, AppleScript anaǵurlım jaqsıraq bolıwı múmkin edi; biraq ámeliyatta, ol bizde bar bolǵan eń jaqsı isleytuǵın nárse. Ol MactıńiOStan artıqmashılıǵın ózgeris kirgiziwshiler hám aldınǵı qatar paydalanıwshılar ushın kórsetedi.»[6]
2016-jıl oktyabr ayında, uzaq waqıt dawamında AppleScript ónim menedjeri hám avtomatlastırıw úgit-násiyatshısı Sal Sogoian onıń lawazımı «biznes sebepleri menen» biykar etilgennen keyin Appledan ketti[7]. Mac birlespesindegi Djon Gruber hám Endi Inatko sıyaqlı veteranlar ulıwma alǵanda uwayım menen juwap berip, Appledıń baǵdarlamashılar birlespesi hám professional paydalanıwshılarǵa bolǵan minnetlemesin gúman astına aldı[8]. Apple programmalıq támiynat injenerligi boyınsha aǵa vice-prezidenti Kreyg Federigi elektron xatında «Biz macOS taǵı ullı avtomatlastırıw texnologiyaların qollap-quwatlawdı dawam etiwge tolıq niyetlimiz!» dep juwap berdi, biraq The Mac Observer jurnalınan Djeff Gamet bul onıń ulıwma Apple avtomatlastırıwınıń keleshegi hám ásirese AppleScript haqqındaǵı gúmanların azaytpadı dep esapladı[9]. Házirshe AppleScript Automator, Shortcuts, Services hám shell skriptlewi menen birge macOS avtomatlastırıw texnologiyalarınıń bir komponenti bolıp qalmaqta.
AppleScript qoljetimli aqırǵı paydalanıwshıskriptlew tili retinde paydalanıw ushın proektlestirilgen bolıp, paydalanıwshılarǵa qosımshalardı basqarıw hám maǵlıwmatlar menen hújjetlerge kiriw hám modifikaciyalaw ushın aqıllı mexanizm usınadı. AppleScript Apple waqıyaların (Apple events) paydalanadı, bul Macintosh operaciyalıq sisteması tárepinen qosımshalarǵa informaciya jiberiw ushın paydalanılatuǵın standartlastırılǵan maǵlıwmat formatları toplamı bolıp, veb-xızmetler dúnyasındaǵı XML-RPC arqalı XPath sorawların jiberiwge uqsas. Apple waqıyaları skriptke bir waqıtta bir neshe qosımsha menen islesiwge imkaniyat beredi, olar arasında maǵlıwmat almasıp, adamnıń aralasıwısız quramalı wazıypalardı orınlawǵa boladı. Mısalı, ápiwayı veb-galereya jaratıw ushın AppleScript tómendegilerdi orınlawı múmkin:
Paydalanıwshı ushın bir neshe qosımshalardaǵı júzlegen yamasa mıńlaǵan qádemler skriptti iske túsiriwdiń bir háreketine shekem qısqartıldı, hám wazıypa anaǵurlım az waqıt ishinde hám tosınarlı adam qáteligi itimalısız orınlanadı. Úlken quramalı skript tek bir ret iske túsiriw ushın jaratılıwı múmkin, al basqa skriptler qayta-qayta qollanıladı.
Qosımshanıń skriptlenetuǵın elementleri qosımshanıń Skriptlew Sózliginde (qosımshanıń bir bólimi retinde tarqatıladı) kórinip turadı, onı hár qanday skript redaktorında kóriwge boladı. Elementler ádette erkin funkcional baylanıslarına sáykes toplamlarǵa (suites) gruppalanadı. Hár qanday toplamda eki tiykarǵı túrdegi element bar: klasslar hám buyrıqlar.
Barlıq skriptlenetuǵın qosımshalar bir neshe tiykarǵı buyrıqlar hám obyektlerdi bólisedi, olar ádette Standart Toplam dep ataladı — fayldı ashıw, jabıw yamasa saqlaw, bir nárselerdi baspadan shıǵarıw, shıǵıw, maǵlıwmatlardı ózgeriwshilerge ornatıw ushın buyrıqlar — sonday-aq qosımshanıń óziniń skriptlenetuǵın qásiyetlerin beretuǵın tiykarǵı qosımsha obyekti. Kóplegen qosımshalar qosımshanıń ózi orınlay alatuǵın hár qanday wazıypanı orınlay alatuǵın kóplegen toplamlarǵa iye. Ayrıqsha jaǵdaylarda, qosımshalar ózleriniń skriptlew sózliklerin óz ishine alatuǵın plaginlerdi qollap-quwatlawı múmkin.
AppleScript paydalanıwshı háreketlerin jazıp alıw arqalı intuitiv túrde skriptler qurıw múmkinshiligi menen proektlestirilgen. Bunday AppleScript jazıp alıw múmkinshiligi qosımshaǵa injenerlik etiliwi kerek — qosımsha Apple waqıyaların hám AppleScript jazıp alıwdı qollap-quwatlawı kerek;[10] Finder AppleScript jazıp alıwdı qollap-quwatlaytuǵınlıqtan, ol silteme ushın paydalı bolıwı múmkin. AppleScript Editor (Script Editor) ashıq bolǵanda hám Jazıp alıw túymesi basılǵanda, jazıp alınıwı múmkin bolǵan qosımshalar ushın paydalanıwshı háreketleri ózleriniń sáykes AppleScript buyrıqlarına aylandırıladı hám Script Editor aynasına shıǵarıladı. Nátiyjesindegi skript dáslepki háreketlerdi qaytalaw ushın saqlanıwı hám qayta iske túsiriliwi múmkin, yamasa ulıwmalıq paydalanıw ushın ózgertiliwi múmkin.
Apple waqıyaları (events) qosımshalarǵa xabarlar jiberiwdiń bir usılı bolsa, AppleScript Apple waqıyaların jiberiw ushın proektlestirilgen arnawlı bir til bolıp tabıladı. Jańa baslawshılar ushın qollanıw ańsatlıǵı maqsetine sáykes, AppleScript tili,grafikalıq paydalanıwshı interfeysidesktop metaforasına tiykarlanǵanı sıyaqlı, tábiyiy til metaforasına tiykarlanǵan. Jaqsı jazılǵan AppleScript hár kim tárepinen oqılıwı hám túsiniliwi ushın jetkilikli dárejede anıq bolıwı hám ańsat redaktorlanıwı kerek. Til tiykarınan HyperCard-tıń HyperTalk tiline tiykarlanǵan bolıp, tek HyperCard dúnyasınıń kartaları hám steklerine ǵana emes, al teoriyalıq jaqtan hár qanday hújjetke silteme beriw ushın keńeytilgen. Usı maqsette, AppleScript toparı AppleEvent Obyekt Modelin (AEOM) kirgizdi, ol hárbir belgili qosımshanıń «biletuǵın» obyektlerin anıqlaydı.
AppleScript tiliniń tiykarı — biriktiriliwi múmkin bolǵan atlıqlar hám feyiller retinde isleytuǵın terminlerdi paydalanıw. Mısalı, betti, hújjetti yamasa betlerdiń diapazonın baspadan shıǵarıw ushın hár túrli feyillerdiń (mısalı, printPage, printDocument, printRange) ornına, AppleScript bet, hújjet yamasa betlerdiń diapazonı sıyaqlı obyekt penen biriktiriliwi múmkin bolǵan bir ǵana «print» feyilin paydalanadı.
printpage1printdocument2printpages1thru5ofdocument2
Ulıwma alǵanda, AEOM bir qatar obyektlerdi — mısalı, «hújjet» yamasa «abzac» — hám sáykes háreketlerdi — mısalı, «kesiw» hám «jabıw» — anıqlaydı. Sistema sonıń menen birge obyektlerdiń qásiyetlerine silteme beriw usılların da anıqlaydı, solay etip ««Jańa kún“ hújjetiniń úshinshi abzacı»na yamasa «aldıńǵı aynanıń sońǵı sóziniń reńi»ne silteme beriwge boladı. AEOM Apple waqıyaların adam oqıy alatuǵın terminler menen baylanıstırıw ushın qosımsha sózligin paydalanadı, bul adam oqıy alatuǵın AppleScript hám bayt-kod Apple waqıyaları arasında keri hám alǵa awdarıwǵa imkaniyat beredi. Programmanıń qaysı elementleriniń skriptlenetuǵının anıqlaw ushın, qollap-quwatlanatuǵın qosımshalar ushın sózliklerdi kóriwge boladı. (Xcode hám Script Editor qosımshalarında bulFile → Open Dictionary astında jaylasqan.)Bunday xabardıń maqseti qaysı qosımsha ekenin kórsetiw ushın, AppleScript «tell» konstrukciyasın paydalanadı:
tellapplication"Microsoft Word"quitendtell
Alternativ túrde, tell bir qatarda infinitiv paydalanıw arqalı ańlatılıwı múmkin:
tellapplication"Microsoft Word"toquit
«Tiykarǵı Toplam»daǵı (Core Suite) waqıyalar (activate, open, reopen, close, print hám quit) ushın qosımsha tranzitiv buyrıqlarǵa tikkeley obyekt retinde beriliwi múmkin:
quitapplication"Microsoft Word"
Obyekt ierarxiyası koncepciyası ishki jaylasqan bloklar arqalı ańlatılıwı múmkin:
tellapplication"QuarkXPress"telldocument1tellpage2telltextbox1setword5to"Apple"endtellendtellendtellendtell
Obyekt ierarxiyası koncepciyası sonday-aq ishki jaylasqan predloglı frazalar yamasa iyelik qatnaslar seriyası arqalı da ańlatılıwı múmkin:
pixel7ofrow3ofTIFFimage"my bitmap"TIFFimage"my bitmap"'s3rdrow's7thpixel
bul basqaprogrammalastırıw tilinde izbe-iz metod shaqırıwları retinde ańlatılıwı múmkin, mısalı, usı psevdokodta:
getTIFF("my bitmap").getRow(3).getPixel(7);
AppleScript «birinshi abzac» sıyaqlı retlik sanaw ushın, sonday-aq «birinshi abzac» sıyaqlı muǵdarlıq sanaw ushın da sintaksisti óz ishine aladı. Sonday-aq, sanlardıń ózleri de tekst yamasa san retinde kórsetiliwi múmkin, «bes», «besinshi» hám «5» hámmesi qollap-quwatlanadı; olar AppleScriptte sinonim bolıp tabıladı. Sonıń menen birge, «the» sózi oqılıwın jaqsılaw ushın skripttiń qálegen jerinde nızamlı túrde qollanılıwı múmkin: onıń skript funkcionalına hesh qanday tásiri joq.
«Hello, World!» programması bir qatarda jazılıwı múmkin. «OK» hám «Biykarlaw» túymeleri bar modal aynanı kórsetiw ushın:
display dialog"Hello, world!"
«OK» túymesi hám eskertiw belgisi bar modal aynanı kórsetiw ushın:
display alert"Hello, world!"
Sintezlengen dawıs járdeminde audio shıǵarıw ushın:
say"Hello, world!"