البرمجيات الحرة ومفتوحة المصدر واللغة العربية

المؤلف / محمد أنس طويلة

يركز هذا المقال على المميزات الخاصة التي تنفرد بها اللغة العربية عن سائر اللغات الأخرى وما لهذه الخصوصية من أثر على تطوير البرمجيات الحرة ومفتوحة المصدر العربية، وستستعرض العوائق والعقبات التي لا بد من تجاوزها للتمكن من بناء قاعدة لا بأس بها من هذه البرمجيات تتيح للمستخدم العربي إمكانية الإنتقال السهل إلى عالم البرمجيات الحرة ومفتوحة المصدر للتمتع بما تقدمه هذه البرمجيات من مزايا يتجلى أثمنها في الحرية التي ستمنحها للمستخدم في اتخاذ قراراته التقنية وتعاملها مع جميع المستخدمين على قدم المساواة دون أدنى اعتبار لأية عوامل عرقية أو سياسية أو مذهبية.لمحة عن البرمجيات الحرة ومفتوحة المصدرعلى الرغم من محاولات العديد من الكتاب والمبرمجين حول العالم في التعريف بمبادئ حركة البرمجيات الحرة ومفتوحة المصدر، إلا أن هذا الفهم ( وفي عالمنا العربي على وجه الخصوص) ما زال يشوبه الكثير من اللغط وعدم الدقة. أضف إلى ذلك الإشكالية اللغوية المتمثلة في عدم توفر مفردتين مختلفتين في اللغة الإنكليزية للتعبير عن مفهومي الحرية والمجانية، إذ أن كلمة واحدة (Free) تستخدم للإشارة إلى هذين المفهومين المختلفين كلية.لنتمكن من تجاوز هذه الإشكالية واستيعاب مبادئ حركة البرمجيات الحرة ومفتوحة المصدر، دعنا نستعرض بإيجاز السياق التاريخي لهذه الحركة.تبلورت أولى أفكار هذه الحركة على يد ريتشارد ستولمان Richard Stallman في العام 1984 حين بدأ العمل على تطوير نظام تشغيل أسماه GNU بغية إتاحة توزيعه بحرية لمن يشاء ودون مقابل، وذلك تعبيراً عن سخطه على تحول غالبية البرمجيات المتاحة في تلك الفترة إلى برمجيات مغلقة تتحكم بها مصالح الشركات التجارية. أسس ريتشارد في العام 1985 مؤسسة البرمجيات الحرة Free Software Foundation بهدف الترويج لأفكاره في ضرورة بناء قاعدة حرة من البرمجيات التي يمكن لأي مستخدم تعديلها وتطويرها أو إعادة توزيعها دون أية قيود قد تفرضها المصالح التجارية أو السياسية للشركات أو الدول التي تطور هذه البرمجيات.في أثناء بحثه عن أداة فاعلة لتمكين مطوري البرمجيات من تضمين مفاهيم الحرية هذه في برمجياتهم إذا شاؤوا، قام ريتشارد بكتابة إتفاقية الترخيص العمومية GNU General Public License (GPL) والتي تضمن للمطور والمستخدم على حد سواء انتقال الحريات المترافقة مع أي برنامج يوزع وفق هذه الإتفاقية إلى جميع المستخدمين اللاحقين، وتحول دون إمكان استغلال هذا البرنامج بما يتعارض مع هذه الحريات.سرعان ما استقطبت مؤسسة البرمجيات الحرة ومفتوحة المصدر اهتمام الكثير من المطورين حول العالم، والذين قاموا نتيجة إيمانهم بهذه المبادئ بتطوير العديد من البرمجيات التي أطلقت ضمن إتفاقية الترخيص العمومية وسميت بـ (البرمجيات الحرة). إلا أن الهدف الرئيس لريتشارد من وراء إنشاء مؤسسة البرمجيات الحرة لبناء نظام تشغيل حر متكامل ظل بعيد المنال نتيجة كثير من الصعوبات التقنية.في تلك الأثناء، قام شاب فنلندي يدعى لينوس تورفالدز Linux Torvalds من جامعة هلسنكي ببناء نوا ة لنظام تشغيل حر أسميت تيمناً به (لينوكس Linux) وذلك في العام 1991. إستخدم لينوس لبناء نواة نظامه الجديد الأدوات البرمجية التي طورتها مؤسسة البرمجيات الحرة. وبعدما تم إطلاق الإصدارة الأولى من لينكس تشكلت لدى العديد من المطورين قناعة مفادها أن لينكس هو الخطوة المنتظرة في الإتجاه الصحيح لإتمام العمل الذي بدأه ريتشارد، كونها قد تجاوزت القسط الأكبر من المشاكل التقنية التي تواجه إكمال بناء نظام التشغيل GNU. وهكذا اندمج نتاج مؤسسة البرمجيات الحرة مع جهود لينوس بالإضافة إلى آلاف المطورين في جميع أنحاء العالم في ما أصبح يعرف باسم نظام التشغيل غنو/ لينكس GNU/Linux، والذي نمى بتسارع مضطرد ليضحي منافساً عتيداً لأنظمة التشغيل التجارية.يعود الفضل الأكبر في نجاح وانتشار مفاهيم البرمجيات الحرة إلى نظام التشغيل لينكس والنجاح الذي حققه في فترة قياسية. إلا أن هذا النجاح شابه ما تم تفسيره على أنه انقسام ضمن أنصار هذه الحركة. فقد ارتأى بعضهم (وعلى رأسهم إريك ريموند Eric Raymond - يؤيده في ذلك لينوس تورفالدز وآخرون) بأن الإلتباس المترافق مع عدم وضوح مغزى كلمة Free في الإشارة إلى الحرية قد أدى إلى تفسيرها بشكل خاطئ كرمز إلى مجانية البرمجيات، وهو ما اعتبروه عائقاً في سبيل تزايد انتشار البرمجيات الحرة في الأوساط التجارية نتيجة توجس هذه الشركات خيفةً من تأثير هذا المفهوم على مصالحها التجارية. في حين أن المفهوم الأساسي للبرمجيات الحرة لا يمنع الإستغلال التجاري وتحقيق النفع المادي من هذه البرمجيات شريطة احترام مبادئ الحرية التي بنيت عليها.لتجاوز هذه الإشكالية، ابتكر إريك ورفاقه مصطلح (البرمجيات مفتوحة المصدر Open Source Software) للإشارة بما لا يترك مجالاً للشك ولا لسوء الفهم إلى المبدأ الأساسي في حرية تعديل وتوزيع البرمجيات عبر إرفاقها مع شيفرتها المصدرية وتمكن مستخدميها من إدخال أية تعديلات يرتأيها على هذه الشيفرة المصدرية. ولنشر هذا المصطلح أسست مبادرة المصادر المفتوحة Open Source Initiative كمؤسسة لا تهدف للربح غايتها الترويج لهذه الأفكار ودعمها.مع أن مصطلحي البرمجيات الحرة ومفتوحة المصدر يستخدمان على نطاق واسع للإشارة إلى نفس الأفكار والمفاهيم، إلا أنهما عملياً يشيران إلى مبدأين مختلفين، على الأقل جزئياً. لذلك ولتجنب أية إشكالات قد تنتج عن الإشارة الخاطئة باستخدام مفهوم بدل الآخر، فقد ابتكر مصطلح (البرمجيات الحرة ومفتوحة المصدر Free and Open Source Software) كحل وسط يفترض أن يرضي جميع الأطراف. لذا فإننا سنستخدم هذا المصطلح من الآن فصاعداً للإشارة إلى البرمجيات التي تحمل مفاهيم الحرية عبر توزيعها مع شيفرتها المصدرية وإتاحة تعديلها وتطويرها وإعادة توزيعها لأي كان.اللغة العربيةعلى الرغم من الإنتشار الواسع الذي حققته البرمجيات الحرة ومفتوحة المصدر في جميع أنحاء العالم، إلا أن نظرة سريعة على واقع تقنية المعلومات في الدول العربية تظهر بوضوح مدى تأخر هذه الدول في تبني فلسفة البرمجيات الحرة ومفتوحة المصدر سواء على صعيد القطاع الحكومي أو المؤسسات والشركات الخاصة. هذا التباطؤ في إدراك أهمية وميزات هذه الفلسفة سيؤدي إلى حرمان الدول العربية من الفوائد الجمة التي قد تكسبها جراء استخدامها للبرمجيات الحرة ومفتوحة المصدر، بدءاً من توفير المبالغ الفلكية التي تصرف سنوياً ثمناً لتراخيص استخدام البرمجيات التجارية المغلقة وانتهاء باستقلالية القرار السياسي والتجاري لهذه الدول.تتيح مبادئ واتفاقيات ترخيص البرمجيات الحرة ومفتوحة المصدر لأي مستخدم تعديل أو تطوير هذه البرمجيات بما يتلاءم مع حاجاته ومتطلباته دون الرجوع إلى المطور أو المصدر الأساسي، وذلك عبر توفير الشيفرة المصدرية لكل برنامج وإتاحة تعديلها ضمن إتفاقية الترخيص المرفقة. ولقد استثمرت هذه الميزة من قبل الكثير من الدول والشعوب لتعديل البرمجيات المتاحة ضمن حركة البرمجيات الحرة ومفتوحة المصدر وتطويعها لتتلاءم مع المتطلبات الخاصة للغاتهم وثقافاتهم، مما أدى بالنتيجة إلى إثراء هذه الحركة ومنحها المرونة اللازمة لتجاوز الحواجز الثقافية واللغوية بين جميع أصقاع المعمورة، وإزالة أية عوائق قد تمنع أي إنسان على وجه البسيطة من الإستفادة من معطيات ثورة تقنيات المعلومات، سواء كانت لغوية أم ثقافية أم مادية أم سياسية.ما هي إذاً أسباب تخلف الدول العربية عن اللحاق بركب البرمجيات الحرة ومفتوحة المصدر؟تتعدد الإجابات عن هذا التساؤل، وتتراوح من مبررات سياسية يفرضها واقع الدول العربية، إلى أسباب تتعلق بالميزانيات الإعلانية الضخمة التي تصرفها بسخاء شركات إنتاج البرمجيات العالمية في المنطقة العربية للحد من انتشار البرمجيات الحرة ومفتوحة المصدر، والتي لا تنحصر في الحملات الدعائية والمعارض والندوات والمؤتمرات، بل تتعدى ذلك إلى ما يخفى ضمن إطار مساعدات فنية وتقنية لا حول للدول التي تحصل عليها سوى قبولها دون إدراك الخطر الذي تحمله في طياتها من حصر الثقافة المعلوماتية لجيل بأكمله بمنتجات وخدمات هذه الشركات وتحويله إلى أسطول ضخم من مندوبي المبيعات لتسويق هذه المنتجات في المستقبل.سنحاول في سياق هذا المقال التركيز على واحد من هذه الأسباب، والذي يعتبر من أبرز العوائق التي منعت حتى زمن قريب الدول العربية ومواطنيها من الإستثمار الأمثل لفلسفة البرمجيات الحرة ومفتوحة المصدر. يتركز حوارنا في هذا المقال على خصوصية اللغة العربية والمشاكل الناجمة عن هذه الخصوصية في التعامل مع البرمجيات بشكل عام وتلك المتوفرة ضمن حركة البرمجيات الحرة ومفتوحة المصدر بشكل خاص.خصوصية اللغة العربيةتتميز اللغة العربية بمجموعة من الخواص التي تنفرد بها عن جميع اللغات الأخرى، وعلى الرغم من أن أجدادنا العرب هم من ابتكروا الصفر الذي يعتبر حجر الأساس في عالم الحوسبة والخوارزميات التي تشكل العمود الفقاري لكل البرمجيات الحاسوبية، إلا أن عالم التقنية بأكمله تقريباً قد بني اعتماداً على لغات أخرى، لعل أبرزها وأكثرها أهمية اللغة الإنكليزية. لا أود هنا الدخول في حوارات فلسفية حول أكثر اللغات ملاءمة وقدرة على التعاطي مع هذه التطورات، وهو ما قد يبرز مجدداً الجدل الدائر حول اللغط الناتج عن قصور في اللغة الإنكليزية تسبب في ما بدى وكأنه انقسام في حركة البرمجيات الحرة ومفتوحة المصدر. ما أنا بصدده الآن هو الوقوف على الواقع الفعلي لعالم الحوسبة والذي تطغى عليه اللغة الإنكليزية بمحاسنها ومساوئها، شئنا ذلك أم أبينا، لمحاولة إدراك أسباب تأخرنا في تطويع هذه التقنيات وتطويرها لتلائم لغتنا العربية، وبالتالي تمكيننا من لعب الدور الثقافي والحضاري الذي تستحقه لغة القرآن الكريم في عالم أضحت فيه المعلومة الإلكترونية أساساً للمعرفة ومعياراً للتطور.تتجلى خصوصيات اللغة العربية والتي تتعلق بالبرمجيات الحاسوبية بما يلي:1. دعم أطقم المحارف العربية2. الخطوط العربية3. تحليل السياق4. دعم ثنائية الإتجاه5. واجهة التطبيقات6. التشكيل والرموز الخاصةسنحاول فيما يلي تسليط الضوء على كل من هذه الخصائص على حدة بغية تحديد أساليب التعامل مع كل منها في أثناء تعريب البرمجيات، إضافة إلى الوقوف على الواقع الراهن لهذه الخصائص ومدى دعمها في عالم البرمجيات الحرة ومفتوحة المصدر.دعم أطقم المحارف العربيةإن الحواسيب بأشكالها أدوات رقمية، أي أنها تستطيع التعامل بكفاءة وفاعلية مع الأرقام والعمليات الحسابية. لكنها عاجزة عن التعامل عن الحروف والكلمات بنفس الأسلوب الذي يستطيع الإنسان فيه فهم الكلمات ومعالجتها. لتجاوز هذه المحدودية في أنظمة الحوسبة لا بد من ابتكار حيلة تتيح لها التعامل مع الحروف والكلمات. هذه الحيلة البسيطة هي ما يدعى بـ (طاقم المحارف Character Set).بما أن أنظمة الحوسبة قادرة فقط على التعامل مع الأرقام، إذاً إذا ما ابتكرنا أداة تستعيض عن كل حرف برقم يقابله فإننا سنتمكن من (خداع) هذه الحواسيب لأنها ستعتقد أنها تتعامل مع مجموعة من الأرقام، أما في الواقع فإن إعادة ترجمة هذه الأرقام إلى الأحرف المقابلة لكل منها سيمكن المستخدم من فهمها ومعالجتها على أنها أحرف.أطقم المحارف هي هذه (الخرائط) التي تربط بين كل حرف في لغة ما ورمز رقمي مقابل يستطيع الحاسوب معالجته وتخزينه. أثناء إدخال المعلومات النصية إلى الحاسوب فإن طاقم المحارف الملائم سيستخدم لتحديد الرمز الرقمي الموافق لكل حرف واستبدال هذا الحرف بالرمز المقابل. أما عند استخراج أو عرض المعلومات النصية المخزنة ضمن الحاسوب فإن طاقم المحارف سيستخدم في الإتجاه المعاكس لتحديد الحرف المقابل لكل رمز رقمي وعرضه للمستخدم.هناك العديد من أطقم المحارف المتوفرة لكل لغة من لغات العالم، بل إنه حتى قد يتوفر عدة أطقم محارف للغة الواحدة، لأن العديد من الشركات البرمجية ومراكز البحوث والتي عملت على بناء أنظمة التشغيل والبرمجيات التطبيقية قد قامت بتطوير أطقم محارف خاصة بها تمكنها من إدخال دعم اللغات المختلفة إلى برمجياتها وبالتالي دخول الأسواق التي تنتشر فيها هذه اللغات. إلا أن الأثر السلبي لذلك ينبع من عدم توافق أطقم المحارف هذه مع بعضها البعض. فإذا ما قمت مثلاً باستخدام أحد أطقم محارف اللغة العربية (وليكن Windows-1256 المطور من قبل شركة مايكروسوفت) لإدخال نص عربي إلى الحاسوب فإن الحاسوب سيقوم بتخزين الرموز الرقمية المقابلة لهذا النص تبعاً لهذا الطاقم، فإذا ما رغبت لاحقاً في استرداد هذا النص فإنك لن تستطيع ذلك إلا باستخدام طاقم المحارف ذاته، لأن استخدام أي طاقم آخر (كاليونيكود Unicode على سبيل المثال) سيؤدي إلى استبدال كل رمز رقمي بحرف آخر غير ذلك الذي يتوجب عرضه تبعاً لطاقم المحارف المستخدم أثناء الإدخال، حيث أن كلاً من أطقم المحارف يستخدم ترميزاً رقمياً مختلفاً للحرف ذاته. والنتيجة أن أي نظام تشغيل أو برنامج تطبيقي مصمم للتعامل مع مجموعة محددة من أطقم المحارف لن يستطيع التعامل مع النصوص المرمزة باستخدام أطقم محارف أخرى، هذه المشكلة بدورها أدت إلى عزل الأنظمة والبرمجيات المختلفة بعضها عن بعض.لتجاوز هذه المشكلة في عدم التوافقية، تم تطوير بعض البرمجيات التي تقوم بالتحويل من طاقم محارف إلى آخر، إلا أن هذا الحل يصطدم بعوائق عدة عند تطبيقه عملياً، وذلك بسبب تضارب مصالح الشركات التجارية المطورة لأنظمة التشغيل والتطبيقات البرمجية. كما أن إغلاق الغالبية العظمى من البرمجيات التجارية واستحالة تعديل شيفرتها المصدرية أدى إلى عدم توفير أية حلول لمشاكل توافقية أطقم محارف اللغة العربية المختلفة، وبالتالي حصر خيارات المستخدم بمنتجات الشركة التي توفر برمجيات متوافقة مع طاقم المحارف الخاص بها.يختلف الموضوع كليةً في عالم البرمجيات الحرة ومفتوحة المصدر، إذ لا تتحكم في تطوير هذه البرمجيات مصالح شركات أو جهات معينة، بل تقودها حاجة المستخدم ومتطلبات تطبيقاته. كما أن توفر الشيفرة المصدرية لهذه البرمجيات يتيح إمكانية تطوير حلول ممتازة من الناحية التقنية من قبل أي شخص يمتلك الدراية الكافية لبناء هذه الحلول. وبفضل آليات مشاركة الأفكار والخبرات بين أعضاء مجتمع البرمجيات الحرة ومفتوحة المصدر فإن ذلك سيؤدي إلى تسريع العمل وضمان مستوى عال جداً من النوعية في الحلول المطورة.إن وجود طاقم محارف معياري موحد للغة العربية سيسهل بشكل كبير مهمة تعريب البرمجيات الحرة ومفتوحة المصدر، وسيتجاوز العقبات التي نشأت نتيجة عدم توافق أطقم المحارف العربية المختلفة، كما سيتيح بناء قواعد البيانات العربية في جميع أنحاء العالم بصيغة قياسية تتيح سهولة تبادل هذه البيانات ومعالجتها حتى ضمن الأنظمة المختلفة.لقد تم تطوير طاقم محارف عالمي موحد يدعي يونيكود Unicode، والذي يتجاوز متطلبات توحيد أطقم محارف اللغة العربية كونه عبارةً عن طاقم محارف موحد لجميع لغات العالم، أي أنه يتضمن ترميزاً محدداً واحداً لكل حرف في أية لغة من لغة العالم ضمن طاقم محارف واحد. وبالتالي فإن بناء البرمجيات إعتماداً على معايير اليونيكود يعني أنها ستحتوي تلقائياً على دعم اللغة العربية (شأنها شأن أية لغة أخرى) لأن ترميز الأحرف العربية مضمن أصلاً في طاقم محارف اليونيكود. وهو ما يجري حالياً في عالم البرمجيات الحرة ومفتوحة المصدر حيث يتم تطوير الغالبية العظمى من البرمجيات بناء على معايير اليونيكود، أي أن بعض المشاكل التي كانت تواجه تعريب هذه البرمجيات لم تعد ذات شأن يذكر.الخطوط العربيةرأينا في الفقرة السابقة أن أنظمة الحوسبة تختزن المعلومات النصية بصيغة رقمية عبر تحويلها باستخدام أطقم المحارف، وبأنه لعرض هذه النصوص يتم إعادة تحويلها بالإتجاه المعاكس من الصيغة الرقمية إلى الصيغة النصية. إلا أن إظهار هذه النصوص يتطلب تحديد الشكل المرافق لكل حرف، وهو ما يدعى بـ Glyph. من الواضح أن الشكل المرافق لأي حرف يختلف باختلاف الخط المستخدم في الكتابة، فحرف العين مثلاً يمتلك شكلاً معيناُ في خط النسخ يختلف عنه في خط الرقعة. لذلك لا بد من تحديد الخط المستخدم في الكتابة عندما سيقوم الحاسوب بعرض نص ما.تندرج الخطوط المستخدمة في الكتابة ضمن إطار الأعمال الفنية، ولها كما لأي عمل فني آخر حقوق ملكية فكرية غالباً ما تكون محمية، أي أن استخدام هذه الخطوط دون إذن مسبق من صاحبها يعتبر خرقاً لقوانين ومعاهدات حماية الملكية الفكرية ويعاقب عليه القانون.نظراً للطبيعة الخاصة للبرمجيات الحرة ومفتوحة المصدر، فإن أية خطوط ستتضمنها يجب أن تكون حرةً من أية قيود تفرضها قوانين حماية الملكية الفكرية، لأن هذه البرمجيات (وبالتالي الخطوط) ستوزع ضمن أحد تراخيص البرمجيات الحرة ومفتوحة المصدر والتي تمنح المستخدم الحق في تعديل وإعادة توزيع هذه البرمجيات أو أي جزء منها دون اشتراط الحصول على موافقة مسبقة من مطورها.بما أن دعم اللغة العربية المتوفر حالياً في البرمجيات المغلقة كان نتاجاً لعمل شركات تطوير البرمجيات التجارية فإن معظم الخطوط العربية المتوفرة حالياً تنطوي ضمن إطار حقوق الملكية الفكرية لهذه الشركات ولا يمكن استخدامها أو تعديلها دون الحصول على إذن مسبق من هذه الشركات، وهو ما قد يشكل عائقاً في توفير دعم اللغة العربية في البرمجيات الحرة ومفتوحة المصدر.ومن هنا تبرز أهمية تطوير خطوط عربية (حرة)، أي أنها متاحة لأي كان لاستخدامها وتعديلها وإعادة توزيعها تماماً مثل البرمجيات الحرة ومفتوحة المصدر. وقد تم بالفعل تطوير عدة مجموعات من الخطوط العربية الحرة والتي تستخدم حالياً في البرمجيات الحرة ومفتوحة المصدر المعربة، ولكننا نطمح نحو توفير عدد أكبر من هذه الخطوط لمنح المستخدم المزيد من المرونة والخيارات.تجدر الإشارة إلى أن بعض الحلول التقنية تتيح استخدام الخطوط غير الحرة ضمن البرمجيات الحرة ومفتوحة المصدر. وعلى الرغم من أن هذه الحلول تعتبر مقبولة من الناحية التقنية، إلا أنها تشكل خرقاً لقوانين حماية الملكية الفكرية. لذلك يتوجب توخي الحذر والحيطة عند اختيار مجموعات الخطوط المستخدمة في البرمجيات الحرة ومفتوحة المصدر المعربة والحرص على عدم توزيع أية خطوط تجارية قد تؤدي إلى تعريض المستخدم للمساءلة القانونية.تحليل السياققد يكفي تحديد شكل الحرف الذي ينبغي عرضه باستخدام ملفات الخط المطلوب في معظم اللغات، إلا أن ذلك لن يجدي في حالة اللغة العربية بسبب خاصية مميزة لهذه اللغة، وهي أن شكل الحرف في اللغة العربية يتغير تبعاً لموقعه من الكلمة، أي أن شكل حرف الباء مثلاّ عندما يقع في بداية الكلمة يختلف عن شكله عندما يقع في وسط الكلمة أو آخرها. ومع أن الحرف هو نفسه بالنسبة للحاسوب، إلا أن (شكل Glyph) هذا الحرف يتغير تبعاً لموقعه من الكلمة.إن إظهار الكلمات العربية بشكل صحيح يتطلب إظهار كل حرف بشكله الصحيح، وهو ما يتطلّب معرفة موقع الحرف في الكلمة لإظهار الشكل الصحيح الموافق. هذه العملية تدعى (تحليل السياق) حيث يقوم الحاسوب بمتابعة موقع الحرف في الكلمة وإظهار الشكل الصحيح الموافق لهذا الموقع.ولكي يحتوي أي برنامجٍ على دعم اللغة العربية لا بد أن تتوافر فيه إمكانية تحليل السياق ليكون قادراً على إظهار الأحرف والكلمات العربية بشكل صحيح.يمكن إضافة تحليل السياق إلى كل برنامج بشكل مستقل، كما يمكن إضافته إلى نظام التشغيل نفسه، وعندها يمكن استخدام آليات تحليل السياق الموجودة ضمن نظام التشغيل من قبل التطبيقات البرمجية لتتمكن من توفير دعم اللغة العربية.في بداية مبادرات تطوير دعم اللغة العربية في البرمجيات الحرة ومفتوحة المصدر قامت مجموعات المطورين بإضافة آليات تحليل السياق إلى البرمجيات التي يقومون بتطويرها كل على حدة، ولكن هذا الأسلوب ينطوي على بعض المشاكل، والتي قد تتجلى في عدم توافق آليات تحليل السياق بين البرمجيات المختلفة أو بين البرمجيات ونظام التشغيل الذي تعمل ضمنه، عدا عن صعوبة بناء وإضافة آليات تحليل السياق بشكل منفصل لكل من البرمجيات المتوفرة في عالم البرمجيات الحرة ومفتوحة المصدر. ولذلك فقد برزت الحاجة إلى وجود آليةٍ معياريةٍ لتحليل السياق تستخدم لإضافة دعم اللغة العربية في البرمجيات الحرة ومفتوحة المصدر.إن إضافة آليات تحليل السياق إلى بيئات التطوير المستخدمة في تطوير برمجيات المصادر المفتوحة سيؤدي إلى توفير تحليل السياق في جميع البرمجيات التي ستبنى باستخدام هذه البيئات، ليختصر بذلك الوقت والجهد اللازمين للتعامل مع كل برنامجٍ على حدة، وليضمن توافق هذه الآليات ضمن جميع هذه البرمجيات. وسيجعل ذلك إضافة دعم اللغة العربية إلى البرمجيات الحرة ومفتوحة المصدر أمراً اكثر سهولة وسرعة، وسيؤدي إلى توفير النسخ المعربة من هذه البرمجيات في نفس توقيت إصدار النسخ الأساسية باللغات الأخرى.وبالفعل فقد تمت إضافة آليات تحليل السياق إلى بيئات تطوير البرمجيات مفتوحة المصدر والتي تعتمد اليونيكود، ومنها علي سبيل المثال بيئة Qt المستخدمة في تطوير بيئة سطح المكتب KDE وبيئة GTK+ المستخدمة في تطوير بيئة سطح المكتب GNOME. وبمجرد استخدام أي من هذه البيئات لتطوير البرمجيات الحرة ومفتوحة المصدر فإن ذلك سيضمن توفر دعم تحليل السياق في هذه البرمجيات.يتضح لنا أثر هذا التحول الجذري على تعريب البرمجيات الحرة ومفتوحة المصدر بشكل جلي من خلال إحصاء العدد المتوفر من البرمجيات المعربة قبل وبعد إطلاق بيئات التطوير التي تدعم تحليل السياق. حيث نلحظ إرتفاعاً هائلاً في كم البرمجيات المعربة، على الرغم من أن هذا التعريب لم يرتق بعد إلى سوية تعتبر معها هذه البرمجيات داعمةً للغة العربية بشكل كامل بسبب النقص الحاد في الجهود العربية المبذولة في إتمام العمل وكشف الأخطاء وتعريب المستندات المرافقة.دعم ثنائية الإتجاهبعكس اللغات اللاتينية (ومنها الإنكليزية التي بنيت عليها صناعة تفنية المعلومات) فإن اللغة العربية تكتب من اليمين إلى اليسار، ولكن وفي بعض الحالات قد يحتوي النص العربي على معلومات تكتب بالإتجاه المعاكس (من اليسار إلى اليمين) كالأعداد والنصوص اللاتينية، ولا بد لأي برنامج يدعم اللغة العربية أن يوفر إمكانية تغيير إتجاه الكتابة ضمن النص عند الحاجة، وهو ما يدعى بدعم ثنائية الإتجاه.تخيّل مثلاً أنك تقوم بطباعة نص باللغة العربية (من اليمين إلى اليسار) وأردت إدراج كلمةٍ لاتينيةٍ ضمن هذا النص، فبدون توفر دعم ثنائية الإتجاه في البرنامج الذي تستخدمه سيظهر ترتيب الأحرف اللاتينية كما في الأحرف العربية من اليمين إلى اليسار وستظهر الكلمة اللاتينية بالمقلوب.لقد تم تطوير عدة خوارزميات لدعم ثنائية الإتجاه ضمن التطبيقات البرمجية، وهي متوفرة ضمن ترخيص البرمجيات الحرة، منها Pretty Good BiDI و اليونيكود. كما تقوم شركات تطوير البرمجيات التجارية بتطوير الخوارزميات الخاصة بها.قامت بعض مجموعات تطوير البرمجيات الحرة ومفتوحة المصدر ببناء وإضافة خوارزميات دعم ثنائية الإتجاه إلى البرمجيات التي تقوم بتطويرها بشكل مستقل، وعدا عن مشاكل عدم التوافق فإن هذا المهمة تستغرق الكثير من الوقت لتعديل الشيفرات المصدرية للبرمجيات وتجربتها، وهو ما أدى إلى تأخر ظهور النسخ المعربة من هذه البرمجيات.إن إضافة هذه الخوارزميات إلى بيئات تطوير البرمجيات الحرة ومفتوحة المصدر سيوفر دعم ثنائية الإتجاه ضمن البرمجيات المطورة باستخدام هذه البيئات دون الحاجة إلى تعديل كل برنامج على حدة والوقوع من جديد في مصيدة عدم توافق الخوارزميات المستخدمة في البرمجيات المختلفة، تماما كما هو الحال في دعم تحليل السياق.تحتوي بيئات التطوير المبينة باستخدام معايير اليونيكود على دعم ثنائية الإتجاه، وبالتالي فإن أية برمجيات سيتم تطويرها باستخدام هذه البيئات ستحتوي تلقائيا على دعم ثنائية الإتجاه المطلوب توافره لدعم اللغة العربية في هذه البرمجيات.واجهة التطبيقاتلأسبابٍ تجارية، قامت بعض الشركات المطورة للبرمجيات بتسويق مفهومين متعلقين بدعم اللغة العربية في البرمجيات، وقد شاع استخدام هذين المفهومين بشكل كبير. حيث يدعى البرنامج أو نظام التشغيل الذي يستطيع التعامل مع اللغة العربية ولكن واجهاته التي يتفاعل المستخدم معه من خلالها غير معربة بالبرنامج الذي (يدعم اللغة العربية)، أما البرنامج الذي يحتوي على دعمٍ كاملٍ للغة العربية وتكون واجهته متوفرة باللغة العربية أيضاً بالبرنامج (المعرب).إن استخدام هذين المفهومين لتصنيف البرمجيات التي تدعم اللغة العربية ينطوي على الكثير من عدم الدقة، فلا يجوز اعتبار البرنامج معرباً ما لم يحتوي على واجهةٍ عربيةٍ تتيح لأي مستخدمٍ التعامل مع هذا البرنامج حتى إذا كان غير متمكنٍ من لغات أخرى غير اللغة العربية. ولا بد لنا من تفهم هذا الموضوع بشكل جيد لأن تطوير البرمجيات الحرة ومفتوحة المصدر يهدف في الدرجة الأولى إلى توفير برمجيات ذات نوعيةٍ عاليةٍ تلبي متطلبات مستخدميها وليس تحقيق المزيد من الأرباح.قد يكون من المقبول عملياً التعامل مع البرمجيات الحرة ومفتوحة المصدر التي توفر دعم اللغة العربية دون وجود واجهات استخدام معربة لها بشكل مرحلي ريثما يتم تعريب هذه الواجهات، وذلك لتجنب المزيد من التأخير في استخدام البرمجيات الحرة ومفتوحة المصدر وللحصول على آراء المستخدمين لاستخدامها في تعريب واجهات التطبيقات.ينطوي تعريب واجهة المستخدم على تعريب عدة مكونات أساسية:• واجهة المستخدم.• رسائل الخطأ.• معلومات المساعدة.يعتبر تعريب واجهة المستخدم الخطوة الأولى، حيث يتم تعريب جميع أجزاء واجهة البرنامج التي يتعامل معها المستخدم للتفاعل مع البرنامج، كالأوامر والخيارات وغيرها. وفي الخطوة التالية يتم تعريب رسائل الخطأ للبرنامج، وهي العبارات التي يعرضها البرنامج لإعلام المستخدم عند حدوث خطأ ما. ومن ثم يتم تعريب ملفات المساعدة المتوفرة مع معظم البرمجيات والتي تقدم للمستخدم معلومات تفصيلية أو مختصرة عن كيفية عمل البرنامج وطريقة التعامل معه.لا يعتبر البرنامج معرباً بالكامل ما لم يتم تعريب جميع المكونات المذكورة آنفاً من واجهة المستخدم، لأن ذلك سيحول دون استثمار هذا البرنامج بشكل تام من قبل جميع المستخدمين العرب، وهو ما يتعارض مع تعريف البرمجيات الحرة ومفتوحة المصدر والتي يجب أن تكون متاحة لأكبر قدرٍ ممكن من المستخدمين. كما أن ذلك سيحول دون انتشار فلسفة البرمجيات الحرة ومفتوحة المصدر بالشكل المطلوب في الوطن العربي.إن تعريب واجهة المستخدم يعتبر من أبسط مراحل تعريب البرمجيات من الناحية التقنية، ولكنه يستهلك أكبر قدر من الوقت والعمل. فالبرمجيات الحرة ومفتوحة المصدر مبنية أساساً لتحتوي على دعم اللغات المتعددة، مما يجعل من عملية تعريب واجهة الإستخدام مجرد ترجمة للعبارات المستخدمة إلى اللغة العربية وتنسيق هذه العبارات المترجمة في ملفات خاصة. إلا أن حجم العمل المطلوب نتيجة وجود الكثير من البرمجيات واحتواء كل منها على عدد كبير من العبارات المستخدمة في واجهة الإستخدام يتطلب بذل جهود مضنية لإنجازه، غالباً ما يتطوع بها المطورون القادرون على التعامل مع اللغات المطلوبة، وهو مازالت الإصدارات العربية من غالبية البرمجيات الحرة ومفتوحة المصدر تفتقر إليه وبشدة.من أهم المشكلات التي تواجه عملية تعريب البرمجيات الحرة ومفتوحة المصدر عدم وجود مصدر واحد لترجمة كل المصطلحات المستخدمة أثناء عملية التعريب، وهيمنة المصطلحات المعربة من قبل بعض الشركات التجارية وانتشارها على نطاقٍ واسعٍ أضحت معه تعتبر التعريب الأساسي على الرغم من كل ما تحتويه من أخطاء. يضاف إلى ذلك المشكلة الأساسية في عالم المصادر المفتوحة وهي غياب المركزية في تنسيق نشاطات التطوير، مما قد يتسبب في تكرار العمل نفسه من قبل أكثر من مجموعة. ولذلك تبرز هنا أهمية الحاجة إلى إنشاء جهة خاصة للتنسيق بين نشاطات التعريب المختلفة، وقد تقوم هذه الجهة بجمع المصطلحات المترجمة في معجم معياري واحد يستخدم في جميع نشاطات التعريب لضمان الحصول على تعريبٍ موحدٍ لجميع البرمجيات الحرة ومفتوحة المصدر مما سيسهل بالتالي تعامل المستخدم العربي مع هذه البرمجيات.إن عدد البرمجيات الحرة ومفتوحة المصدر هائل، وهي في ازديادٍ مستمرٍ يوماً بعد يوم، ولا بد لنا من تكثيف جهودنا لتعريب أكبر قدر ممكن من هذه البرمجيات للتسريع في إدخال هذه الفلسفة إلى وطننا العربي والإفادة من كل ما توفره من ميزات.التشكيل والرموز الخاصةتحتوي جميع اللغات على بعض الرموز الخاصة والتي تدعى Neutrals (كالأرقام والأقواس وعلامات التنصيص). ويجب التعامل مع هذه الرموز بشكل صحيح أثناء عملية تعريب البرمجيات ليكون هذا التعريب كاملاً.تستخدم اللغة العربية حالياّ الأرقام الهندية، في حين تستخدم اللغات اللاتينية الأرقام العربية، وفي كلتا الحالتين فإن الأعداد تكتب من اليسار إلى اليمين، وهو ما يمكن تجاوزه باستخدام دعم ثنائية الإتجاه. ولقد ظهرت عدة أصوات تنادي بالعودة إلى استخدام الأرقام العربية في الكتابات والنصوص العربية عوضاً عن الأرقام الهندية المستخدمة حالياً.فيما يتعلق بتعريب البرمجيات فإن الأرقام تتطلب معالجة خاصة، وذلك لكي يتمكن الحاسوب من معالجة هذه الأرقام والتعامل معها. أي أن الأرقام يجب أن تظهر وتخزن كأرقام وليس كأشكالٍ لهذه الأرقام فقط (بمعنى أن يكون الشكل هو شكل الرقم نفسه ولكن ما يتم تخزينه في المقابل ضمن الحاسوب هو هذا الشكل باعتباره حرفاً وليس الرقم نفسه وبالتالي لن يتمكن الحاسوب من إجراء أية عمليات حسابية على هذا الشكل المخزن). ومن هنا أتت تسمية Neutrals لهذه الرموز والأرقام، وهي تعني أن وظيفة هذه الرموز لا تتغير من لغةٍ إلى أخرى، فالأرقام أرقام في جميع اللغات.ومن خصوصيات اللغة العربية أيضاً عن غيرها من اللغات إحتواؤها على التشكيل، حيث يتغير لفظ كل حرف تبعاً للعلامة التي تضاف إليه (كالفتحة، الضمة، الكسرة، الشدة، السكون والتنوين). والتشكيل أساسي في اللغة العربية، ويعتبر جزءاً لا يتجزأ منها، ولا بد لتعريب أيٍ من البرمجيات أن تتمكن هذه البرمجيات من التعامل مع التشكيل بشكل صحيح. ويضاف إلى ذلك أسلوب تعامل البرمجيات المعربة مع علامات التنصيص (كالفاصلة وعلامة الإستفهام والنقطة)، والتي تعتبر أيضاً جزءاً أساسياً من عملية التعريب.متطلبات أخرىينتشر في الوطن العربي استخدام التقويم الهجري بالإضافة إلى التقويم الميلادي، والذي يستخدم الأشهر الهجرية للتعبير عن التاريخ. ولذلك ينبغي أن تتم معالجة موضوع التعامل مع التواريخ الهجرية جنباً إلى جنب مع التواريخ الميلادية أثناء عملية تعريب البرمجيات الحرة ومفتوحة المصدر. ويمكن إضافة دعم التقويم الهجري على مستوى نظام التشغيل وبذلك يمكن لجميع البرمجيات التي تعمل ضمن هذا النظام الإفادة من هذا الدعم والتعامل مع التواريخ الهجرية بتعديلاتٍ بسيطةٍ جداً.يعتبر لينكس أكثر أنظمة التشغيل الحرة ومفتوحة المصدر انتشاراً، وقد تمت بالفعل إضافة دعم التقويم الهجري إلى لينكس بفضل جهود بعض المطورين العرب.من المتطلبات الأخرى التي لا بد من تلبيتها للحصول على تعريب كامل للبرمجيات الحرة ومفتوحة المصدر تطوير مدقق إملائي للغة العربية، فبعد أن أصبحت هذه البرمجيات قادرة على التعامل مع الأحرف والكلمات العربية، يجب أن توفر أيضاً إمكانيات التدقيق الإملائي للغة العربية لتصبح قادرة على منافسة البرمجيات التجارية التي تحتوي على هذه الإمكانيات.لسوء الحظ لا يوجد حالياً مدقق إملائي للغة العربية حر أو مفتوح المصدر، ولكن هناك العديد من المشاريع والأفكار الطموحة للبدء في تطوير هذا المدقق. أملنا أن تتوج بعض هذه المبادرات (أو إحداها على الأقل) بالنجاح في أقرب وقت، فبدون إمكانيات التدقيق الإملائي (والتدقيق النحوي في المستقبل) سيبقى أي تعريب للبرمجيات الحرة ومفتوحة المصدر منقوصاً.أين نحن الآن؟يعتمد قرار التحول إلى البرمجيات الحرة ومفتوحة المصدر لأي مؤسسة أو شركة في الوطن العربي على مستوى دعم اللغة العربية المتوفر في هذه البرمجيات، ومدى توفر البدائل للبرمجيات المغلقة في عالم البرمجيات الحرة ومفتوحة المصدر. ولذلك لا بد من استعراض الواقع الراهن لدعم اللغة العربية في البرمجيات الحرة ومفتوحة المصدر ليتمكن صناع القرار من اتخاذ القرارات الملائمة لظروف مؤسساتهم وشركاتهم.ترافقت ثورة البرمجيات الحرة ومفتوحة المصدر منذ البداية بالكثير من المحاولات لتعريب هذه البرمجيات، والتي استخدمت عدة أساليب لإضافة دعم اللغة العربية، فمنها من اعتمد على إضافة هذا الدعم إلى أنظمة التشغيل لتكون متاحةً بشكل شفاف لجميع البرمجيات التي تعمل ضمن هذا النظام، ومنها من عمل على إضافة دعم اللغة العربية إلى البرمجيات نفسها لتدعمها بغض النظر عن نظام التشغيل الذي تعمل ضمنه.ونتيجةً لطبيعة منهجية التطوير الخاصة بالبرمجيات الحرة ومفتوحة المصدر، فقد تكرر العمل في بعض المشاريع نتيجة غياب التنسيق بين جهات التطوير المختلفة، كما ظهرت عدة آراء متضاربة نتج عنها عدة تطبيقات للتعريب غير متوافقة فيما بينها. إلى أن ظهر اليونيكود والذي غير بشكل جذري أسلوب التعامل مع اللغة العربية في البرمجيات الحرة ومفتوحة المصدر.كما ذكرنا سابقاً فإن معايير اليونيكود وبناء البرمجيات الحرة ومفتوحة المصدر باعتمادها يعني ضمان الحصول على النسخ المعربة مباشرة بعد الإنتهاء من تطوير هذه البرمجيات، ولكن يبقى هناك القليل الذي ينبغي عمله لهذه البرمجيات لتصبح معربةً بالكامل، وهو تعريب واجهة المستخدم. حيث أن البرمجيات المبنية وفقاً لمعايير اليونيكود قادرة على التعامل مع النصوص العربية، وبإمكانها معالجة الأحرف والكلمات العربية، ولكن واجهات هذه البرمجيات ليست عربية، وهو ما قد يشكل عائقاً لدى استخدامها من قبل مستخدمين ليسوا على درايةٍ كافيةٍ باللغة الأجنبية المستخدمة في بناء واجهة هذه البرمجيات.إن تعريب واجهة المستخدم سهل للغاية من الناحية التقنية، ولكنه يتطلب جهوداً من المطورين والمترجمين العرب لترجمة نصوص الأوامر والتعليمات في واجهة المستخدم، إضافةً إلى ملفات المساعدة وأدلة الإستخدام. لقد قامت مجموعات من المتطوعين بترجمة واجهات الإستخدام للعديد من البرمجيات الحرة ومفتوحة المصدر، بعضها أصبحت واجهته مترجمةً بالكامل، وبعضها الآخر ما زال في المراحل الجزئية.بشكل عام، فإن الواقع الراهن للبرمجيات الحرة ومفتوحة المصدر في العالم العربية غير مشجع على الإطلاق. حيث ما زالت هذه الحركة تفتقر إلى كثير من جهود المتطوعين والمطورين العرب لردم الهوة بين عالم البرمجيات الحرة ومفتوحة المصدر ولغتنا العربية الغراء. من المؤسف القول بأن غالبية مشاريع التعريب أطلقت من قبل أشخاص ليست العربية لغتهم الأم. ولا أدري إلى أي حال كان سيؤول واقع البرمجيات الحرة ومفتوحة المصدر العربية ما لم يسعفنا الحظ في قيام الغير بتطوير ترميز اليونيكود والذي أدى إلى تجاوز معظم مشاكل تعريب البرمجيات. من المحزن أيضاً أن آليات وخوارزميات تحليل السياق المستخدمة حالياً لم تطور من قبل مطورين عرب لحل مشكلات اللغة العربية، بل طورت في الأساس لتجاوز مشاكل دعم اللغة العبرية في البرمجيات الحرة ومفتوحة المصدر.إلا أن قتامة الصورة التي أتحدث عنها لا يعني البتة إنكار الجهود الجبارة التي يبذلها بعض المطورون العرب للإسهام في نشر فلسفة البرمجيات الحرة ومفتوحة المصدر في وطننا العربي. بيد أن طبيعة تطوير هذه البرمجيات ذات الوتيرة المتسارعة وكم المعلومات الهائل الذي يتزايد يوماً تلو الآخر يفرض متطلبات لن تلبيها جهود بضعة من المطورين مهما عظمت، بل لا بد من تحول هذه الفلسفة إلى طريقة تفكير يتبناها أكبر عدد ممكن من المطورين والمتطوعين وأن يعملوا وفقاً لمبادئها لنكون عندها قادرين على الإيفاء بحقوق لغتنا العربية في دعمها وتطويرها لتتبوأ المكانة المرموقة التي تليق بها بين بقية لغات المعمورة.المراجع ولمزيد من المعلومات1. ريتشارد ستولمان: Richard Stallman (2002), Free Software, Free Society, GNU Press, Boston MA, USA, ISBN: 1-882114-98-1.2. ريتشارد ستولمان: Richard Stallman (1991), The GNU General Public License, The Free Software Foundation, http://www.gnu.org/copyleft/gpl.html.3. مؤسسة البرمجيات الحرة، The Free Software Foundation, http://www.fsf.org4. لينوس تورفالدز: Linus Torvalds (2001), Just for Fun, Texere, New York, USA, ISBN: 1-58799-080-65. مبادرة المصادر المفتوحة، The Open Source Initiative, http://www.opensource.org/6. تعريف المصادر المفتوحة، The Open Source Definition, The Open Source Initiative, http://www.opensource.org/docs/definition.php7. حركة المصادر المفتوحة، ويكيبيديا، Open Source Movement, Wikipedia, http://en.wikipedia.org/wiki/Open_Source_movement8. Terry Bollinger (2003), Use of Free and Open Source Software (FOSS) in the U.S. Department of Defense, The Mitre Corporation.9. برنارد غولدن، Bernard Golden (2004), Succeeding with Open Source, Addison Wesley, Indiana, USA, ISBN: 0-321-26853-910. معايير اليونيكود باللغة العربية، http://www.unicode.org/standard/translations/arabic.html11. مكتبة دعم ثنائية الإتجاه Pretty Good BiDi، http://crl.nmsu.edu/~mleisher/ucdata.html12. فريق عربايز www.arabeyes.org13. مجموعة مستخدمي غنو/لينكس سوريا www.linux.org.sy14. الخطوط العربية مفتوحة المصدر، http://www.travelphrases.info/gallery/Fonts_Arabic.html15. أطقم المحارف في اللغات المختلفة، http://www.i18nguy.com/unicode/codepages.html16. محمد أنس طويلة، المصادر المفتوحة: خيارات بلا حدود.محمد أنس طويلةanas[at]tawileh[dot]netهذه المقالة خاضعة لإتفاقية ترخيص المستندات الحرة GNU Free Documentation License

تعليقات