مرجع
آخر الزيارات

جتك

1٬291 كلمة•0 مشاهدة•🗒️ منذ 15 يوماً
باختصار: جتك هي طقم أدوات عالي الأداء وغني بالمميزات لإنشاء واجهات رسومية للمستعمل، يقدم تكامل متعدد المنصات وطريقة سهلة لاستخدام دواله. في هذه المقالة 11 قسماً: «بنية جتك»، «التاريخ» و«مميزات مكتبة جتك» وغيرها.
المحتويات
  1. بنية جتك
  2. التاريخ
  3. مميزات مكتبة جتك
  4. هيئات جتك
  5. GDK
  6. Cairo
  7. سلبيات جتك
  8. ATK
  9. جي ليب
  10. بانغو
  11. تحميل المكتبات الديناميكية
جتك

قبل الخوض في التفاصيل، جتك هي طقم أدوات عالي الأداء وغني بالمميزات لإنشاء واجهات رسومية للمستعمل، يقدم تكامل متعدد المنصات وطريقة سهلة لاستخدام دواله. كتبت جتك باستخدام لغة سي ورخصت تحت ترخيص GNU LGPL 2.1 الذي يسمح بتطوير كل من البرامج الحرة والتجارية المغلقة باستخدام جتك من دون رسوم ترخيص أو الملكيات. وفيما يلي تفاصيل أوسع عن ذلك.

بنية جتك

تتألف مكتبة جتك من عدة مكونات، يصفها الشكل التالي:

التاريخ

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

علاوةً على ذلك، صدرت أول نسخة من مكتبة جتك في 13 أبريل من عام 1998م. وبعد عشرة أشهر لاحقة أطلقت النسخة المستقرة جتك 1.2. هذا الإصدار إحتوي على مجموعة من المميزات الجديدة، وأكثرها أهمية هو بدأها في دعم الثيمات. والجدير بالملاحظة أن أحد أجزاء هذه المكتبة انفصل عنها وهو Glib وأصبح يطور بشكل مستقل. الإصدارة 1.2 لم تكن دوالها متوافقة مع دوال النسخة السابقة 1.0، والبرامج التي كتبت بها يجب أن تعدل لكي تعمل على نسخة 1.2. وبعد إصدار جتك 1.2، استغرق الأمر ثلاث سنوات حتى تطلق نسخة مستقرة رئيسية ثابتة من جتك. وبهذه الإصدارة 2.0 حصلت مكتبة جتك على الكثير من التغييرات الجذرية وكان من أبرزها دعم اليونيكود واللغات العالمية، ومرة أخرى فإن التطبيقات يجب أن تعدل حتى تتمكن من العمل على هذه النسخة. وفي هذه الأيام فإن نسخة رئيسية ثابتة من جتك تطلق كل تسعة أشهر وكل النسخ عادة تملك التوافقية فيما بينها، مما يعني أن أي تطبيق كتب في مكتبة جتك الإصدارة 2.0 سيعمل دائما مع أي نسخة أخرى من جتك 2.

ومن جهة أخرى، في الأصل، أنشأت جتك وطورت بشكل منفصل من المشروع مفتوح المصدر الشهير: برنامج جنو لمعالجة الصور (جيمب). بينما كان بيتر ماتز وسبنسر كيمبل يطورون الإصدارات الأولى من جيمب في سنة 1997، أنشؤوا جتك والتي تعني (GIMP Toolkit) كبديل عن طقم أدوات Motif والذي كان في ذلك الوقت غير حر. وعلامة الزائد أضيفت لاحقا عندما اكتسب طقم الأدوات مميزات كائنية المنحى والتوسع.

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

مميزات مكتبة جتك

من جانب آخر، أنها تدعم اللغات العالمية، وكذلك عمليات المسهلة لذوي الاحتياجات الخاصة.

إضافةً إلى ذلك، يوجد لها الكثير من الجسور للغات أخرى مثل السي بلس بلس وجافا وبايثون وبيرل و php وغيرها الكثير.

