إذا أخبرك أحد المبرمجين ، أن اللغة الفلانية هي الأفضل ، فربما يكون ذلك لأنه مبتدئ لا يعرف حقاً ما الذي يتحدث عنه. كل لغة برمجة لها مميزات وعيوب. والمبرمج الخبير هو القادر على اكتشاف الإيجابيات والسلبيات لكل لغة والقادر على تحديد الأداوت اللازم استخدامها لحل مشكلة معينة.
أعتقد أن هذا السؤال قد خطر على بال كل شخص رغب يوماً من الأيام أن يتعلم البرمجة، فهو سؤال منطقي جداً. لماذا هناك العديد من لغات البرمجة؟ لماذا لا نستطيع تطوير لغة برمجة واحدة تعمل على كافة الأجهزة وقادرة على تطوير كافة البرامج والتطبيقات، وبذلك نتخلص من قلق تعلُم الكثير والكثير من لغات البرمجة، ألا تعتقد أننا بذلك سنكون أسعد وبحال أفضل؟
لا بد أنك الآن تنتظر إجابة مفصّلة على هذا السؤال. وهذا ما سأتطرق إليه في هذه الإجابة.
هل تعلم كم عدد لغات البرمجة الموجودة؟
الإجابة المختصرة هناك حوالي 700 لغة برمجة ويتضمن هذا الرقم اللغات البرمجية المعدة لوظائف محددة بعينها و يستخدمها أيضاً فئة محدودة من المطورين، على سبيل المثال لغة Chef ، بل وهناك لغات مضحكة أصلاً مثل لغة LoLCODE حيث أن الكود عبارة عن جمل من اللغة الانجليزية العامية مما يشعرك بأنك تتحدث إلى الآلة كأنها إنسان. ولكن هناك قائمة اسمها -HOPL- تدّعي بأنها تتضمن كل لغة برمجة وُجدت على الإطلاق وكانت النتيجة أن هناك ما يقارب 9000 لغة برمجة!
حسناً، لا تقلق لأن اللغات البارزة والأكثر استخداماً هي 245 لغة برمجة فقط. والأجمل من ذلك أنك في واقع الأمر لست بحاجة لتعلم الكثير من لغات البرمجة أصلاً. فأنت لست بحاجة إلى معرفة 5 أو 8 أو 10 لغات.
فبإمكانك بلغة برمجة واحدة فقط أن تكون مبرمجاً ناجحاً جداً . كل ما عليك هو أن تبحث عن تخصصك واللغة التي تود تعلمها ، حيث أن لغات البرمجة مثل بايثون ، جافا و JavaScript ستوفر لك الكثير من الفرص بحيث لا تحتاج أحياناً لتعلم لغة أخرى. وعلى الأرجح ستتعلم لغة أو لغتين أو ربما ثلاث لغات طوال حياتك المهنية كمبرمج. ولكن لا يزال السؤال يطرح نفسه مرة أخرى! لماذا يوجد العديد من لغات البرمجة؟
حسناً حسناً، ببساطة شديدة إن لغات البرمجة المختلفة تقوم بوظائف مختلفة ، تمامًا كما لدينا أدوات ومستلزمات مختلفة للبناء. تصور معي أنك تريد بناء منزل ، هل ستستطيع بناؤه بإستخدام المطرقة فقط؟. بالتأكيد لا، فأنت بحاجة إلى أدوات مختلفة ومناسبة لتقوم بوظائف مختلفة لتحصل في النهاية على منزل. لذلك من المستحيل تطوير لغة برمجة واحدة فقط والسبب أن هناك العديد من أنظمة التشغيل ، والعديد من الهواتف المحمولة ، والعديد من أجهزة الكمبيوتر ، والعديد من الأجهزة مثل الكاميرات وغيرها. لذلك لدينا بعض اللغات منخفضة المستوى مثل Assembly أو لغة C ، وأيضاً لدينا لغات عالية المستوى مثل بايثون و JavaScript.
عادةً ما تكون Python أبطأ من لغات مثل ++C أو #C أو حتى Java. و الآن لسنا بحاجة إلى الدخول في التفاصيل الفنية . ولكنني أريد أن أخبرك عن مميزات هذه اللغة ومتى لا نُفضل استخدامها.
إذا أردت أن تكتب برنامجاً لأنظمة منخفضة المستوى في التفاعل مع المستخدم، بالتأكيد لن تكتبه بلغة Python . فالكاميرا على سبيل المثال لا تحتاج للقيام بالكثير من المهام المعقدة مثل الحاسوب. فمن المؤكد في هذه الحالة سنستخدم لغة C أو ++C لبرمجتها. وقس على ذلك.
مما سبق عرفنا أن بايثون أبطأ من بعض اللغات ،إلا أنها الأفضل في شيء واحد. و هو زيادة إنتاجية المطور ، وذلك لأن لغة بايثون سهلة التعلم أو على الأقل تشبه اللغة الإنجليزية إلى حد كبير. مما ساعد في ارتفاع انتاجية المبرمجين والمطورين بشكل ملحوظ . -وبإمكانك ملاحظة ذلك إذا كنت متابعاً لتطور التقنية- حيث أننا في الماضي كنا نحتاج وقتاً أطول لنرى تحديثات جديدة في عالم التقنية، أما في الوقت الحالي سترى أنك لا تستطيع إلى حد ما متابعة كل التطورات في التقنية! وهذا لأننا الآن نملك حواسيب أقوى، ولغات برمجة لها القدرة على القيام بوظائف أكثر تعقيداً.
فكما ترى في بايثون أنت بحاجة لأسطر برمجية أقل من مما يلزمك في ++C. على سبيل المثال لتقوم بطباعة جملة على الشاشة في Python ستكتب سطرًا واحدًا فقط ، أما في ++C فكما ترى في الصورة: تفوز بايثون بالتشامبيونز ليج وتحسم المباراة لصالحها بسطر واحد فقط مقابل 5 أسطر ل ++C
لكن كما ذكرنا سابقاً كل لغة لها ما يميزها. على سبيل المثال ، إذا كنت ترغب في إنشاء تطبيق على جهاز Android أو iOS ، لن تستخدم Python. ولكن إذا كنت ترغب في بناء تطبيق من تطبيقات تعلُم الآلة(machine learning) ، أو إنشاء خادم ويب ،أو تطبيقات -Data Visualizations- ، أو برامج تُعالج آلاف ملفات Excel معاً. في هذه الحالة ، ستستخدم Python.
إذا باختصار شديد، السبب في وجود العديد من لغات البرمجة هو أن كل لغة برمجة تتفوق على غيرها في بعض الأشياء ، فإن الأمر كله يتعلق بمميزات كل منها. لا يوجد شيء اسمه أفضل لغة!
وإذا أخبرك أحد المبرمجين ، أن اللغة الفلانية هي الأفضل ، فربما يكون ذلك لأنه مبتدئ لا يعرف حقاً ما الذي يتحدث عنه. كل لغة برمجة لها مميزات وعيوب. والمبرمج الخبير هو القادر على اكتشاف الإيجابيات والسلبيات لكل لغة والقادر على تحديد الأداوت اللازم استخدامها لحل مشكلة معينة.
إذا أردت متابعة المزيد من هذا المحتوى، أدعوك لمتابعة هذه المساحة: