مقارنة بين بايثون وPHP وروبي


هشام رزق الله

ما هي لغة البرمجة التي يجب عليك تعلمها؟ بايثون، PHP أم روبي؟
ربما أكبر سؤال يواجه مطوري الويب المبتدئين هي ما هي أفضل لغة برمجة يجب تعلمها للوظيفة المستقبلية والآفاق، هنالك العديد من لغات البرمجة التي يجب عليك الاختيار منها وكل واحدة لديها نقاط القوة والضعف، ربما أهم مصدر مقلق هو المدة التي تستغرقه كل لغة للتعلم، وهذا يختلف من لغة إلى أخرى، فما الذي ينبغي تعلمه للحصول على أفضل وظيفة ناجحة في البرمجة؟
عندما بدأتُ تعلم تطوير الويب بحثتُ كثيرا حوله وجعلني هذا مرتبكًا بعض الشيء، فلم أتمكن من الحصول على إجابة نهائية حول ما هي أفضل لغة لأن كل كاتب له وجهة نظر مختلفة، وكان جميع الكتّاب يقارنون اللغات دون إعطاء استنتاج شامل.
لذلك، في هذه المقالة، سأقارن بين اللغات البرمجة الحديثة الثلاثة، PHP وبايثون وروبي، وقبل كل شيء، أريد أن أظهر لك بعض البيانات القديمة التي وجدتها عندما بدأت بالتعلم حول تطوير الويب، وهذه البيانات القديمة مأخوذة من هنا وعلى الرغم من قِدَمِهَا إلا أنها تحتوي على بعض الحقائق المفيدة حول تاريخ هذه اللغات.

d4xooad8orbc4yaywwov.png

بايثون ضد PHP ضد روبي

من هذه المقارنة بين PHP وبايثون وروبي، ستجد أنه من الواضح:

  • الطلب العالي على PHP في السوق.
  • مبرمجي PHP مطلوبين بكثرة.
  • قابلية استخدام PHP ضعيفة.
  • تعلم واستخدام بايثون هو الأسهل.
  • بايثون هي الأسرع.
  • تعلم روبي هو الأصعب.
  • يملك روبي أعلى قابلية استخدام.

لكن كما قلت سابقًا، هذه مقارنة مختصرة، ومن هذه المقارنة لا يمكننا الاستنتاج أن PHP هو الأفضل وأن روبي هو الأسوأ، فهنالك أسئلة أخرى لم نرد عليها بعد.

  • ما هي اللغة الأكثر أمانًا؟
  • ما هي القيود الأخرى على هذه اللغات؟
  • ما هي مزايا وأشكال الدعم الأخرى لهذه اللغات؟
  • ما هي نسبة وظيفة/مطور وما متوسط رواتب المطورين؟

ما هي اللغة الأكثر أمانا؟

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

ما هي قيود هذه اللغات؟

PHP:

  • يملك الكثير من الصيغ المطولة من C++/C وبيرل، مع الكثير من الأقواس المعقوفة وعلامات الدولار و “→”.
  • جدول مربك لأسماء الدوال، فتمتلك المكتبة المدمجة مجموعة كبيرة من اتفاقيات التسمية، ويملك الدوال في العادة على بادئة للدلالة على مصدرها (ولكنها لا تمتلك ذلك في كثير من الأحيان). تكون الدوال في العادة في أصناف لمحاكاة مساحات الأسماء (namespace).
  • ليست مناسبة للتطبيقات الكبيرة: صعوبة الصيانة لأنها لا تتكون من وحدات بشكل جيّد.
  • نوع ضعيف: التحويل الضمني قد يفاجئ المبرمجين الغافلين ويؤدي إلى أخطاء غير متوقعة، على سبيل المثال، تتساوى السلاسل “1000” و“1e3” عند المقارنة لأنها تحوّل ضمنيا إلى أعداد كسرية.
  • لغة برمجة سكربتية، ليست لغة برمجة كائنية التوجه.

بايثون:

  • لا تملك بيان ‘switch’ ولا هيكل ‘do … while’.
  • عوامل الزيادة والنقصان والتعيين (التعيين هو بيان فقط في بايثون).
  • العامل/البيان الثلاثي (… ? … : …).
  • بيئة مناسبة (مثبتة عادة).
  • لا توجد مبدلات (modifier) خاصة، محمية و عامة للخصائص والأساليب.
  • لا تملك abstract ومبدلات نهائية للأصناف والأساليب.

