PyObjC

PyObjC عبارة عن جسر ثنائي الاتجاه بين لغتي البرمجة Python و Objective-C ، مما يسمح للمبرمجين باستخدام وتوسيع مكتبات Objective-C الحالية ، مثل إطار عمل Cocoa الخاص بشركة Apple ، باستخدام Python.

يتم استخدام PyObjC لتطوير تطبيقات macOS بلغة بايثون خالصة.

كما يوجد دعم محدود لـ GNUstep ، وهو تطبيق مفتوح المصدر ومتعدد المنصات لـ Cocoa.

للمبرمجين بلغة بايثون

يُعدّ تمكين المبرمجين من إنشاء تطبيقات بواجهة رسومية باستخدام مكتبات Cocoa بلغة بايثون الخالصة أهم استخدامات PyObjC . [ 2 ] علاوة على ذلك، وبفضل العلاقة الوثيقة بين Objective-C ولغة البرمجة C (فهي مجموعة شاملة لها)، يستطيع المطورون دمج أي واجهة برمجة تطبيقات (API) مبنية على C عن طريق تغليفها بغلاف Objective-C، ثم استخدام الكود المُغلّف عبر جسر PyObjC. وباستخدام Objective-C++ ، يُمكن فعل الشيء نفسه مع مكتبات C++ .

للمبرمجين بلغة Objective-C

قد يستفيد مطورو Cocoa أيضًا، حيث أن المهام المكتوبة بلغة Python تتطلب عادةً عددًا أقل من الأسطر مقارنةً بنظيرتها المكتوبة بلغة Objective-C. ويمكن استغلال ذلك لصالحهم لأنه يُمكّنهم من إنشاء نماذج أولية أسرع.

تاريخ

يعود أصل PyObjC إلى عام 1996، عندما قام ليلي غايفاكس ببناء الوحدة الأصلية في سبتمبر من ذلك العام. [ 3 ] ومن بين المساهمين المذكورين غيدو فان روسوم، مبتكر لغة البرمجة بايثون.

تمت إعادة كتابة PyObjC في عام 2002. وتشمل الإضافات البارزة القدرة على إنشاء فئات فرعية مباشرة من فئات Objective-C من Python ودعم كامل تقريبًا لأطر عمل Foundation و App Kit و Address Book.

وفي وقت لاحق من العام نفسه، أُضيفت إمكانية دعم إصدارات بايثون غير المعتمدة على إطار عمل، بالإضافة إلى دعم لاحق لتوزيعة بايثون المضمنة في نظام التشغيل ماك أو إس إكس . ورافقت هذه التغييرات قوالب مشاريع لتطبيقات كوكوا المستقلة لاستخدامها مع بروجكت بيلدر ، وهو الإصدار السابق لبيئة التطوير المتكاملة الحالية لمنصة أبل ، إكس كود .

أدرجت شركة أبل PyObjC في نظام التشغيل Mac OS X في عام 2007، مع إصدار Mac OS X 10.5 Leopard . [ 4 ]

الرسائل والأساليب

في لغة Objective-C، تتواصل الكائنات فيما بينها عبر إرسال الرسائل، وهو ما يُشابه استدعاء الدوال في لغات البرمجة الكائنية الأخرى. عندما يستقبل كائن ما رسالة، يبحث عن اسم الرسالة، أو مُحدِّدها، ويُطابقه مع دالة مُخصصة لنفس المُحدِّد، ثم يستدعيها.

تُورَث صيغة تعابير الرسائل هذه من لغة سمول توك، وتظهر ككائن يُسمى المُستقبِل، ويُوضع على يسار اسم الرسالة أو المُحدِّد، وكلاهما مُحاط بقوسين مربعين (صيغة الأقواس المربعة غير موروثة من سمول توك). تشير النقطتان الرأسيتان داخل المُحدِّد إلى أنه يقبل وسيطًا واحدًا أو أكثر، وسيط واحد لكل نقطتين رأسيتين. ولتحسين قابلية قراءة الكود، تُوضع النقطتان الرأسيتان داخل المُحدِّد بحيث يكون غرض التعبير واضحًا لا لبس فيه عند وجود الوسائط المطلوبة.

[ myLittleDuck makeSomeNoise : quack eyesClosed : @YES onOneFoot : @YES ];

يختلف هذا عن الصيغة المستخدمة في لغة بايثون، وفي العديد من اللغات الأخرى، حيث يكون التعبير المكافئ كالتالي:

myLittleDuck.makeSomeNoise_eyesClosed_onOneFoot_ ( quack , True , True )

يتم ترجمة محددات Objective-C إلى أسماء طرق Python عن طريق استبدال كل نقطتين بعلامة سفلية واحدة وإدراج الوسائط داخل زوج من الأقواس في النهاية، كما هو موضح أعلاه.

الصفوف الدراسية

يتم إنشاء فئات فرعية من فئات Objective-C بنفس طريقة إنشاء فئات Python العادية:

class MyDuck ( NSObject ): # NSObject هي فئة أساسية في Objective-C. def init ( self ): self = super ( MyDuck , self ) . init () # أسلوب برمجة في Objective-C، حيث # يتم إنشاء نسخة من الفئة الفرعية، self، # عن طريق إرسال المُهيئ المُحدد للفئة الأصلية . return selfmyLittleDuckOne = MyDuck.alloc ( ) . init ( )

انظر أيضاً

مراجع

  1. "pyobjc" . فهرس حزم بايثون . تم الاسترجاع في 27-03-2025 .
  2. "مقدمة إلى PyObjC" . ​​تم الاطلاع عليه بتاريخ 2018-08-05 .
  3. "PyObjC HISTORIC.txt" . 12-10-2002 . تم الاطلاع عليه بتاريخ 29-09-2017 .
  4. "PyObjC downloads.rst" . تم الاطلاع عليه بتاريخ 29-09-2017 .