جتك+
جتك بلس (بالإنجليزية: +GTK) هي طقم أدوات عالي الأداء وغني بالمميزات لإنشاء واجهات رسومية للمستخدم، يقدم تكامل متعدد المنصات وطريقة سهلة لاستخدام دواله. كتبت جتك بلس باستخدام لغة سي ورخصت تحت ترخيص GNU LGPL 2.1 الذي يسمح بتطوير كل من البرامج الحرة والتجارية المغلقة باستخدام جتك بلس من دون رسوم ترخيص أو الملكيات.
جتك لقطة شاشة
|
التاريخ
في الأصل، أنشأت جتك بلس و طورت بشكل منفصل من المشروع مفتوح المصدر الشهير: برنامج جنو لمعالجة الصور (جيمب). بينما كان بيتر ماتز و سبنسر كيمبل يطورون الإصدارات الأولى من جيمب في عام 1997، أنشؤوا جتك والتي تعني (GIMP Toolkit) كبديل عن طقم أدوات Motif والذي كان في ذلك الوقت غير حر. وعلامة الزائد أضيفت لاحقا عندما اكتسب طقم الأدوات مميزات كائنية المنحى والتوسع.[5] كان ذلك قبل عشر سنوات أو أكثر. أما اليوم فما زال هناك الكثير من النشاط في تطوير مكتبة جتك بلس والإصدارة الأخيرة هي 3.22 وقبل أن ترخص مكتبة كيو تي برخصة حرة وهي التي قام عليها سطح المكتب كدي، فقد توجه الاهتمام لإنشاء سطح مكتب جنوم، واعتمد بشكل أساسي على مكتبة جتك بلس الناشئة.
إن هذه الحركة أكسبت مكتبة جتك بلس شهرة واسعة جدا، فبرمجت بها الآلاف من التطبيقات التي تعمل على سطح المكتب جنوم. وجعلتها محط الأنظار لبقية المنصات. فهناك على الأقل بيئتان لسطح المكتب في عالم اليونكس ومشتقاته معتمدة على مكتبة جتك بلس ألا وهي سطح المكتب جنوم، وسطح المكتب Xfce و كلاهما يعتمدان عليها لتقديم بيئات عمل متكاملة للمستخدمين.
صدرت أول نسخة من مكتبة جتك+ في 13 أبريل من عام 1998م . وبعد عشرة أشهر لاحقة أطلقت النسخة المستقرة جتك بلس 1.2. هذا الإصدار إحتوي على مجموعة من المميزات الجديدة، وأكثرها أهمية هو بدأها في دعم الثيمات. والجدير بالملاحظة أن أحد أجزاء هذه المكتبة انفصل عنها وهو Glib و أصبح يطور بشكل مستقل. الإصدارة 1.2 لم تكن دوالها متوافقة مع دوال النسخة السابقة 1.0، والبرامج التي كتبت بها يجب أن تعدل لكي تعمل على نسخة 1.2. وبعد إصدار جتك بلس 1.2، استغرق الأمر ثلاث سنوات حتى تطلق نسخة مستقرة رئيسية ثابتة من جتك بلس. وبهذه الإصدارة 2.0 حصلت مكتبة جتك بلس على الكثير من التغييرات الجذرية وكان من أبرزها دعم اليونيكود واللغات العالمية، ومرة أخرى فإن التطبيقات يجب أن تعدل حتى تتمكن من العمل على هذه النسخة. وفي هذه الأيام فإن نسخة رئيسية ثابتة من جتك بلس تطلق كل تسعة أشهر وكل النسخ عادة تملك التوافقية فيما بينها، مما يعني أن أي تطبيق كتب في مكتبة جتك بلس الإصدارة 2.0 سيعمل دائما مع أي نسخة أخرى من [5] جتك بلس 2.
بنية جتك+
تتألف مكتبة جتك بلس من عدة مكونات، يصفها الشكل التالي:
جي ليب
جي ليب هي مكتبة خدمية متعددة المنصات. بدأت كجزء من جتك+ ، ولكن منذ الإصدارة 1.2 فصلت إلى حزمة مستقلة. إنها تستخدم الآن في الكثير من المشاريع مفتوحة المصدر. و جي ليب تحوي العديد من المميزات المختلفة منها:
- دوال للتعامل ترتيب البايتات
- دوال نصوص خدمية
- تحميل المكتبات الديناميكية
- الكثير من هياكل البيانات، على سبيل المثال القوائم، والجداول المجزئة، والمصفوفات والأشجار الثنائية.
- معظم وظائفها تأخذ نصوص بنظام ترميز utf8 الذي يدعم كل لغات العالم.
كل أجزاء جتك+ مكتوبة بلغة السي، من ثم لا يوجد دعم لمميزات البرمجة كائنية المنحى في اللغة. ولكن جتك+ لا تزال تتفاخر أنها مكتبة كائنية المنحى. هذا يرجع إلى GObject والذي بدوره هو جزء من جي ليب. GObject هو نظام كائني يُستخدم إلى حد كبير في جتك بلس. لقد صمم ليكون سهلا في الاستخدام بواسطة اللغات البرمجية الأخرى سواء التفسيرية أو التي تبني. GObject يدعم الوراثة الكائنية بالإضافة إلى الواجهات. الكائنات يمكن أن تمتلك خصائص مسماة. و يوجد هناك تقنية إعلامية عمومية الغرض للكائنات تدعى signals الإشارات. الكائنات في GObject مدارة في الذاكرة بنفس الطريقة الكائنات في Objective-C.
بانغو
بانغو هي عبارة عن مكتبة لرسم وتصيير النصوص، ودعم التدويل. إنها النواة لإدارة النصوص والخطوط لمكتبة جتك+ منذ الإصدارة 2.0. بانجو يدعم كل اللغات العالمية الرئيسية فعليا، مثل العربية والعبرية و التايلندية والصينية والعديد من اللغات الهندية بالإضافة إلى اللغات اللاتينية. بانجو يمتلك نهايتان خلفيتان للخطوط: خطوط من جهة العميل تستخدم FreeType و fontconfig. النصوص يمكن أن تصير باستخدام Xft أو Cairo أو مباشرة في مكدس الذاكرة. الخطوط الأصلية في مايكروسوفت ويندوز. و نهاية الخلفية هذه يمكن - بشكل اختياري- أن تستخدم Uniscribe لترتيب النصوص المركبة.و النصوص يمكن أن تصير باستخدام Cairo أو مباشرة باستخدام دوال Win32 الأصلية.
ATK
مكتبة ATK (اختصار من Accessibility Tool Kit) هي مجموعة من الواجهات التي تسمح لـ جتك بلس بتصدير معلومات إضافية حول الأدوات والمعلومات بحيث يمكن أن تكون مفيدة للمستخدمين الذين لديهم ضعف. على سبيل المثال، الزر يمكن أن يُعد واجهة AtkAction . هذه الواجهة تُستخدم لكائنات يمكن للمستخدم أن يتفاعل معها. باستخدام هذه الواجهة يصبح من الممكن أن نستعلم عن الإجراءات التي يدعمها الزر ويستدعي واحد منها. فالزر يمكن أن يدعم إجراء " النقر " بحيث يستدعي متحكم نقر الزر. معظم إعدادات المسبقة للأدوات لواجهات ATK حاليا تكمن في وحدة منفصلة تدعى gail ، ولكن هناك خطط لإدراجها داخل وحدة جتك+ بدلا عن ذلك. طورت ATK بواسطة شركة صن مايكروسيستم كجزء من مشاركتهم في مشروع GNOME Accessibility.
Cairo
كايرو هي مكتبة برمجيات توفر لمطوري البرمجيات واجهة برمجة تطبيقات مبنية على الرسوميات المتجهة ومستقلة عن العتاد. صُمِّمت القاهرة لتوفر الأساسيات للرسم ثنائي الأبعاد عبر عدد من الخلفيات المختلفة. صُمِّمت القاهرة لتستخدم تسريع العتاد عند توفره. بالرغم من كتابتها بالسي، توجد جسور لاستخدامها من خلال العديد من لغات البرمجة الأخرى، مثل سي++، و سي#، جافا، بايثون، بيرل، روبي، وغيرها. القاهرة برمجية حرة، مرخصة تحت رخصة جنو العمومية الصغرى ورخصة موزيلا العمومية. أسس مشروع القاهرة كيث باكرد وكارل وورث لتستخدم مع خادم النوافذ X. سُمِّيت في البداية Xr أو Xc. تغير الاسم ليبين أنها مكتبة متعددة المنصات وليست مقيّدة بخادم النوافذ X. أُخِذ الاسم "cairo" من الاسم الأصلي Xr، المشابه للحروف اليونانية Chi Rho "كاي رو". استخدمت مكتبة جتك+ مكتبة القاهرة لرسم معظم أدواتها منذ الإصدارة 2.8 والتي صدرت في عام 2005. ومكتبة القاهرة تستخدم في مشاريع أخرى غير جتك+ و أهمها: محرك Geko التابع لموزيلا، مكتبة Poppler و هي مكتبة لتصدير ملفات PDF و كذلك مشروع WebKit. تتنافس القاهرة مع تقنيات مماثلة مثل WPF و GDI+ من ميكروسوفت، Quartz 2D من أبل، و Anti-Grain Geometry (AGG).
GDK
GDK اختصار لـ ( GIMP Drawing Kit) و هو يتصرف كتغليف حول وظائف النوافذ والرسوميات منخفضة المستوى المقدمة من أنظمة الرسوميات. وكما سبق فقد طورت هذه المكتبة أولا لخادم النوافذ X و هي تعمل كوسيط بين خادم X ومكتبة استخدمت بحيث تدير عمليات التصيير الأساسية مثل الرسوميات البدائية والمؤشرات و الخطوط بالإضافة إلى أحداث النافذة ووظائف السحب والإفلات. و GDK هو أحد الأجزاء المهمة لقابلية النقل لمكتبة جتك بلس. ونظرا لأن الوظائف المنخفضة المستوى لمنصات المتعددة تقدمها بالفعل مكتبة Glib ، فكل ما تحتاجه لجعل مكتبة جتك+ تعمل على المنصات الأخرى هو نقل GDK ليعمل كطبقة فوق نظام الرسوميات في المنصة المستهدفة. لذلك فإن النسخ GDK المنقولة إلى Win32 و Quartz جعلت تطبيقات جتك+ تعمل على نظام الويندوز والماكنتوش، على الترتيب. ومنذ جتك بلس 2.8 فإن GDK أصبح يدعم مكتبة القاهرة.
مميزات مكتبة جتك+
تتميز جتك بلس بعدة مميزات ومن أهمها:[5]
- ترخيصها الذي يسمح لك بالبرمجة مفتوحة المصدر ومغلقة المصدر أيضا وهو ترخيص LGPL.
- أنها متعددة المنصات فهي تعمل على نظام الويندوز واللينكس وكل منصات اليونكس وأيضا تعمل بمحاكي على منصة الماكنتوش وفي طريقها للعمل عليه بشكل أصلي.
- سهولتها وسرعتها و أنها مكتوبة بلغة السي الشهيرة مما يجعلها مسيطرة في هذا المجال وخاصة للذين لم تعجبه لغة ++C.
- يوجد لها العديد من الجسور للغات أخرى مثل السي بلس بلس وجافا وبايثون وبيرل و php و غيرها الكثير.
- اعتمادها في مشاريع ضخمة أمثال سطح مكتب جنوم وسطح مكتب Xfce والتي بنيت عليها الآلاف من التطبيقات التجارية ومفتوحة المصدر.
- أنها تدعم اللغات العالمية، وكذلك عمليات المسهلة لذوي الاحتياجات الخاصة.
هيئات جتك
هي أشكال وهيئات لواجهات مكتبة جتك بلس للغة البرمجة سي++ وتنطق بالإنجليزية: (جي.تي.كي بلاس)، ويمكن كتابتها اختصارا: جتك بلس ويمكن استخدام هذه الهيئات ضمن أي نظام تشغيل ما دامت مكتبة جتك بلس تعمل عليه.
سلبيات جتك بلس
أهم سلبيات جتك+:[5]
- لا يوجد دعم فني تجاري، وذلك بعكس المكتبات الأخرى.
- التوثيق يعتبر ضعيفا بالنظر إلى المكتبات المنافسة.
- عمليات التطوير فيها وحل المشاكل بطئية نوعا ما، ولا تتطور بسرعة كبيرة.
- الكتب والشروحات حول هذه اللغة أيضا متدني لدرجة كبيرة ولا يوجد إلا لإصدارات قديمة.
- قلة المطورين الذي يعملون على تطوير هذه المكتبة.
أشهر التطبيقات المكتوبة بمكتبة جتك بلس
1- برنامج تحرير الرسومات جمب
2- سطح المكتب جنوم
3- برنامج الرسوميات المتجهة إنكسكيب
مراجع
- وصلة مرجع: http://directory.fsf.org/wiki/gtk+.
- "The gtk Open Source Project on Open Hub: Languages Page". أهلوه. اطلع عليه بتاريخ 18 يوليو 2018. الوسيط
|CitationClass=
تم تجاهله (مساعدة); تحقق من التاريخ في:|access-date=
(مساعدة) - "The gtk Open Source Project on Open Hub: Code Locations Page". أهلوه. اطلع عليه بتاريخ 3 سبتمبر 2018. الوسيط
|CitationClass=
تم تجاهله (مساعدة); تحقق من التاريخ في:|access-date=
(مساعدة) - "Overview of GTK+ and its Libraries" (باللغة الإنجليزية). اطلع عليه بتاريخ 28 يوليو 2017. الوسيط
|CitationClass=
تم تجاهله (مساعدة); تحقق من التاريخ في:|access-date=
(مساعدة)صيانة CS1: لغة غير مدعومة (link) - "مقدمة تعريفية بـ +GTK | وادي التقنية". itwadi.com. مؤرشف من الأصل في 21 نوفمبر 2017. اطلع عليه بتاريخ 10 أكتوبر 2017. الوسيط
|CitationClass=
تم تجاهله (مساعدة)
وصلات خارجية
- جتك على موقع Open Hub (الإنجليزية)
- جتك على موقع Free Software Directory (الإنجليزية)
- جتك على موقع SourceForge (الإنجليزية)
- بوابة برمجة الحاسوب
- بوابة برمجيات
- بوابة برمجيات حرة
- بوابة تقنية المعلومات
- بوابة علم الحاسوب
- صور وملفات صوتية من كومنز