بالتأكيد قد سمعت من قبل عن لغة C، ولغة C#، ولغة C++، ولكن هل تعتقد أنها جميعًا متشابهة لتشابهها في الاسم؟ هذا ما سنتعرف عليه في هذا المقال.
لغة C: الأساس والقوة
لنبدأ بأول لغة برمجة تم إنشاؤها، وهي لغة C. صُنعت لغة C منذ أكثر من 50 عامًا، وتطورت منها لغات كثيرة جدًا مثل Java، وJavaScript، وPython، وPHP، وغيرها الكثير.
ومن أبرز المشاريع التي تم إنشاؤها بها هو الروبوت المسمى “Curiosity”، الذي صنعته وكالة ناسا ليصعد إلى المريخ ويلتقط بعض الصور ويرسلها إلى الوكالة عبر الأقمار الصناعية. تمت برمجة هذا الروبوت بأكثر من 2.5 مليون سطر من كود C.
كان الخيار الأنسب لهم هو لغة C لأن هذا الروبوت لا يمتلك مساحة تخزين كبيرة ولا حتى معالجًا قويًا، فكانوا بحاجة إلى لغة ذات مساحة تخزين منخفضة وسريعة جدًا. وبالمناسبة أيضًا، أنفقت ناسا على هذا المشروع أكثر من 2.5 مليار دولار ليتمكن الروبوت من الصعود إلى المريخ، والتصوير، والإرسال، والاستكشاف، والسير في الصحراء بمفرده، والقيام بكل هذه المهام دون أي مساعدة من البشر. إنه روبوت مذهل حقًا، فهو يهبط على السطح، ويسير في الصحراء، ويصور، ويرسل البيانات، ويقوم بمهام كثيرة جدًا.
وهذا هو المثال البرمجي إذا أردت طباعة اسمك بلغة C. كل ما عليك هو استبدال كلمة “أحمد” بالنص الذي تريد طباعته.
#include <stdio.h>
int main() {
printf("أحمد");
return 0;
}
لكن مشكلة لغة C كانت عويصة حقًا، وهي أنها تفتقر إلى البرمجة كائنية التوجه (Object-Oriented Programming).
لغة C++: التطور مع البرمجة الكائنية
حسنًا، نحن نريد لغة تكون سريعة وممتازة أيضًا، ولكن مع إضافة البرمجة كائنية التوجه. وهنا ظهرت لغة C++، وهي من أمتع اللغات التي يمكن تعلمها.
لماذا سُميت C++؟
- كلمة C مأخوذة من لغة C الأم.
- علامة
++
في البرمجة تعني “إضافة واحد”. - لذلك، فإن C++ تعني أنها لغة C مضافًا إليها الـ Classes، والتي هي المكون الأساسي في البرمجة كائنية التوجه.
تتمتع C++ بنفس سرعة وأداء لغة C تمامًا، دون أي مشكلة، لكنها تتميز بإضافة البرمجة كائنية التوجه. وبالطبع، ساهمت لغة C++ في تطوير العديد من البرامج، منها برامج شركة Adobe مثل Photoshop وغيرها الكثير. ولا ننسى أن لغة C++ ساعدت في تطوير العديد من لغات البرمجة الأخرى، مثل لغة C#.
وهذا هو المثال البرمجي لطباعة اسمك باستخدام C++:
#include <iostream>
int main() {
std::cout << "أحمد";
return 0;
}
لغة C#: المنافس الحديث
والآن، ننتقل إلى اللغة الثالثة، وهي لغة C#، وهي لغة مستقلة بذاتها ولا علاقة لها بلغة C. هي في الواقع تشبه لغة Java. طورت شركة مايكروسوفت لغة C# وأنفقت عليها الكثير لتكون منافسة للغة Java. وبدأ الكثير من المطورين في استخدام لغة C# عندما بدأ محرك الألعاب Unity في استخدامها لبرمجة الألعاب.
وهذا هو المثال البرمجي لطباعة اسمك باستخدام C#:
using System;
class Program
{
static void Main()
{
Console.WriteLine("أحمد");
}
}
أي لغة يجب أن أتعلم؟ C أم C++ أم C#؟
قد تسألني الآن: أي لغة يجب أن أتعلم؟
-
إذا كنت مبتدئًا: حينها، إذا كانت هذه أول لغة برمجة لك ولم تتعلم البرمجة من قبل، فابدأ بأي لغة، فالأمر لن يفرق معك. سواء أردت أن تبدأ بـ C، أو C#، أو C++، الأهم هو أن تبدأ.
-
إذا كان لديك خبرة سابقة: أما إذا كانت هذه هي لغتك الثانية أو الثالثة، أو لديك بالفعل معرفة بالبرمجة، حينها، يجب أن تسأل نفسك: “ما هو الشيء الذي أريد أن أصنعه؟” وبناءً عليه ستستخدم الأداة المناسبة، والأداة هنا هي لغة البرمجة. على سبيل المثال، إذا أردت صنع لعبة، ستبحث عن اللغة المستخدمة في صنعها وتتعلمها.
لكن إذا كانت هذه أول لغة برمجة لك، فابدأ بأي لغة. لا يوجد مجهود يضيع سدى. لا تقلق إذا قضيت ستة أشهر في تعلم لغة ما وتعتقد أن هذا الوقت قد ضاع حتى لو لم تستخدمها. كل شيء تتعلمه يفيدك وستستخدمه لاحقًا. لا تعتقد أبدًا أن تعلم شيء ما هو مضيعة للوقت، أو أنك لن تستخدمه، فلماذا أتعلمه؟ ابدأ بأي لغة برمجة، أيًا كانت اللغة التي ستبدأ بها.
إذًا، هذا هو ببساطة الفرق بين لغات C، وC++، وC#.