Bisakah Python / Ruby / Perl / etc (atau bahkan bash) menggantikan AppleScript? [Tutup]

4

Saya tidak mengundang orang untuk membenci di AppleScript secara umum; Saya hanya ingin tahu apakah yang membuat AppleScript bermanfaat dapat digunakan oleh bahasa scripting tujuan umum lainnya. Yaitu, Lion & Mac Apps mungkin memberikan AppleScript hooks & APIs — dapatkah bahasa apa pun menggunakannya? Atau AppleScript dalam kategori khusus sendiri?

Konteks: Saya belajar tentang Unix dan bagaimana itu mendasari OS X, dan mencoba untuk menjadi sadar tentang peluang dan strategi untuk otomatisasi & abstraksi. Aaa dan aku sudah merasa otakku bocor, jadi jika aku harus menambahkan lebih banyak ke piringku aku berusaha melakukannya dengan hemat.

Josh Tilles
sumber
2
Itu hanya alat. Kecuali jika Anda membangun rumah, palu pembingkaian adalah hal yang tidak berguna untuk dikhawatirkan. Ketika Anda belajar - lebih fokus pada tugas yang dihadapi . Karena otak Anda bocor, saya akan meninggalkan filosofi untuk hari lain dan kembali dengan pertanyaan spesifik. Kita bisa membuat kemajuan yang lebih baik di depan itu daripada mengkhawatirkan gorila yang bertarung dengan hiu .
bmike

Jawaban:

6

Dalam hal tujuan umum skrip Unix, banyak bahasa seperti bash, perl, python, atau ruby ​​lebih mampu daripada AppleScript. Tetapi AppleScript memiliki peran khusus dalam MacOS dengan dukungan asli yang bagus untuk hal-hal spesifik Mac, terutama yang terkait dengan GUI.

Ada ikatan antara bahasa skrip lain dan acara MacOS. Sebagai contoh, lihat Modul OSA MacPython °°° atau Apple's Ruby dan Python untuk Mac OS X °°°. Secara umum saya akan mempertimbangkan upaya warga negara kelas dua ini; mereka mungkin bekerja dan menjadi pilihan yang baik tetapi akan sedikit canggung.

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ °
¯¯ EDIT:
Kedua bahasa tidak didukung pada sistem MacOS terbaru . Tautan ini kembali:

Dokumen Pensiunan - Penting: Versi Ruby saat ini (2.0) tidak didukung sebagai bahasa skrip Kakao di OS X v10.9. Sisa konten dalam dokumen ini belum ditinjau keakuratannya.
Apple merekomendasikan Objective-C untuk pengembangan aplikasi Kakao. [Sorotan saya.]

Dokumen selesai dengan baris ini:

Hak Cipta © 2013 Apple Inc. Semua Hak Dilindungi Undang-Undang. […] Diperbarui: 2013-09-18

Nelson
sumber
1
Karena halaman Ruby dan Python di Apple belum diperbarui sejak 2007, mereka benar-benar warga negara kelas dua. :-)
lpacheco
3

Jawaban saya adalah: ya

Applescript adalah anakronisme yang mengerikan dari System 7 dan dalam semua tahun penggunaan dan pengembangan Mac saya tidak pernah bisa membuat diri saya untuk menulis satu baris pun.

OSA adalah kerangka kerja yang didukung oleh Apple yang memungkinkan Anda melakukan akses apa pun yang biasanya dilakukan melalui Applescript. Apakah itu kelas satu atau dua, hanya Apple yang tahu. Java disebut-sebut oleh Apple sebagai warga negara kelas satu untuk Kakao sampai Apple membunuhnya. Python dan Ruby berbeda karena mereka adalah bahasa modern sementara Applescript adalah kekacauan kuno dan Apple tahu itu.

Berbicara khusus dari latar belakang Ruby, Anda memiliki beberapa opsi:

  1. rb-appscript - agak ketinggalan jaman
  2. RubyOSA
  3. ScriptingBridge untuk Kakao . Juga tutorial yang bagus dengan MacRuby di Ars Technica .

Saya telah menggunakan ini secara ekstensif dalam beberapa tahun terakhir dan mereka melakukan pekerjaan dengan sangat baik. Setara yang serupa harus ada untuk Python.

kLy
sumber
1

AppleScript berada dalam kategori khusus sendiri, karena dikembangkan oleh Apple dan memiliki mekanisme bawaan untuk berinteraksi dengan sistem Acara Apple di OS X. Saya tidak mengetahui adanya dukungan bawaan seperti itu dalam bahasa skrip lain kamu menyebutkan.

Untuk menambahkan dukungan itu ke skrip Anda, Anda bisa menggunakan jembatan acara seperti appscript untuk memungkinkan Anda memanfaatkan kait AppleScript di aplikasi dari Ruby atau Python. Saya tidak pernah menggunakannya sendiri, jadi jarak tempuh Anda mungkin berbeda.

Hacker dimuliakan
sumber
1

Filosofi desain AppleScript dan bahasa scripting command-line adalah dua hal yang sangat berbeda. Mereka berdua bertujuan menyelesaikan sesuatu, tetapi melakukannya dengan cara yang sangat berbeda.

AppleScript dimaksudkan untuk membantu Anda mengotomatisasi tugas-tugas berbasis GUI tingkat tinggi yang umum, jadi Anda tidak perlu mengklik ini dan mengetiknya berulang-ulang.

Script command-line biasanya menawarkan lebih banyak fleksibilitas dan kekuatan daripada AppleScript (kecuali jika Anda benar-benar mengetahui SA Anda!) Membuat Anda menggali lebih dalam ke dalam nyala API mirip-mirip Mac OS X.

Untuk meringkas:

  • AppleScript : Otomatiskan perangkat lunak berbasis GUI Anda.
  • Skrip baris perintah : Lakukan sebagian besar tugas lainnya.
  • Tidak, mereka tidak dapat mengganti AppleScript karena AS lebih dekat ke GUI untuk banyak tugas (sangat mudah untuk secara otomatis memasang volume jarak jauh di AppleScript, saya tidak ingin mencobanya dalam bash atau perl).
CyberSkull
sumber
1

javascript secara resmi didukung sejak OSX 10.10. Dijelaskan oleh apple sebagai "javascript untuk otomatisasi", disingkat menjadi "JXA".

Hanya untuk mengklarifikasi hal-hal, Anda dapat mencapai dalam javascript segala sesuatu yang berkaitan dengan gui dan otomatisasi, seperti applescript dan banyak lagi. Selain itu, setidaknya ada sedikit aktivitas komit yang sedang berlangsung untuk wiki github untuk https://github.com/JXA-Cookbook/JXA-Cookbook/wiki/Getting-the-Application-Instance .

hdrz
sumber