من جهة ثانية، ترخيصها الذي يسمح لك بالبرمجة مفتوحة المصدر ومغلقة المصدر كذلك وهو ترخيص LGPL.

وفي هذا الصدد، اعتمادها في مشاريع ضخمة أمثال سطح مكتب جنوم وسطح مكتب Xfce والتي بنيت عليها الآلاف من التطبيقات التجارية ومفتوحة المصدر.

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

تتميز جتك بعدة مميزات ومن أهمها:

من جهة ثانية، سهولتها وسرعتها وأنها مكتوبة بلغة السي الشهيرة مما يجعلها مسيطرة في هذا المجال وخاصة للذين لم تعجبه لغة ++C.

هيئات جتك

هي أشكال وهيئات لواجهات مكتبة جتك للغة البرمجة سي++

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

GDK

علاوةً على ذلك، GDK اختصار لـ (GIMP Drawing Kit) وهو يتصرف كتغليف حول وظائف النوافذ والرسوميات منخفضة المستوى المقدمة من أنظمة الرسوميات. وكما سبق فقد طورت هذه المكتبة أولا لخادم النوافذ X وهي تعمل كوسيط بين خادم X ومكتبة استعملت بحيث تدير عمليات التصيير الأساسية مثل الرسوميات البدائية والمؤشرات والخطوط فضلًا عن أحداث النافذة ووظائف السحب والإفلات. و GDK هو أحد الأجزاء المهمة لقابلية النقل لمكتبة جتك. ونظرا لأن الوظائف المنخفضة المستوى لمنصات المتعددة تقدمها بالفعل مكتبة Glib ، فكل ما تحتاجه لجعل مكتبة جتك تعمل على المنصات الأخرى هو نقل GDK ليعمل كطبقة فوق نظام الرسوميات في المنصة المستهدفة. لذلك فإن النسخ GDK المنقولة إلى Win32 و Quartz جعلت تطبيقات جتك تعمل على نظام الويندوز والماكنتوش، على الترتيب. ومنذ جتك 2.8 فإن GDK أصبح يدعم مكتبة القاهرة.

Cairo

ومن ناحية أخرى، كايرو هي مكتبة برمجيات توفر لمطوري البرمجيات واجهة برمجة تطبيقات مبنية على الرسوميات المتجهة ومستقلة عن العتاد. صُمِّمت القاهرة لتوفر الأساسيات للرسم ثنائي الأبعاد عبر عدد من الخلفيات المختلفة. صُمِّمت القاهرة لتستعمل تسريع العتاد عند توفره. بالرغم من كتابتها بالسي، توجد جسور لاستخدامها من خلال الكثير من لغات البرمجة الأخرى، مثل سي++، وسي#، جافا، بايثون، بيرل، روبي، وغيرها. القاهرة برمجية حرة، مرخصة تحت رخصة جنو العمومية الصغرى ورخصة موزيلا العمومية. أسس مشروع القاهرة كيث باكرد وكارل وورث لتستعمل مع خادم النوافذ X. سُمِّيت في البداية Xr أو Xc. تغير الاسم ليبين أنها مكتبة متعددة المنصات وليست مقيّدة بخادم النوافذ X. أُخِذ الاسم "cairo" من الاسم الأصلي Xr، المشابه للحروف اليونانية Chi Rho «كاي رو». استعملت مكتبة جتك مكتبة القاهرة لرسم أغلب أدواتها منذ الإصدارة 2.8 والتي صدرت في سنة 2005. ومكتبة القاهرة تستعمل في مشاريع أخرى غير جتك وأهمها: محرك Geko التابع لموزيلا، مكتبة Poppler وهي مكتبة لتصدير ملفات PDF وكذلك مشروع WebKit. تتنافس القاهرة مع تقنيات مماثلة مثل WPF و GDI+ من ميكروسوفت، Quartz 2D من أبل، و Anti-Grain Geometry (AGG).

