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