المناهج السعودية

المقالات العامة

لماذا لا توجد لغة برمجة عربية ؟

لماذا لا توجد لغة برمجة عربية ؟

لماذا لا توجد لغة برمجة عربية ؟

لماذا لا توجد لغة برمجة عربية ؟

لماذا لا توجد لغة برمجة عربية ؟

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

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

و بسياسة الأمر الواقع أصبحت الأغلبية الساحقة من #لغات_البرمجة الاولى تستخدم الأبجدية الإنجليزية والأرقام و علامات الترقيم المختلفة فقط، وحتي بعد أن أصبح من الممكن للحواسيب أن تفهم الرموز غير الإنجليزية (وغير اللاتينية بشكل عام)، فقد إستمر التطور والتحديث والدعم الكامل من الشركات والمختصين عالمياً قائم بالاساس على اللغة الإنجليزية، بل وحتي إن كان مصممو تلك اللغات و مستخدموها من غير الناطقين بها مثل لغة ال Ruby، التي صممها عالم كمبيوتر ياباني، و كانت في سنواتها الأولي غير معروفة إلا في اليابان فقط، و لم يكن يستخدمها ساعتها إلا مبرمجون يابانيون ولم تكن تتوافر لها توثيقات و شروحات إلا باللغة اليابانية، كانت فقط تُكتَب بالأبجدية الإنجليزية ليس اليابانية وربما ذلك ماكتب لها التطور والإنتشار فيما بعد إلى المستوى العالمي،، وهناك اليوم لغة برمجية اُخرى قريبة من العالمية قد صممها أحد الرواد العرب في المجال وهي لغة الـ Ring للمهندس محمود سمير فايد وهي أيضاً مكتوبة باللغة الإنجليزية…

من ناحية اخرى دعنا نفهم طريقة عمل لغات البرمجة وتصميمها من الأساس ..

إبتداءاً من الأسمبلي (Assembly) : كما نعلم فلا تُنفذ المعالجات سوى التعليمات المكتوبة بلغة الآلة، فبإستطاعة المعالج تنفيذ الملايين من هذه التعليمات، ولكن من الناحية النظرية فإن كتابة برنامج بلغة الآلة سيكون أمراً صعباً وسيستغرق الكثير من الوقت، وبمُجرد وجود 0 أو 1 فقط في المكان غير الصحيحِ لن يعمل البرنامج. كما أنه عملياً ومع تطور البرامج فالتعقيد والحجم قد أصبح الأمر مستحيلاً. لهذا قد اُختُرِعت لغة الأسمبلي (Assembly) أو لغة التجميع لتسهيل كتابة البرامج. فبدل الكتابة بلغة الأرقام (0 و1)، تُستعمل رموز مختصرة تُعرف بـ mnemonics. لعملية الجمع مثلاً يُستخدم رمز: add، ولعملية الضرب: mul، بينما mov تستخدم لنقل قيمة معينة إلى الذاكرة… وهناك العديد من النسخ لهذه اللغة، كما أن لكل جيلٍ من المعالجات مجموعة التعليماتِ الخاصة به، ويُستعمل برنامج خاص يسمى بال assembler لتحويل الكود المكتوب من لغة الأسمبلي إلى لغةِ الآلة حيث ينفذَّها المعالج بعد ذلك.
وأظن أنك لاحظ هاهنا أن التطور الأول للغات البرمجة كان معتمداً بشكل أساسي على الأبجدية الإنجليزية ،، نعم دعنا نكمل ..

اللغات عالية المستوى: كانت الأسمبلي هى أحد الـلغات المعروفة بمنخفضة المستوى (low-level language) فبالرغم من أنها قد مثلت بديلاً مباشراً عن لغة الآلة، لكنها مازالت تتطلب معرفة كبيرةً بالمعالجات وبِنيتها، ومجموعة التعليمات الخاصة بكل منها. كما ويتعامل فيها المبرمجُ بشكلٍ مباشر مع الذاكرة بأنواعها المختلفة .وتحتاجُ أبسطُ البرامج المكتوبة بها لعددٍ كبير من التعليمات.
في الخمسينيات من القرن الماضي ظهر جيلٌ جديد من لغات البرمجة عُرِفَت بـاللغات عالية المستوى (high-level-languages). تسمح بكتابة برامج معقدة دون معرفةٍ مُسبقةٍ أو دقيقة بالمعالجات، ودون إستعمال الرموز القريبة من لغة الآلة. بالإضافة إلى ذلك فإنّ معظم هذه اللغات تستعمل كلماتٍ مفهومةً وقريبةً من لغتنا نحن البشر.. ولكل لغة عالية المستوى مجموعةَ الكلماتِ والقواعد الخاصة بها والتي على المبرمج أن يعرفها جيداً ليستطيع كتابة البرامج ويتفادئ الأخطاء .كما أنها تُقسم إلى نوعين، هما: اللغات المترجمة (Compiled) والمفسرة (Interpreted).ولأنّ المعالج لا يفهم سوى التعليمات المكتوبة بلغة الآلة، تُتَرجَم البرامج المكتوبة باللغات عالية المستوى إلى لغةِ الآلة عند تنفيذها -بالاعتماد على نوعها- باستعمال المُترجِمات أو المُفسِّرات ويتم ذلك بأكثر من خطوة أو طريقة .
المُترجِم (Compiler) هو برنامجٌ يقوم بتحويل البرنامج المكتوب باللغة عالية المستوى إلى برنامجٍ مكتوب بلغة الآلة، ويمكن للبرنامج الناتج أن ينفَّذَ في أي وقت دونَ الاستعانة بالمترجم.
أما المفسِّر (Interpreter). فهو برنامج يقوم بتحويل وتنفيذ التعليمات المكتوبة باللغة عالية المستوى واحدةً تلو الأخرى. فأولًا يقرأ كل تعليمة من البرنامج، ثم يحولها إلى لغة الآلة، ثم ينفذها مباشرة. وتُكرر هذه العملية لكل تعليمة حتى نهاية البرنامج.

إذاً فإعتماداً على المترجم أو المفسر يمكن برمجة الكمبيوتر بأي لغة برمجة مبنية علي أي أبجدية بشرية نرغب في إستخدامها ؟

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

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

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

زر الذهاب إلى الأعلى