اپل اسکریپت

اپل اسکریپت (به انگلیسی: AppleScript) یک زبان اسکریپت نویسی است که توسط شرکت اپل ساخته شده‌است و در مک اواس از زمان system 7 استفاده می‌شود. کلمهٔ " اپل اسکریپت " ممکن است به خود سیستم ویرایشگری یا یک متن منحصر به فرد نوشته شده با زبان اپل اسکریپت اشاره کند.
اپل اسکریپت عمدتاً یک زبان اسکریپتی توسعه داده شده توسط کمپانی اپل است برای انجام کارهای ارتباط بین پردازشی با استفاده از AppleEvents. اپل اسکریپت با AppleEvents مرتبط است اما متفاوت هستند. AppleEvents برای رد و بدل کردن اطلاعات و کنترل کردن بقیهٔ برنامه‌ها به منظور خودکارسازی عملیات تکراری طراحی شده‌است. اپل اسکریپت یک سری محدودیت‌های پردازشی خاص خود را علاوه بر فرستادن و دریافت AppleEventsها به برنامه‌های دیگر دارد. اپل اسکریپت محاسبات ابتدایی و پردازش‌های متنی پیچیده‌ای را می‌تواند انجام دهد و این‌ها قابل گسترش هستند به‌طوری‌که می‌توان کارکردهای ویرایشی متن را به خود زبان اضافه کرد. هرچند اساساً اپل اسکریپت به کارکرد برنامه‌ها و پردازش‌ها برای کنترل عملیات پیچیده متکی است. به عنوان یک زبانساخت‌یافته، اپل اسکریپت قابل مقایسه با پوسته یونیکس - Windows Script Host و Rexx در کارکردشان است اما از همهٔ این سه مورد منحصر به فرد است. اساسی‌ترین کارکرد آن این است که برنامه‌های مکینتاش، دیکشنری‌هایی را با اشیاء و عملیاتی آدرس دار عرضه دهند.
اپل اسکریپت یکسری المان‌های برنامه‌نویسی شیءگرا، به خصوص در ساختمان اشیای متنی و گرایش‌هایی از برنامه‌نویسی زبان طبیعی در نحو را دارد اما به‌طور مستقیم از هیچ‌کدام از این دو دسته پیروی نمی‌کند.

تاریخچه

پروژهٔ اپل اسکریپت حاصلی از پروزهٔ تمام شدهٔ هایپرکارد است. هایپرکارد شامل یک زبان اسکریپتیِ مبتنی بر زبان انگلیسی به نام هایپرتاک بود که برای برنامه‌نویسی یک پشته هایپرکارد استفاده می‌شد. مهندسان کمپانی اپل متوجه شدند که یک زبان ویرایشگر مشابه به منظور استفاده در هر نوع برنامه‌ای می‌تواند طراحی شود و بنابراین پروژهٔ اپل اسکریپت به عنوان بخشی از سیستم هفت متولد شد.
اپل اسکریپت در ماه اکتبر سال ۱۹۹۳ به عنوان بخشی از سیستم ۷٫۱٫۱ (اولین به روزرسانی اصلی سیستم ۷) به بازار عرضه شد. کوارک اکسپرس (ورژن ۳٫۲) یکی از اولین و اصلی‌ترین نرم‌افزارهایی بود که اپل اسکریپت را پشتیبانی می‌کرد. این باعث شد که اپل اسکریپت به‌طور گسترده‌ای منتشر شود. این مهم‌ترین عاملی بود در حفظ جایگاه مکینتش در پابلیشینگ، حتی بعداً کوارک اکسپرس و سایر برنامه‌ها به ویندوزِ مایکروسافت رو کردند.
بعد از مقداری شک در مورد آیندهٔ اپل اسکریپت روی نسل بعدی سیستم عامل‌های اپل، انتقال آن به اواس ده مک (حدود سال ۲۰۰۲) و رابط برنامه‌نویسی کوکوِ یِ آن، قابلیت استفاده و انعطاف اپل اسکریپت را به مقدار زیادی افزایش داد. برنامه‌های کوکو این اجازه را به برنامه نویسان می‌دهد که با تلاش کم، قابلیت‌های اسکریپتی ابتدایی را برای برنامه‌شان، با زیاد کردن تعداد برنامه‌هایی که مستقیماً متنی شدنی هستند، پیاده‌سازی کنند. به‌طور همزمان، جابجایی به زیربنای یونیکس و توانایی اپل اسکریپت برای اجرای مستقیم دستورهای یونیکس، کنترل اپل اسکریپت را روی خود سیستم عامل افزود. AppleScript Studio روی Mac OS X 10.2 به عنوان قسمتی از Xcode عرضه شد و بعدها با عرضهٔ AppleScriptObjC framework روی Mac OS X 10.6 کاربران توانستند با استفاده از اپل اسکریپت برنامه‌های محلی «کوکو» را بنویسند.
اپل اسکریپت بخشی از تکنولوژی خودکارسازی Mac OS X به همراه Shell script و Automator (software) است.

