RSS

ومضات من تجربة مشروع PHP واللغة العربية

29 أغسطس

تعد لغة PHP أكثر لغات البرمجة في العالم شعبية في مجال تطوير مواقع الويب، لذا فقد عم انتشارها كوسيلة لبناء مواقع الويب المتوسطة والصغيرة ضمن ما بات يعرف ببيئة LAMP حيث يشير مصطلح أوائل الأحرف هذا إلى Linux كنظام تشغيل و Apache كمخدم ويب و MySQL كقاعدة بيانات فيما حرف P يشير إلى أي من Perl أو Python أو PHP، وجميع مكونات هذه البيئة مفتوحة المصدر بامتياز. إن النجاح المتميز لهذه البيئة وجدارتها كان مدخل الكثيرين إلى استخدام البرامج الحرة المفتوحة المصدر.

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

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



القصة من البداية

إن مشروع PHP واللغة العربية هو مشروع شخصي صغير انطلق مع بداية العام 2006 يهدف إلى تقديم مجموعة متكاملة من الأدوات والمكتبات التي تعالج نصوص اللغة العربية وتتعامل معها بخصائصها وخصوصياتها، متيحا للمبرمجين العرب وسيلة تمكنهم من بناء تطبيقات ويب ذات طابع عربي أصيل تحت مظلة ترخيص البرمجيات الحرة المفتوحة المصدر، وذلك عوضا عما توفره لغة PHP من مكتبات وتقنيات صممت أصلا للتعامل مع نصوص اللغة الإنجليزية، وما يستتبع هذا من حشرها ولي عنقها للتعامل مع غيرها من لغات. عنوان الصفحة الرئيسية للمشروع على شبكة الإنترنت هو http://www.ar-php.org

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

تم اختيار العمل على تطوير أصناف Classes مفردة صغيرة في البدء نظرا لأن العمل على هذا المشروع كان يتم خلال أوقات الفراغ من جهة، ولكون الشريحة المستهدفة منه لم تكن المستخدم النهائي بقدر ما كانت المبرمج الذي يعمل على تطوير موقع ويب عربي ضمن بيئة LAMP من جهة أخرى. وكانت البداية مع صنف ArQuery الذي يختص بتحسين آلية البحث ضمن قاعدة MySQL للبيانات وذلك من خلال توظيف تقنيات التعابير النظامية Regular Expressions بغية الحصول على نتائج أفضل عند التعامل مع النصوص العربية. حيث أن معظم المواقع العربية المبنية باستخدام برمجيات طورت أساسا للتعامل مع اللغة الإنجليزية لا تقدم للأسف أكثر من وظيفة البحث الحرفي لزوارها ومستخدميها، لكن المشكلة في حالة اللغة العربية تكمن في أن ذات الكلمة يمكن لها أن تظهر بأشكال مختلفة بحسب سياق النص، وأضرب على ذلك مثالا: إن كان المستخدم يبحث عن كلمة مغتربين فإنه لن يحصل في مجموعة نتائجه على تلك السجلات التي كانت تتضمن كلمة مغتربون! ليس هذا فحسب، فالأمور يمكن لها أن تسوء أكثر لتجعل من عملية البحث تلك منقوصة إلى حد بعيد.

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

بعد إتمام بناء هذا الصنف وتجريبه تمت إضافته إلى موقع phpclasses.org وهو ذات الموقع الذي كنت أتوجه إليه فيما مضى بحثا عن أصناف تؤدي وظائف أحتاج إليها في تطوير هذا التطبيق أو ذاك، لكنها كانت المرة الأولى بالنسبة لي التي ألعب فيها دور المؤلف الذي يضيف عملا مفتوح المصدر ليصبح متاحا للآخرين. إحدى النقاط الإيجابية في هذا الموقع هي أنه ليس مجرد مكنز للأصناف التي يطورها المبرمجون من جميع أصقاع العالم فقط، بل لهذا الموقع إدارة ومشرفين يعاينون البرامج التي ترسل إليه فإما أن يوافقوا عليها لتضاف، أو يعتذرون عن قبولها إن كانت دون المعايير التي يلتزمون بها (على الرغم من أنها معايير أقل صرامة من مكانز أخرى مثل PEAR المكنز الرسمي لأصناف PHP المعيارية)، ليس هذا فحسب، بل كانت هنالك لجنة تنتقي أفضل عشرة أعمال تمت إضافتها إلى الموقع في كل شهر ليجري التصويت عليها طيلة أيام الشهر الذي يليه من قبل المبرمجين المنتسبين للموقع لاختيار أفضلها، وقد كان لاختيار ArQuery ومن ثم حلوله في المركز الثامن في شهر شباط / فبراير من عام 2006 بمثابة مفاجئة سعيدة عملت على تحويل فكرة غضة طفولية إلى مشروع حقيقي أخذ يستهلك شيئا فشيئا معظم أوقات فراغي. وهكذا توالت الأفكار والأعمال والجوائز، فأصبح هنالك حتى لحظة كتابة هذه الأسطر 17 صنفا نالت 7 جوائز 4 منها كانت للصدارة.

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

ما هي الخطوة التالية؟

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

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

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

 

الأوسمة: , ,

One response to “ومضات من تجربة مشروع PHP واللغة العربية

  1. linuxscout

    29 أغسطس 2010 at 4:07 مساءً

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

     

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

 
%d مدونون معجبون بهذه: