Programming Languages Model

سوف تتعلم ما هي البرمجة؟ وما هو الفرق بين لغات البرمجة؟ وما هي أنواع لغات البرمجة؟ وكيف يتم تحويل الأكواد (الشيفرة المصدرية) إلى لغة الآلة Machine Code؟ وما هو الـ Compiler, Interpreter, Hybrid؟ ونصائح هامة و مفيدة لكيفية البدء في تعلم لغات البرمجة

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

ويجب أيضا أن تعلم أن جهاز الكمبيوتر مهما كان متطورا فهو جهاز (غبي) لا يفعل شيء من تلقاء نفسه قد يكون أسرع من البشر بملايين المرات في تنفيذ العمليات الحسابية ولكنه لا يزال ينفذ مجموعة الأوامر التي قد تم برمجته لينفذها وينفذها بنفس الطريقة التي تم برمجته عليها.

ما هي البرمجة؟

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

ما هي لغة الكمبيوتر (الآلة)؟

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

وهناك ثلاثة أنواع أساسية من لغات البرمجة، تختلف كل منها في طريقة ترجمة الأكواد (الشيفرة المصدرية - Source Code)، سوف أكتب مسمى كل نوع باللغة العربية والإنجليزية ولكن يفضل إستخدام المسمى باللغة الإنجليزية، وهم كالتالي:

أولا: اللغات المجمعة - Compiled Languages

وفي هذا النوع من اللغات يقوم المبرمج بكتابة الأكواد الخاصة بالبرنامج ثم يستخدم ما يسمى بالـ Compiler ليقوم بتحويل الأكواد إلى لغة الآلة وبالتالي إلى ملف للتشغيل، ولكي يتم إستخدام البرنامج يقوم المبرمج بإرسال ملف التشغيل (الناتج عن عملية التجميع) إلى المستخدم، فمثلا برنامج المتصفح الذي تستخدمه الآن أي كان نوعه، فإنك كمستخدم تقوم بتشغيل البرنامج من خلال ملف التشغيل وهذا الملف تم تحويله مسبقا إلى لغة الآلة وبالتالي يتم إستخدامه مباشرة دون الحاجة لإستخدام الأكواد التي تم برمجته من خلالها، ومن لغات البرمجة المنتمية لهذا النوع C, C++, Objective-C.

ثانيا: اللغات المترجمة (المفسرة) - Interpreted Languages

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

ثالثا: اللغات الوسيطة (الهجين) - Intermediate Languages

وتسمى أيضا هذه اللغات بـ Hybrid Languages وفي هذا النوع من اللغات يقوم المبرمج بتحويل الأكواد إلى لغة وسيطة أقرب إلى لغة الآلة، ثم يتم إستخدام الملفات الناتجة من عملية التحويل لتشغيل البرنامج، وفي هذا النوع أيضا يجب على المستخدم النهائي للبرنامج بتوفير بيئة العمل الخاصة بالبرنامج لكي يتمكن من تشغيلة، فمثلا البرامج المكتوبة بلغة C#.Net يجب على المستخدم توفير بيئة العمل .NET Framework حتى يتمكن من تشغيل البرنامج، ومن أمثلة هذا النوع أيضا لغة الـ Java.

وبما أننا تحدثنا عن لغة Java وعن لغة JavaScript يجب التنويه بأن هاتين اللغتين مختلفتين تماما، قد يتشابها في بعض الأوامر ولكن كل لغة لها إستخداماتها.

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

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

نصائح هامة ومفيدة لتعلم البرمجة

  1. يجب أن تكون صبور، ولا تمل من قراءة المعلومة أكثر من مرة
  2. أنصحك بشدة أن تبدأ بلغة JavaScript، فهي لغة سهلة وبسيطة، ولا تحتاج لأي إعدادات لتبدأ بكتابة أول برنامج
  3. إذا كانت لغتك الإنجليزية جيدة، فالـ Documentation الخاصة بكل لغة برمجة هي دائما المصدر الموثق لأي معلومة
  4. لاتيأس إذا لم تتمكن من فهم معلومة موجودة على الإنترنت، فيمكنك دائما متابعة أكثر من مصدر (موقع) حتى تجد من يتمكن من تبسيط المعلومة التي تبحث عنها

لكي تبدأ بكتابة أكواد JavaScript فإنك تحتاج إلى برنامج لكتابة الأكواد، يمكنك أن تستخدم برنامج notepad الموجود في نظام التشغيل Windows أو برنامج Vim الموجود في نظام التشغيل Linux أو برنامج Text Edit في نظام التشغيل MacOS فكل هذه البرامج تمكنك من كتابة الأكواد بطريقة النصوص العادية Plain Text، أو بمعنى آخر، فإذا كان البرنامج الذي تكتب فيه الأكواد يوجد به خاصية الخط الثقيل Bold أو المائل Italic فإنه لا يصلح لكتابة الأكواد البرمجية.

ويمكنك إستخدام برنامج Visual Studio Code فهو برنامج مجاني من شركة Microsoft ويدعم كتابة العديد من لغات البرمجة.

التالي: مقدمة للبرمجة بلغة جافا سكريبت (JavaScript)