جنو ستب

جنو ستب  هو تطبيق مجاني يشتمل على البرمجيات الحرة التي تنفذ Cocoa (لاحقاً OpenStep ) Objective-widget toolkit , C frameworks ، وأدوات تطوير التطبيقات Unix-like operating systems و Microsoft Windows . إنه جزء من GNU Project .

GNUstep تضم من خلال منصة، وجوه المنحى IDE . بغض النظر عن واجهة Objective-C الافتراضية ، فإن GNUstep توجد لها روابط Java , Ruby. يعملون على ضم بعض الإضافات إلى Cocoa من Apple ليظلا متوافقتين. جذور واجهة التطبيق GNUstep هي نفس جذور كوكوا: NeXTSTEP و OpenStep . وهكذا يسبق GNUstep الكاكاو ، الذي ظهر عندما استحوذت شركة Apple على تقنية NeXT ودمجتها في نظام التشغيل Mac OS X الأصلي وعملت على تطويرها ، بينما كان GNUstep في البداية فقط جهدًا مبذول من قبل بعض مطوري GNU لتكرار ميزات NeXTSTEP العالية طموحها تقنيًا والتي تناسب المبرمجين.

تاريخ 
بدأت GNUstep مع بول كونز و الأخرين في مركز ستانفورد مسرع الخطي عندما أرادو نقل ميناء HippoDraw من منصة NeXTSTEP إلى منصة بديلة. بدلاً من الإنشغال بإعادة كتابة HippoDraw من البداية وإعادة استخدام تصميم التطبيق فقط ، قرروا إعادة كتابة طبقة كائن NeXTSTEP التي يثق بها التطبيق. كان هذا الإصدار الأول من libobjcX . لقد مكنهم من نقل HippoDraw إلى أنظمة Unix التي تشتغل بنظام X Window دون العبث أو تغيير سطر واحد من مصدر التطبيق الخاص بهم. من بعد إظهار مواصفات OpenStep للجمهور في عام 1994 ، تم إقرار إعادة كتابة objcX أخر يلتزم بواجهات برمجة التطبيقات الجديدة. البرنامج سيشتهر باسم "GNUstep".

هيكلة البرمجيات

استدعاء 
GNUstep تمتلك مجموعة من عناصر التحكم الرسومية التي تكتب بلغة البرمجة Objective-C.

تشتمل واجهة المستخدم الرسومية (GUI) الخاصة بـ GNUMail على عناصر التحكم في الرسومات. توجد إحتمالية أن يتفاعل GNUMail مع نظام النوافذ ، على سبيل المثال X11 أو ايلاندز ، واجهة المستخدم الرسومية لابد أن تشتمل على المقدمة . تحتوي طبعاً الواجهة الخلفية لـ GNUstepعلى مجموعة صغيرة من الوظائف التي تسستعلها مكتبة واجهة المستخدم بخصوص التفاعل مع نظام النوافذ الفعلي. كما أن لديها محرك عرض يطابق وظائف Postscript الشائعة. الحزمة gnustep-back توفر لك الخلفيات التالية:

 القاهرة - الواجهة الخلفية الافتراضية باستخدام مكتبة رسومات القاهرة ثنائية الأبعاد.
 winlib - الخلفية الافتراضية لأنظمة Microsoft Windows. متغيرات Cairo و Windows API.
 الفن - الخلفية القديمة (المهملة) على أنظمة تشبه يونكس. يستخدم مكتبة رسومات PostScriptlike 2d المستندة إلى المتجهات Libart .
 xlib - الخلفية X11 القديمة (مهملة).

النماذج 
ترث GNUstep بعض المبادئ المتعلقة بالتصاميم المقترحة في OPENSTEP (يسبق Cocoa GNUstep، لكن Cocoa تصب كامل إهتمامها و إعتمادها على OPENSTEP) بالإضافة إلى لغة Objective-C.

 نموذج - عرض - نموذج تحكم
 الهدف - العمل
 السحب والإفلات
 وفد
 إعادة توجيه الرسائل (من خلال NSInvocation)

واجهات أخرى 
بالإضافة إلى علامة Objective-C ، هناك بعض المشاريع الصغيرة التي تدرس وتطبق تحت مظلة GNUstep و برمجة تطبيقات أخرى من Apple:

 تهدف مكتبة البورون إلى تطبيق Carbon API . إنه غير مكتمل للغاية.
 تم تصميم مكتبة CoreBase لتكون متوافقة مع Core Foundation . لم يكتمل بشكل كافٍ أن يكون المكون الأساسي (مجموعة الأساس) مجرد غلاف حوله.
 تنفذ مكتبة QuartzCore واجهات برمجة تطبيقات الرسوم المتحركة الأساسية. تنفذ مكتبة أوبال كوارتز 2D .

, لاتوجد مشاريع تتماشى مع بيئة The Swift programming language ضد GNUstep Objective-C environment

