أهلاً بكم، أتمنى أن تكونوا بخير وفي أفضل حال. أهلاً بكم في مقال جديد من سلسلة مقدمة في علوم الحاسب. في هذا المقال، سنناقش معًا بعض المصطلحات التي تسبب حيرة للكثير من الناس عندما يبدأون في تعلم البرمجة: ما هي التقنية (Technology)، وما هي لغة البرمجة (Programming Language)، وما هي المكتبة (Library)، وما هو إطار العمل (Framework).
دعنا نتناولها واحدة تلو الأخرى ونفصل الموضوع.
ما هي التقنية (Technology)؟
التقنية تشير إلى مظلة كبيرة تضم مجموعة من الأدوات والمفاهيم التي تحتاج إلى تعلمها. على سبيل المثال، تقنيات الويب تشمل العديد من العناصر مثل:
- الواجهة الأمامية (Front-end): HTML, CSS, JavaScript.
- الواجهة الخلفية (Back-end): .NET, Java, Python, وغيرها الكثير.
هذه هي المظلة العامة التي نشير إليها بكلمة “تقنية”. سأوضح لك بعد قليل ماذا نعني بالتقنية نحن كعاملين في سوق العمل، حتى تكون على دراية كاملة بالموضوع.
ما هي لغة البرمجة (Programming Language)؟
لغة البرمجة هي اللغة التي نستخدمها لكتابة الشيفرة المصدرية (الكود) لإنشاء البرنامج أو التطبيق أو الموقع الإلكتروني الذي نعمل عليه. لقد تحدثنا عن لغات البرمجة في المقال السابق، وهي تشمل أمثلة مثل Java، وC#، وC++، وPython.
تتكون كل لغة برمجة من مجموعة من الأوامر الجاهزة التي أعدتها الشركة المطورة للغة لتسهيل عملية التطوير. على سبيل المثال، لطباعة كلمة على الشاشة في لغة C#، نكتب الأمر التالي:
Console.WriteLine("Your Message Here");
أما في لغة Python، فنستخدم أمر print
ونضع الرسالة التي نريد عرضها بداخله:
print("Your Message Here")
لكل لغة برمجة قاموسها الخاص وأوامرها التي نستخدمها لتنفيذ المهام المطلوبة. هذه الأوامر ليست صعبة أو مستحيلة، وسنتعلمها معًا خلال رحلتنا في تعلم البرمجة، فلا داعي للقلق.
ما هي المكتبات (Libraries)؟
يا صديقي العزيز، كنا نقول للتو أن كل لغة برمجة تتكون من مجموعة من الأوامر التي تسهل عملية التطوير، صحيح؟ صحيح.
قام مطورو اللغة بجمع هذه الأوامر وتنظيمها داخل ما يسمى بـ “المكتبات”. هذه عملية تنظيمية تتم داخل لغة البرمجة لتسهيل وصولك كمبرمج إلى الأوامر التي تحتاجها.
تنقسم المكتبات إلى نوعين:
- مكتبات مدمجة (Built-in): تكون مضمنة بالفعل في لغة البرمجة التي تستخدمها.
- مكتبات خارجية (Third-party): تقوم باستيرادها من خارج اللغة.
قد تتساءل، لماذا لم يدمجوا كل المكتبات داخل اللغة؟ السبب هو أن هذه المكتبات تخدم أغراضًا معينة، وعندما تحتاج إلى غرض معين كمبرمج، يمكنك استيراد المكتبة الخاصة به واستخدامها. هذا يمنع زيادة حجم برنامجك دون فائدة. أنت تجلب المكتبة التي تحتاجها في الوقت الذي تحتاجه.
كل مكتبة تخدم غرضًا محددًا. على سبيل المثال، في لغة مثل C#، توجد مكتبات للتواصل مع قواعد البيانات، ومكتبات أخرى لفتح الملفات والكتابة فيها أو لإنشاء المجلدات وتنظيمها، وهناك مكتبات لإرسال واستقبال البيانات عبر الشبكة. سنتعلم الكثير من هذه الأمور معًا كلما تعمقنا في العمل وتعلم البرمجة.
ما هو إطار العمل (Framework)؟
ما هو هذا، ولماذا نستخدمه، ولأي غرض؟
لنفترض أنك تريد إنشاء برنامج لسطح المكتب (Desktop Application). عندما تفتح البرنامج، تجد مجموعة من الأزرار، القوائم، والجداول. لو حاولت بناء هذه العناصر بنفسك باستخدام لغة البرمجة فقط وكتابة كل شيء يدويًا، سيكون الأمر صعبًا جدًا عليك كمبرمج.
لذلك، قام مطورو لغات البرمجة بإنشاء ما يسمى بـ “إطار العمل”. إطار العمل هو بيئة تحتوي على:
- مجموعة مكتبات: تخدم غرضًا معينًا مثل تطوير تطبيقات سطح المكتب، أو الويب، أو الهواتف المحمولة.
- مجموعة أدوات: مثل عناصر التحكم (Controls) كالأزرار والقوائم، التي يمكنك سحبها واستخدامها مباشرة لتوفير الوقت والجهد في عملية البرمجة.
- أدوات إضافية: تساعدك في تأمين تطبيقك، والتواصل مع قواعد البيانات، وتسهيل عملية تحويل مشروعك إلى ملف تنفيذي (EXE) أو موقع ويب.
كل هذه المكونات تكون موجودة داخل إطار العمل. لكل لغة برمجة أطر العمل الخاصة بها. على سبيل المثال، لغة C# لديها إطار عمل ASP.NET Core
لتطوير مواقع الويب، وإطار عمل .NET MAUI
لتطوير تطبيقات الهواتف المحمولة. كل لغة برمجة لديها أطر عمل تخدم أهدافها المختلفة.
كل الأمور التي ناقشناها هي عبارة عن مستويات من التسهيل التي تساعد المبرمج على إنجاز المهمة التي يريدها. فإذا تحدث معك أي شخص عن أي من هذه المفاهيم، من المفترض أنك الآن تفهمها وتستوعبها بشكل جيد.
المفهوم الشامل للتقنية في سوق العمل
هناك نقطة أخيرة، وهي مفهوم “التقنية” الذي نستخدمه في سوق العمل. عندما يقول لك أحدهم أنك بحاجة لتعلم “تقنية” معينة، فماذا يعني ذلك؟
هذا يعني أنك بحاجة لتعلم:
- لغة برمجة محددة.
- المكتبات الخاصة بها.
- إطار العمل الذي ستعمل به.
- قاعدة البيانات المتوافقة مع هذه اللغة.
بهذه الطريقة، تكون قد ألممت بكل شيء يندرج تحت المظلة الكبيرة للتقنية التي ستعمل بها في سوق العمل. فكلمة “تقنية” بهذا السياق هي مظلة كبيرة تضم كل العناصر التي تحدثنا عنها.
أعتقد أن الموضوع الآن واضح وبسيط ومفهوم.