كوكوا

تاريخ كوكوا

للمزيد من المعلومات: [[History of Mac OS X]]
كوكوا هو استمرار للعديد من الأنظمة في الأصل أداة للتطبيقات وأداة إنشاء من بيئات نكست ستيب وأوبن ستيب البرمجية التي طورت من قبل شركة نكست في عام 1980  وفي عام 1990. أبل حصلت على نكست في ديسمبر سنة 1996، ثم بعد ذلك عملت على نظام تشغيل رابسودى والذي كان يفترض أن يكون خليفة أوبن ستيب. كان لديها قاعدة تضاهى تطبيقات نظام تشغيل ماكنتوش. تدعى بلو بوكس. قاعدة المكتبات والدعم الثنائى الخاصة بأوبن ستيب سميت يلوبوكس. رابسودى تطورت إلى نظام التشغيل ماك إكس، وأصبحت يولو بوكس تابعة لكوكوا. نتيجة لذلك، فئات الكوكوا تبدأ بـ إن إس تشير إلى إما تخليق نكست-صن لأوبن ستيب، أو إلى مصطلح الملكية الأصلية لنظام أوبن ستيب، نكست ستيب :
إن إس سترينغ، إن إس أر ايى، إلخ.
تم تطبيق الكثير من العمل الذي دخل حيز التنمية في تطوير نظام التشغيل ماك إكس، كوكوا هو الجزء الأكثر وضوحا. ومع ذلك يوجد بعض الاختلافات. على سبيل المثال، نكست ستيب وأوبن ستيب استخدموا عرض تذييل النصوص والرسومات على الشاشة، بينما تعتمد كوكوا على  نظام كوارتز الخاص بشركة أبل والذي يستخدم نموذج التصوير من النوع بي دي إف. كوكوا أيضا مستواها جيد في دعم الإنترنت، بما يتضمن إن إس يو آر إل وفئاتإتش تي إم إل الخاصة بـويب كيت، وغيرهم، في حين كان هناك مستوى بدائى من الدعم أقل من أوبن ستيب للاتصالات الشبكية المدارة من خلال فئات إن إس فايل هاندل
و مقابس بيركيلى.
قبل الاستخدام الحالى لكوكوا، كانت العلامة التجارية cocoa اسما لتطبيق كان يساعد الأطفال في بناء مشاريع الوسائط المتعددة. كان في الأصل يعرف باسم كيد سيم، والآن مرخص كطرف ثالث ويسوق كصانع ستادج كاست. توقف هذا البرنامج في واحدة من التبريرات التي تبعت وظائف ستيف راجعة لـ أبل.
أعيد استخدام الاسم مرة أخرى لتجنب التأخير أثناء تسجيل علامة تجارية جديدة، مع موافقة ستادج كاست لتسويق الكوكوا القديم باسم آخر جديد.

إدارة الذاكرة

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

الربط المتأخر

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

الكائنات الغنية

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

التطبيقات

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