سلبيات جتك

من جهة ثانية، الكتب والشروحات حول هذه اللغة كذلك متدني لدرجة كبيرة ولا يوجد إلا لإصدارات قديمة.

  • قلة المطورين الذي يعملون على تطوير هذه المكتبة.
  • أشهر التطبيقات المكتوبة بمكتبة جتك
  • 1- برنامج تحرير الرسومات جمب
  • 2- سطح المكتب جنوم
  • 3- برنامج الرسوميات المتجهة إنكسكيب
  • انظر كذلك
  • جتك-كيو تي
  • مراجع
  • أهم سلبيات جتك:
  • لا يوجد دعم فني تجاري، وذلك بعكس المكتبات الأخرى.
  • التوثيق يعتبر ضعيفا بالنظر إلى المكتبات المنافسة.
  • عمليات التطوير فيها وحل المشاكل بطئية نوعا ما، ولا تتطور بسرعة كبيرة.

ATK

من جانب آخر، مكتبة ATK (اختصار من Accessibility Tool Kit) هي مجموعة من الواجهات التي تسمح لـ جتك بتصدير معلومات إضافية حول الأدوات والمعلومات بحيث يمكن أن تكون مفيدة للمستعملين الذين لديهم ضعف. مثلًا، الزر يمكن أن يُعد واجهة AtkAction . هذه الواجهة تُستعمل لكائنات يمكن للمستعمل أن يتفاعل معها. باستخدام هذه الواجهة يصبح من الممكن أن نستعلم عن الإجراءات التي يدعمها الزر ويستدعي واحد منها. فالزر يمكن أن يدعم إجراء «النقر» بحيث يستدعي متحكم نقر الزر. أغلب إعدادات المسبقة للأدوات لواجهات ATK في الوقت الحالي تكمن في وحدة منفصلة تدعى gail ، ولكن هناك خطط لإدراجها داخل وحدة جتك بدلا عن ذلك. طورت ATK بواسطة شركة صن مايكروسيستم كجزء من مشاركتهم في مشروع GNOME Accessibility.

جي ليب

وفي السياق ذاته، جي ليب هي مكتبة خدمية متعددة المنصات. بدأت كجزء من جتك، ولكن منذ الإصدارة 1.2 فصلت إلى حزمة مستقلة. إنها تستعمل الآن في الكثير من المشاريع مفتوحة المصدر. وجي ليب تحوي الكثير من المميزات المختلفة منها:

دوال للتعامل ترتيب البايتات

دوال نصوص خدمية

بانغو

كذلك، بانغو هي عبارة عن مكتبة لرسم وتصيير النصوص، ودعم التدويل. إنها النواة لإدارة النصوص والخطوط لمكتبة جتك منذ الإصدارة 2.0. بانجو يدعم كل اللغات العالمية الرئيسية فعليا، مثل العربية والعبرية والتايلندية والصينية والكثير من اللغات الهندية إلى جانب اللغات اللاتينية. بانجو يمتلك نهايتان خلفيتان للخطوط: خطوط من جهة العميل تستعمل FreeType و fontconfig. النصوص يمكن أن تصير باستخدام Xft أو Cairo أو مباشرة في مكدس الذاكرة. الخطوط الأصلية في مايكروسوفت ويندوز. ونهاية الخلفية هذه يمكن - بشكل اختياري- أن تستعمل Uniscribe لترتيب النصوص المركبة.و النصوص يمكن أن تصير باستخدام Cairo أو مباشرة باستخدام دوال Win32 الأصلية.

تحميل المكتبات الديناميكية

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

من جهة ثانية، أغلب وظائفها تأخذ نصوص بنظام ترميز utf8 الذي يدعم كل لغات العالم.

وفي السياق ذاته، الكثير من هياكل البيانات، مثلًا القوائم، والجداول المجزئة، والمصفوفات والأشجار الثنائية.

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.