روبي:

  • قد تكون صعبة التعلم.
  • تفتقر إلى موارد المعلومات.
  • وقت المعالج بطيء (وقت CPU) بالمقارنة مع لغات برمجة أخرى.
  • التطوير والتحديث أبطأ.

ما هي مزايا وأشكال الدعم الأخرى لهذه اللغات؟

PHP:

  • سهلة التعلم للمبتدئين وللمطورين القادمين من لغات ذات صياغة مشابهة مثل C و C++ و C# وجافا وجافا سكربت، إلخ.
  • تدعم جميع خوادم ويب الرئيسية مثل اباتشي، مايكروسوفت IIS، Netscape و الخوادم الشخصية و خادم iPlanet… الخ.
  • مقبولة للغاية من قبل صناعات عديدة وهي أكثر شعبيّة من بقية لغات البرمجة.
    سهولة استضافة PHP مباشرة دون أي إعدادات للخادم لأن استضافة المواقع صعبة بالنسبة للمبتدئين.
  • يعتبر إطار zend هو الأشهر في PHP، وبعض الأطر الأخرى مثل Yii وLaravel وCodeigniter أعطت قوة كبيرة لـ PHP.
  • من السهل تطوير أي نوع من CMS بسرعة.

بايثون:

  • سهولة الصياغة والقراءة، وسهلة التعلم للذين لا يمتلكون خبرة في البرمجة.
  • لغة برمجة أغراض عامة.
  • لغة برمجة كائنية التوجه.
  • بايثون مناسبة جدا لـ glue.
  • مكتبة قياسية ضخمة، كمثال عشوائي، تملك بايثون محللين لـ XML، قراء وكتّاب لملفات zip وcsv، مكتبات لاستخدام كل بروتوكول إنترنت ونوع بيانات، الخ.
  • هياكل بيانات متطور كالقوائم والقواميس.
  • أطر كبيرة لتطوير الويب مثل جانغو وFlask.

روبي:

  • تعتبر روبي لغة كائنية التوجه أكثر من بايثون وPHP.
  • تم تطوير روبي لجعل عمل المطور سهل.
  • تسمح الإضافات الأصناف والوحدات المستدعية بالتوسع والتغيير عن طريق الشيفرة البرمجية الخاصة بالمستخدمة بعد استدعائها، فالأصناف لا تغلق في روبي، حيث يمكنك تغييرها لاحقا.
  • كتل الشيفرة البرمجية الخاصة بروبي أقوى من lambda الخاص ببايثون.
  • كل شيء يرجع قيمة (بما في ذلك بيان ‘if’) ، وبسبب هذا، من السهل كتابة شيفرة برمجية مشابهة للدالة مقارنة بالبايثون وأسهل عند سلسلة الأوامر.
  • مكتبات Gem الخاصة بالروبي، فالكثير من gem المتاحة تجعل فعل أي مهمة سهلةً بأقل جهد.
  • قوة روبي في تطوير الويب هو إطار ريلز، فهو سحري جدًا، فلن تحتاج إلى القلق بشأن الوظائف الأساسية لتطوير الويب مثل التعديل والحذف البسيط، بل يمكنك التركيز على الخوارزميات المعقّدة الأخرى.
  • يعتقد الروبي في إعطاء المبرمج الحرية والقوة.

ما هي نسبة وظيفة/مطور وما متوسط رواتب المطورين؟

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

استنتاج عام:

دعونا نلخص كل هذا باختصار:

  • PHP وبايثون سهل التعلم بالنسبة للمبتدئين.
  • PHP هي الأكثر طلبًا في العمل.
  • PHP جيّدة للمواقع الصغيرة. (على الرغم من أن هنالك الكثير من المواقع الكبيرة مثل فيسبوك و ويكيبيديا مكتوبة بلغة PHP لكن ضمّن إليها لغات أخرى. تغيير موقع من لغة برمجة إلى لغة أخرى ليست مهمة سهلة).
  • بايثون هي أفضل لغة للأغراض العامة.
  • تُفضل إطارات بايثون (جانغو) وروبي (ريلز) أكثر من أي إطار آخر لبرمجة الويب.

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

ترجمة -وبتصرّف- للمقال PYTHON vs PHP vs RUBY لصاحبه Harish Kumar



6 اشخاص أعجبوا بهذا


تفاعل الأعضاء


لغات البرمجة كتيرة متنوعة لكن الفرق و الاختلاف في استخدامات كل لغة ففي بعض المشاريع قد.تحتاج الى 3 لغات او اكتر على حسب الكود ...

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية


يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن