AppleScript

AppleScript (אַפֶּלְ-סְקְרִיפְּט) היא שפת תכנות תסריטית, אשר פותחה על ידי חברת אפל ושוחררה לראשונה בשנת 1993. AppleScript מסייעת באוטומציה של אפליקציות ובייחוד בתקשורת ביניהן באמצעות אירועים (Events) במערכת ההפעלה MacOS (החל מגרסה 7), ומצורפת באופן אוטומטי למערכת ההפעלה כחלק מחבילה של כלים לאוטומציה. השם "AppleScript" עלול להתייחס גם לסקריפט אשר נכתב בשפה ולסביבת Open Scripting Architecture במערכת ההפעלה MacOS (בקיצור: OSA) עליה השפה מבוססת. לשפה טיפוסיות דינמית וחלשה, והתחביר שלה דומה לכתיבת משפטים באנגלית. לפיכך נוטים לשייך אותה לפרדיגמת התכנות Natural Language Programming (כתיבת קוד אשר מזכיר שפה טבעית של בני אדם) .

== סקירת השפה ==
AppleScript היא שפת סקריפטים אשר פותחה על ידי אפל על מנת לבצע תקשורת בין אפליקציות (Inter Process Communication, IPC ) באמצעות Apple Events – מכניזם תקשורת בין תהליכים אשר מטפל באירועים. Apple Events תוכנן על מנת להחליף מידע ולשלוט באפליקציות אחרות על מנת להפוך משימות רפטטיביות (אשר חוזרות על עצמן) לאוטומטיות. ל-AppleScript יש יכולות עיבוד משלה, מעבר לשליחה וקבלה של אירועים בין אפליקציות.

AppleScript מכילה מספר אלמנטים של תכנות פרוצדורלי (חלוקה של התוכנית לתתי תוכנית), תכנות מונחה עצמים, ו-Natural Language Programming (כתיבת קוד אשר מזכיר שפה טבעית של בני אדם) ), אך היא אינה משויכת אליהן באופן מלא.

== היסטוריה ==

בשנות ה-80 המאוחרות, אפל שקלה להשתמש בשפת התכנות התסריטית HyperTalk של HyperCard – תוכנה וערכת פיתוח למחשבי מקינטוש, בתור השפה הסטנדרטית ל-End-User Development (תכנות על ידי אנשים שאינם מפתחי תוכנה מקצועיים) ברחבי החברה ובמערכת ההפעלה מקינטוש, וכן בשביל תקשורת בין תהליכים (Interprocess Communication) בין מכשירים מתוצרת אפל לבין מכשירים שאינם מתוצרת אפל. מפתחי התוכנה באפל שמו לב כי ניתן לתכנן שפת תכנות תסריטית דומה ל-HyperTalk, אשר תומכת יותר בתכנות מונחה עצמים. אפל החלה בפיתוח של שפה זו (לימים AppleScript).

AppleScript שוחחרה לראשונה באוקטובר, 1993 כחלק מגרסה System 7.1.1 של מערכת ההפעלה MacOS מבית אפל. QuarkXPress (בגרסה 3.2) הייתה מהתוכנות הראשונות אשר תמכו ב-AppleScript.

לאחר אי ודאות מסוימת לעתידה של AppleScript במחשבי הדורות הבאים של אפל, שחרור גרסה MacOS X ב-2002, שאליו נלווה ממשק תכנות היישומים Cocoa הגדיל את היעילות ואת הגמישות של AppleScript.

== כתיבת קוד ==

=== כתיבת הערות ===
הערות של שורה אחת:

על מנת לסמן הערה של שורה אחת ב-AppleScript, יש לכתוב את ההערה לאחר שני מקפים (<code>--</code>), כפי שמודגם בשורה הראשונה בדוגמה לעיל. בנוסף, בגרסת Mac OS X Leopard של מערכת ההפעלה MacOS ניתן לכתוב את ההערה לאחר סולמית (<code>#</code>), בדומה לשפת התכנות פייתון.<syntaxhighlight lang="applescript">
--This is a one line comment
# So is this! (in Mac OS X Leopard or later)
</syntaxhighlight>הערות של מספר שורות:

הערות של מספר שורות יכתבו בין התווים הפותחים <code>*)</code> לתווים הסוגרים <code>*(</code>.<syntaxhighlight lang="applescript">
(* This is a
multiple
line
comment *)
</syntaxhighlight>תוכנית "Hello World" :

ב-AppleScript ניתן לכתוב את תוכנית בסיסית זו במספר דרכים, מפני שניתן להציב את הטקסט על מספר ממשקים שונים, כגון דיאלוגים (Dialogs) – בהם מחכים בדרך כלל לקלט של המשתמש, התראות (Alerts), שמטרתן להודיע למשתמש דבר מסוים, ורשימה של אופציות (Lists Of Choices). ניתן גם לבצע הודעה קולית למשתמש באמצעות הפקודה <code>say</code>.<syntaxhighlight lang="applescript">
display dialog "Hello, world!" -- a modal window with "OK" and "Cancel" buttons
-- or
display alert "Hello, world!" -- a modal window with a single "OK" button and an icon representing the app displaying the alert
-- or
say "Hello, world!" -- an audio message using a synthesized computer voice
</syntaxhighlight>

== עקרונות בסיסיים ==
AppleScript תוכננה על מנת להיות שפת תכנות תסריטית בעלת תחביר דמוי שפה טבעית, להציע למשתמשים מכניזם אשר שולט בפעולותיהן של אפליקציות וכן לגשת ולשנות מידע ומסמכים. AppleScript משתמשת ב-Apple Events – מכניזם שבאמצעותו תהליכים חולקים מידע ביניהם (Interprocess Communication) אשר זמין החל מגרסה System 7 של מערכת ההפעלה MacOS של אפל. Apple Event מאפשרים לסקריפט לעבוד בו זמנית עם מספר אפליקציות ולהעביר מידע ביניהן ללא התערבות אנושית. לדוגמה, סקריפט ב-AppleScript שמטרתו ליצור גלריה באתר יבצע את השלבים הבאים:

# פתיחת תמונה באפליקצית עריכת תמונות – באמצעות שליחה של Apple Event מסוג Open File אליה.
# יש להורות לתוכנת עריכת התמונות לבצע מניפולציות על התמונה, כגון הוספת גבולות, חיתוך, וכיוצא בזאת.
# יש להורות לתוכנת עריכת התמונות לשמור את התמונה שנערכה כקובץ בתיקייה מסוימת, באמצעות שליחה של Apple Event מסוג Save and\or Close Event.
# יש לשלוח באמצעות Apple Event את הכתובת של הקובץ המכיל את התמונה לעורך טקסט או עורך web מסוים.
# יש להורות לתוכנת העורך לשלב בתוך קובץ HTML (קובץ האתר) לינק לתמונה.
# יש לחזור על התהליך על תיקיות או תמונות רבות (למשל מאות, או אלפי תמונות).
# העלאת קובץ ה-HTML המכיל את התמונות באמצעות Apple Events.

הרצת סקריפט אשר מבצע תהליכים אלו יכולה לחסוך מאות או אלפי תהליכים שהמתכנת היה נדרש לבצע ידנית. ישנם סקריפטים מסובכים וגדולים בהם רק ריצה אחת נדרשת ואילו סקריפטים אחרים משומשים פעמים רבות.

== כלי פיתוח ==

=== עורכי סקריפטים ===
עורכי סקריפטים מספקים סביבת פיתוח מאוחדת עבור סקריפטים ב-AppleScript, ומספקים כלים רבים להדרה, ריצה, ניפוי שגיאות, סיווג טקסט באמצעות צבעים שונים (Syntax Highlighting, ) וכו׳.

==== מבית אפל ====
* AppleScript Editor
* Xcode

==== לא מבית אפל ====
* Script Debugger, מבית Late Night Software.
* Smile ו-SmileLab
* ASObjC Explorer 4, מבית Shane Stanley
* FaceSpan, מבית Late Night Software.

== קישורים חיצוניים ==
* 
* [http://aurelio.net/articles/applescript-vs-python.html AppleScript for Python Programmers (Comparison Chart)] aurelio.net. 2005

קטגוריה:אפל
קטגוריה:מקינטוש
קטגוריה:תוכנות שהושקו ב-1993
קטגוריה:שפות תכנות