التطبيقات 
بالأسفل توجد الأمثلة على التطبيقات المكتوبة أو المنقولة إلى GNUstep.

مكتوب من الصفر 

 العناوين ، عنوان / مدير جهات الاتصال
 Étoilé ، بيئة سطح المكتب
 GNUMail ، عميل بريد إلكتروني
 مكتبة قاعدة بيانات GNUstep 2 ، نسخة Enterprise Objects Framework
 GNUstepWeb ، خادم تطبيق متوافق مع WebObjects 4.x.
 Gorm ، منشئ واجهة
 GWorkspace ، مساحة عمل ومدير ملفات
 Grr ، قارئ موجز RSS
 Oolite ، نسخة من Elite ، لعبة محاكاة الفضاء مع مكونات تداول
 PRICE ، تطبيق التصوير
 ProjectCenter أو Project Builder أو ما يعادله من Xcode.
 TalkSoup ، عميل IRC
 صالة
 زيبر ، أداة أرشيف الملفات

تم نقله من NeXTSTEP أو OPENSTEP أو macOS 

 أدون
 بيوكاكوا
 شطرنج
 سينون
 عدن ماث
 باذنجان
 إيماكس
 محظوظ
 جوموكو
 نيكستغو
 بيكو بيكسل
 تحرير النص
 الوقت

شوكات GNUstep 

 Universal Windows Platform ، التي تتضمن مجموعة WinObjC تتكون من أجزاء مختلفة من GNUstep وتطبيقات Microsoft الخاصة لأشياء مثل Cocoa Touch API.

قدرات الطبقة

المجموعة الأساسية 
توفر Foundation Kit فئات أساسية مثل الغلاف و بنية البيانات.

 سلاسل
 المجموعات (المصفوفات والمجموعات والقواميس) والعداد
 إدارة الملفات
 أرشفة الكائن
 التلاعب المتقدم بالتاريخ
 الكائنات الموزعة والاتصال بين العمليات
 التعامل مع URL
 الإخطارات (والإخطارات الموزعة)
 سهل متعدد الخيوط
 توقيت
 أقفال
 معالجة الاستثناء

مجموعة التطبيق 
مجموعات التطبيقات تقدم فئات مختلفة بخصوص إمكانيات واجهة المستخدم الرسومية.

 عناصر واجهة المستخدم (طرق عرض الجدول ، المتصفحات ، المصفوفات ، طرق عرض التمرير)
 الرسومات ( WYSIWYG ، رسومات تشبه التذييل ، مسارات بيزير ، معالجة الصور مع تمثيلات متعددة ، سياقات رسومية)
 إدارة الألوان (تمت معايرتها مقابل ألوان الجهاز ؛ تمثيلات الألوان CMYK وRGB وHSB والرمادي والمسمى ؛ شفافية ألفا)
 ميزات نظام النص: تنسيق نص منسق ، ومرفقات نصية ، ومدير تخطيط ، وأداة طباعة ، وقواعد ، وأنماط فقرات ، وإدارة خطوط ، وتهجئة
 إدارة الوثائق
 ميزات الطباعة: عمليات الطباعة ولوحة الطباعة وتخطيط الصفحة
 مدير المساعدة
 خدمات اللوح (المعروف أيضًا باسم Clipboard)
 مدقق املائي
 ارتباطات مساحة العمل للتطبيقات
 عمليات السحب والإفلات
 تقاسم الخدمات بين التطبيقات

انظر أيضًا 

 Darling (برنامج) ، طبقة توافق تعتمد على GNUstep
 GNUstep عصر النهضة ، إطارا للوصف XML من GNUstep المحمولة / ماك OS X واجهات المستخدم
 Miller Columns ، طريقة تصفح شجرة الملفات التي يستخدمها GWorkspace File Viewer
 قائمة الخصائص ، غالبًا ما تستخدم تنسيق ملف لتخزين إعدادات المستخدم
 StepTalk ، إطار البرمجة النصية
 Window Maker ، مدير نوافذ مصمم لمحاكاة NeXT GUI كجزء من مشروع GNUstep الأوسع

مراجع

روابط خارجية 

 الصفحة الرئيسية لمشروع GNUstep.org
 تطبيقات GNUstep ودروس المطورين
 مشروع تطبيق GNUstep
 مقابلة أجريت عام 2003 مع مطور GNUstep نيكولا بيرو 
 مقابلة FLOSS الأسبوعية مع جريجوري كاسامنتو وريكاردو موتولا من GNUstep
 GNUstep على Debian و FreeBSD و MacPorts
 بيئة سطح المكتب NEXTSPACE ، بناءً على GNUstep

أدوات تحكم واجهة المستخدم الرسومية
برمجيات تستخدم كايرو
برمجيات حرة متعددة المنصات
برمجيات مشروع جنو
طبقات توافقية
نظام النافذة إكس
نكست