توضیحات (comments)

کامنت‌ها میوانند از چندین راه درج شوند. اگر می‌خواهید یک کامنت کوچک یک خطه درج کنید، دو عدد (-) یا یک (#) بگذارید. مثل:
--This is a one line comment# So is this!
اگر می‌خواهید کامنتی بگذارید که بیش از یک خط را می‌گیرد، به این‌گونه با پرانتز و * عمل کنید:
(* This is amultiplelinecomment *)

Hello, world!

در اپل اسکریپت، برنامهٔ "hello,world!" سنتی ما به صورت‌های زیادی قابل نوشتن است:
display dialog "Hello, world!" -- a modal window with “OK” and “Cancel” buttons-- ordisplay alert "Hello, world!"  -- a modal window with a single “OK” button and an icon representing the app displaying the alert-- orsay "Hello, world!" -- an audio message using a synthesized computer voice
اپل اسکریپت چندین گزینه برای واسط کاربر(user interface) شامل دیالوگها، زنگ‌های هشدار و لیستی از انتخابات دارد. (کاراکتر ¬ , با نگه داشتن کلید option و کلید return در ویرایشگر متن، نشانگر ادامه دار بودن یک عبارت داخل چند خط است)
-- Dialogset dialogReply to display dialog "Dialog Text" ¬
 default answer "Text Answer" ¬
 hidden answer false ¬
 buttons {"Skip", "Okay", "Cancel"} ¬
 default button "Okay" ¬
 cancel button "Skip" ¬
 with title "Dialog Window Title" ¬
 with icon note ¬
 giving up after 15
-- Choose from listset chosenListItem to choose from list {"A", "B", "3"} ¬
 with title  "List Title" ¬
 with prompt "Prompt Text" ¬
 default items "B" ¬
 OK button name "Looks Good!" ¬
 cancel button name "Nope, try again" ¬
 multiple selections allowed false ¬
 with empty selection allowed
-- Alertset resultAlertReply to display alert "Alert Text" ¬
 as warning ¬
 buttons {"Skip", "Okay", "Cancel"} ¬
 default button 2 ¬
 cancel button 1 ¬
 giving up after 2
هر متد تعاملی با کاربر می‌تواند مقادیری را چون فشردن دکمه، انتخاب یک مورد یا وارد کرون متن برای فرایندهای آینده را برگرداند. مثلاً:
display alert "Hello, world!" buttons {"Rudely decline", "Happily accept"}set theAnswer to button returned of the resultif theAnswer is "Happily accept" then
 beep 5else
 say "Piffle!"end if

تشابه به زبان طبیعی

از آنجاییکه AppleEventها راهی برای فرستادن پیام به برنامه‌ها هستند، اپل اسکریپت یک زبان به خصوص برای فرستادن AppleEventها است. برای پیروی از سنت سیستم عامل مک در راحتی استفاده، زبان اپل اسکریپت بر اساس زبان طبیعی طراحی شده‌است. همان‌طور که واسط کاربر گرافیکی آن هم با desktop تشابه دارد. یک برنامهٔ خوب نوشته شدهٔ اپل اسکریپت باید به اندازهٔ کافی تمیز و خوانا و قابل درک برای عموم باشد و به راحتی قابل ویرایش باشد. عمدتاً این زبان بر پایهٔ زبان هایپرتاکِ هایپرکارد است که گسترش یافتهٔ آن نه تنها به دنیای کارت‌ها و پشته‌های هایپرکارد، بلکه به صورت نظری به هر سندی اشاره دارد. برای همین، تیم اپل اسکریپت AppleEvent Object Model که اشیایی را که هر برنامه‌ای «میشناسدشان» را معرفی کردند.

قلب زبان اپل اسکریپت استفادهٔ کلماتیست که چون اسامی و تفعال عمل می‌کنند و قابل ترکیب هستند. مثلاً به جای اینکه از فعلی دیگر برای عمل چاپ کردن یک صفعه یا یک سند یا چندین صفحه (printPage, printDocument, printRange) اپل اسکریپت تنها "print" را استفاده می‌کند که می‌تواند با object مانند یا صفحه، یک سند یا چندین صفحه ترکیب شود.
print page 1print document 2print pages 1 thru 5 of document 2
به‌طور کلی AEOM تعریف یک سری شی است مانند "Document " یا " پاراگراف" یا عملیاتی چون "cut" و "close". این سیستم همچنین روش‌هایی برای اشاره به خصوصیات (Peoperty)های یک شی را دارد پس کاربر می‌تواند به "سومین پاراگراف سندی به نام روز خوب" یا " رنگ آخرین کلمهٔ جلوی پنجره" دسترسی داشته باشد.AEOM لغتنامهٔ یک برنامه برای پیوستن Apple Events به کلماتی خوانا برای انسان که اجازهٔ ترجمه از هر دو سو بین اپل ایوِنت‌های bytecode و یک اپل اسکریپت خوانا برای انسان می‌دهد را، استفاده می‌کند. برای شناخت بخش‌هایی از برنامه که متن شدنی اند باید لغتنامه‌هایی که آن برنامه‌ها پشتیبانی می‌کنند، ملاحظه شوند. (در Xcode و برنامه‌های Script Editor داخل File → Open Dictionary بروید)
برای تعیین کردن اینکه چه برنامه‌ای برای مقصد چنین پیامی مناسب است، اپل اسکریپت از ساختمان "tell" استفاده می‌کند:
tell application "Microsoft Word"
  quitend tell
به نوبت tell می‌تواند در یک خط با infinitive نشان داده شود:
tell application "Microsoft Word" to quit
برای اتفاقهای داخل"Core Suite" , مثل (activate, open, reopen, close, print, and quit) , برنامه ممکن است چون اشیای مستقیم با دستورهای انتقالی مواجه شود:
quit application "Microsoft Word"
مفهوم شئ سلسله مراتبی میهواند داخل بلوک‌های تو در تو مطرح شود:
tell application "QuarkXPress"
  tell document 1
    tell page 2
      tell text box 1
        set word 5 to "Apple"
      end tell
    end tell
  end tellend tell
اشیائ سلسله مراتبی را اینطور هم می‌توان نشان داد به وسیلهٔ عبارات prepositional:
pixel 7 of row 3 of TIFF image "my bitmap"
که در یک زبان برنامه‌نویسی دیگر ممکن است به صورت صدا زدن پشت هم متدها مانند سودوکد زیر باشد:
getTIFF("my bitmap").getRow(3).getPixel(7);
اپل اسکریپت شامل نحوی برای شمارش ترتیبی مثل "اولین پاراگراف" و همین‌طور نحوی برای شمارش کاردینال چون " پاراگراف یک" است. همین‌طور اعداد هم می‌توانند متن یا رقم به حساب بیایند ."five " , "fifth" و "۵" همگی پشتیبانی می‌شوند و معادل دارند. همین‌طور کلمهٔ "the " می‌تواند هرجای متن برای بهبود خوانایی استفاده شود و هیچ اثری بر عملکرد ندارد.

نمونه‌هایی از متن‌ها

یک نمونه ماشین حساب ایمن در برابر خطا:
tell application "Finder"
 -- Set variables
 set the1 to text returned of (display dialog "1st" default answer "Number here" buttons {"Continue"} default button 1)
 set the2 to text returned of (display dialog "2nd" default answer "Number here" buttons {"Continue"} default button 1)
 try
  set the1 to the1 as integer
  set the2 to the2 as integer
 on error
  display dialog "You may only input numbers into a calculator." with title "ERROR" buttons {"OK"} default button 1
  return
 end try

 -- Add?
 if the button returned of (display dialog "Add?" buttons {"No", "Yes"} default button 2) is "Yes" then
  set ans to (the1 + the2)
  display dialog ans with title "Answer" buttons {"OK"} default button 1
  say ans
 -- Subtract?
 else if the button returned of (display dialog "Subtract?" buttons {"No", "Yes"} default button 2) is "Yes" then
  set ans to (the1 - the2)
  display dialog ans with title "Answer" buttons {"OK"} default button 1
  say ans
 -- Multiply?
 else if the button returned of (display dialog "Multiply?" buttons {"No", "Yes"} default button 2) is "Yes" then
  set ans to (the1 * the2)
  display dialog ans with title "Answer" buttons {"OK"} default button 1
  say ans
 -- Divide?
 else if the button returned of (display dialog "Divide?" buttons {"No", "Yes"} default button 2) is "Yes" then
  set ans to (the1 / the2)
  display dialog ans with title "Answer" buttons {"OK"} default button 1
  say ans
 else
  delay 1
  say "You haven't selected a function. The operation has cancelled."
 end ifend tell
یک دیالوگ باکس سادهٔ نام کاربری و رمز عبور. اینجا نام کاربری john و رمز عبور app123 است:
tell application "Finder"
 set passAns to "app123"
 set userAns to "John"
 if the text returned of (display dialog "Username" default answer "") is userAns then
  display dialog "Correct" buttons {"Continue"} default button 1
  if the text returned of (display dialog "Username : John" & return & "Password" default answer "" buttons {"Continue"} default button 1) is passAns then
   display dialog "Access granted" buttons {"OK"} default button 1
  else
   display dialog "Incorrect password" buttons {"OK"} default button 1
  end if
 else
  display dialog "Incorrect username" buttons {"OK"} default button 1
 end ifend tell

Script editors

Script editorsها یک محیط برنامه‌نویسی یکپارچه را برای اپی اسکریپت‌ها فراهم می‌کنند و شامل ابزاری برای نوشتن، چک کردن صحّت، کامپایل، اجرا و debug اسکریپت‌ها دارند. آن‌ها همین‌طور مکانیسمی برای بازکردن و دیدن لغتنامه‌های اپل اسکریپت از برنامه‌های اسکریپت شدنی و ذخیرهٔ اسکریپت‌ها در تعدادی فرمت (compiled script files, application packages, script bundles, and plain text files) دارندو معمولاً قابلیت‌هایی چون syntax highlighting و تکه کدهای از قبل ننوشته شده را دارند.
AppleScript Editor(ویرایشگر اسکریپت در سیستم عامل x مک قبل از ۱۰٫۶ و yosemite)
ویرایشگری برای اپل اسکریپت در mac os x. اسکریپت‌ها داخل پنجره‌های سند ویرایش نوشته می‌شوند و در آنجا کامپایل و اجرا می‌شوند و این پنجره‌ها محیط‌های مختلفی برای وارد کردن اطلاعات دارند همین‌طور برای به اجرا درآوردن نتیجه‌ها و بقیهٔ اطلاعات نیز برای اهداف debug کردن فراهم است. دسترسی به لغتنامه‌های اسکریپتی و کدهای از پیش نوشته شده داخل منوهای برنامه موجود است. ویرایشگر اپل اسکریپت در yosemit شامل قابلیت نوشتن هم در اپل اسکریپت و هم javaScript است.
Xcode, از شرکت اپل
یک دسته از ابزارهایی با ویژگی‌های نزدیک به هم برای توسعه دادن برنامه‌هایی با قابلیت‌هایی برای ویرایش اپل اسکریپت‌ها یا درست کردن برنامه‌های تکامل یافتهٔ نوشته شده در زبان اپل اسکریپت.
Smile و smileLab , موجود از طریق (Satimage)
یک نرم‌افزار رایگانِ third-party , یک محیط برنامه‌نویسی تبلیغاتی برای اپل اسکریپت که خودش در اپل اسکریپت نوشته شده‌است. اسمایل مجانی است و عمدتاً برای توسعه دهی زبان اپل اسکریپت طراحی شده‌است. smileLab هم یک نرم‌افزار تبلیغاتی با امکانات اضافی برای آنالیز عددی، کارهای گرافی، اتوماسیون ماشین و کارهای وب است. smile و SmileLab هردو یک روش طبقه‌بندیِ پنجره‌های گوناگون را دارند. پنجره‌های اپل اسکریپت برای اجرا کردن و ذخیره فول اسکریپت‌ها و پایانه‌های اپل اسکریپت برای آزمایش خط به خط کد و پنجره‌های یونی-کد برای کار با متون و XML. کاربران می‌توانند واسط‌های پیچیده، به نام دیالوگ‌ها را برای موقعیت‌هایی که دیالوگ‌های خود اپل اسکریپت به کارشان نمیاد، درست کنند. 

[Script Debugger Script Debugger] از کمپانی [ Late Night Software Late Night Software]
یک محیط برنامه نویسیِ third-party برای اپل اسکریپت.
Script Debugger یک محیط پیشرفته برای اپل اسکریپت است که به نویسندهٔ اسکریپت اجازه می‌دهد که اپل اسکریپت‌ها را با stepping , breakpointگذاری و قدم‌گذاری داخل و بیرون توابع، subroutineها، دنبال کردن اثرات روی متغیر هاو ... , debug کند. Script Debugger همچنین یک مرورگر پیشرفتهٔ لغتنامه دارد که این اجازه را به کاربر می‌دهد که لغتنامه را در عمل و موقعیت‌های دنیای واقعی ببیند. این فرا تر از فقط لیست کردن چیزهایی است که لغتنامه می‌پوشاند بلکه یک نفر می‌تواند یک سند را داخل Pages باز کند و ببیند که چگونه لغات داخل لغتنامه برای آن سند صدق می‌کنند و این کار را برای فهم اینکه چه بخش‌های لغتنامه را استفاده کند، مفید است.Script Debugger برای ساختن اسکریپت‌هایی با واسط گرافیکی کاربر ساخته نشده‌است، علاوه بر توانایی ساخت alertها و دیالوگ ای ابتدایی، بیشتر روی کد زدن و debug کردن آن‌ها متمرکز است.
FacePan , از شرکت Late Night Software
یک محیط برنامه‌نویسی تجارتیِ third-party برای ساختن برنامه‌های اپل اسکریپت به همراه واسط گرافیکی کاربر. توسعهٔ FacePan در حال حاضر به تعویق انداخته شده‌است.

Script launchers

اپل اسکریپت‌ها می‌توانند از درون یک ویرایشگر اسکریپت اجرا شوند ولی معمولاً اجرا کردن آن‌ها به‌طور مستقیم، بدون بازکردن یک ویرایشگر اسکریپت مناسبتر است. تعدادی از انتخاب‌ها برای این گونه عمل کردن:
Script Menu
منو ی این سیستم گسترده دسترسی به اپل اسکریپت‌ها را از دروت منوبارِ کامپیوتر mac os X فراهم می‌کند بدون اینکه مهم باشد که چه برنامه‌هایی در حال اجرا هستند. انتخاب یک اسکریپت از منوبار، آن را آغاز می‌کند. در سیستم عامل 10.6.x , منوی اسکریپت از قسمت prefrences ویرایشگرِ اپل اسکریپت فعال می‌شود. در ورژن‌های قبلی مک اواس x این از داخل AppleScript Utility application فعال می‌شد. وقتی اولین بار فعال می‌شود، منوی اسکریپت یک کتابخانهٔ پیش‌فرض نسبتاً عام و اپل اسکریپت‌های کارکردی که از ویرایشگر اسکریپت هم قابل بازشدن اند و مثال‌هایی برای درک بهتر اپل اسکریپت اند را، نمایش می‌دهد. اسکریپت‌ها می‌توانند سازمان دهی شوند به‌طوری‌که فقط وقتی در منو ظاهر شوند که یک برنامهٔ مشخص در پس زمینه فعال است.
بسیاری از برنامه‌های اپل، برخی برنامه‌های third-party و برخی add-oneها منوی اسکریپت خاص خود را فراهم می‌کنند. این‌ها از چندین راه قابل فعال شدن اند اما تمتمی توابع اولیهٔ آن‌ها از یک جنس است.
Hotkey Launchers
میانبر(shortcut)های صفحه کلید با استفاده از System Preferences "Keyboard & Mouse Settings" (تنظیمات ماوس و صفحه کلید) قابل نسبت داده شدن به اپل اسکریپت‌ها هستند. برنامه‌های سودمند third-party گوناگونی هم در دسترس اند مانند QuicKeys, Spark, Quicksilver, Alfred, TextExpander که می‌توانند اپل اسکریپت‌ها را با ترکیب یک سری کلیدِ صفحه کلید، اجرا کنند.
Folder Actions (عملیات پوشه)
با استفاده از Folder Actions برای اپل اسکریپت، اسکریپت‌ها می‌توانند زمانی آغاز شوند که تغییر خاصی در پوشه‌ها رخ دهد (مثل اضافه یا حذف فایل‌ها).Folder Actionها با کلیک بر روی پوشه و انتخاب Folder Actions Setup... از منوی محتوا (contextual menu) می‌توانند معین شوند. مکان این دستورها از ورژن 10.6.x به بعد از ورژن‌های قبلی اش تفاوت کرده‌است. این کار با برنامه‌های سودمندِ third-party مانند Hazel هم صورت می‌گیرد.
Unix command line and launchd
اپل اسکریپت‌ها می‌توانند از Unix command line یا از launchd برای کارهای زمان‌بندی شده با استفاده از ابزار osascriptاجرا شوند. ابزار osascript می‌تواند اسکریپت‌های کامپایل شده (.scpt files) و فایل‌های متنی ساده (.applescript files- این‌ها با یک ابزار در زمان کامپایل اجرا می‌شوند) را اجرا کند. برنامه‌های اسکریپتی می‌توانند با استفاده از Unix open command، اجرا شوند.

مسائل مرتبط با اسکریپت‌ها

[Automator Automator]
Automator یک محیط ویرایش گرافیکی و ماژولی است که در آن workflow ها از actionها ساخته می‌شوند. قصد این است که بدون نیاز به دانش برنامه نویسی، بسیاری از توابع اپل اسکریپت را تکرار کنیم. Automator عملی مخصوص به شامل شدن و اجرا ی اپل اسکریپت‌ها را برای عمل‌های بسیار پیچیده داخا چارچوب ساده شدهٔ Automator, دارد .
هستهٔ سیستم برنامه‌های اسکریپت شدنی
این برنامه‌ها که فقط در پس زمینه اجرا می‌شوند و داخل mac os x اند، برای دسترسی دادن اپل اسکریپت به ویژگی‌هایی که به صورت معمول اسکریپت شدنی نیستند. مثلاً در ۱۰٫۶٫۳ برنامه‌هایی اسکریپت شدنی مثل VoiceOver(یک اسکریپت شدنیِ حسابداری و بستهٔ خط برِیل برای نابینایان) , System Events (کنترل برنامه‌های اسکریپت نشدنی و دسترسی به کارکردهای معینی از سیستم و عملیات اولیهٔ فایل‌ها) , Printer Setup Utility (یک ویژگی سودمند اسکریپت شدنی برای کنترل کارهای چاپی) , Image Events(تغییر هستهٔ عکس‌ها) , HelpViewer (ویژگی اسکریپت شدن برای نشان دادن قسمت کمک‌ها) ,Database Events (واسط کاربری پایگاه دادهٔ minimal SQLite3) و AppleScript Utility ,.
AppleScriptObjC
قسمتی از بستهٔ Xcode , محیط برنامه‌نویسی «کوکو»، که روی mac Os x قابل نصب است، است. AppleScriptObjC می‌گذارد تا اپل اسکریپت به دستورهای «کوکو» دسترسی مستقیم داشته باشد.
AppleScript Studio
قسمتی از بستهٔ Xcode در ۱۰٫۴ و ۱۰٫۵ که الآن دیگر محبوب نیست. یک چارچوب برنامه‌نویسی برای چسباندن واسط‌های «کوکو» به برنامه‌های اپل اسکریپت.

اضافه بر اسکریپت کردن (OSAX)
Scripting addition یک سری plug-in برای اپل اسکریپت هستند توسط third - partyها یا شرکت اپل توسعه داده شده‌اند. آن‌ها برای گسترش دستورهای خود اپل اسکریپت و گسترش ویژگی‌های آن برای کم کردن وابستگی آن به کارکرد برنامه‌های دیگر، طراحی شده‌اند. برای مثال Standard Addition.osax توسط شرکت اپل قابلیت‌هایی را به اپل اسکریپت افزوده است که داخل هستهٔ اصلی زبان نیست. بدون OSAX اپل اسکریپت توانایی نمایش دیالوگ‌ها یا سرویس‌های مسیریابی و اجرای یک برنامه، تولید شده به‌طور غیرمستقیم از برنامه‌ای دیگر را نداشت.

معماریOpen Scripting

یک جنبهٔ مهم پیاده‌سازی اپل اسکریپت Open Scripting Architecture (OSA) است. اپل OSA را برای محصولات third-party یِ اسکریپتی/اتوماسیونی مانند QuicKeys و UserLand , برای کارکرد در شرایط یکسان با اپل اسکریپت، فراهم کرده‌است. اپل اسکریپت به عنوان یک بخش اسکریپتی پیاده‌سازی شد و خصوصیات پایهٔ آن برای وساطت با چنین بخشی، برای OSA عمومی بود و به بقیهٔ توسعه دهندگان اجازه می‌داد تا بخش‌های اسکریپتی خود را به سیستم اضافه کنند. APIهای عمومی برای لود کردن، ذخیره و کامپایل متون برای همهٔ چنین بخش‌هایی یکسان کار می‌کرد که یعنی appletها و dropletها می‌توانستند برای هر زبان اسکریپتی برقرار باشند.

با سیستم عامل ما اوای ایکس، بخش JavaScript OSA , تنها زبان جدی OSA برای کار با اپل اسکریپت است در حالی که ورژن پرلِ مکینتاش، پایتون (زبان برنامه‌نویسی) , روبی (زبان برنامه‌نویسی) و تی‌سی‌ال 
, همگی ابزار کار با appleEventها بدون بخش‌های OSA را پشتیبانی می‌کنند.
یکی از جالب‌ترین ویژگی‌های OSA قابلیت "scripting additions" یا OSAX for Open Scripting Architecture eXtension که بر پایهٔ دستورهای خارجی هایپرکارد است، است. Scripting Additionها کتابخانه‌هایی هستند که به برنامه‌نویس اجازهٔ گسترده کردن توایع اپل اسکریپت را می‌دهند. دستورهایی اینچنین مستقل از برنامه‌اند و گسترده روی سیستم هستند. او ای ایکس مک یک سری از این additionها را به نام Standard Additions دارد که کارکرد اپل اسکریپت را با تعدادی دستور جدید چون دیالوگ‌های تعاملی با کاربر، خواندن و نوشتن فایل‌ها، دستورهای فایل سیستم‌ها، توابع تاریخ، متن و اعمال ریاضی، گسترده می‌سازند.