لمن فاتح جزئي الموضوع

https://arabia.io/programmi... https://arabia.io/programmi...
  • في كثير من الأحيان اختيار اللغة أو مفسر اللغة ليس له أثر كبير بقدر ما لاختيار طريقة تنفيذ الخارزمية

    • اللغة ليست عنق الزجاجة (مثلا إن كانت لغة ما تدور 500 مرة لحسب الأرقام حتى 1000 ألف بأقل من ربع ثانية من لغة أخرى فهذا يعني أن الفرق بين اللغتين على الدورة الواحدة هو لا شيء)
    • إن استخدام الأداة غير المناسبة في نفس لغة البرمجة قد يكلفك كثيرا (في php استعمال in_array استغرق أكثر من 10 دقائق أي أكثر ب 130 ضعف من استعمال المفتاح أو الفهرس حيث لم يزد عن 5 ثوان)
    • المفسرات المختلفة لنفس اللغة لها أداء مختلف: مفسر بايثون المكتوب على بايثون pypy بميزة JIT استطاع تسريع الكود من ثانية ونصف إلى نصف ثانية مقارنة مع مفسر بايثون المكتوب بلغة سي
    • مفسر لوا بتقنية Jit كان أسرع من مفسر لوا العادي بل وكان الأسرع على الإطلاق وهو حقق أرقام قريبة أو أسرع من سي/سي++
    • المفسرات المنقولة إلى جافاسكربت كما في repl.it كانت مخيبة للآمال مثلا بايثون استغرقت عدة دقائق في حين أن أكبر خيبة كانت لوا فهي استغرقت ثلث ساعة!!! (مع أنه من المفروض أن لوا أسرع من بايثون)
    • بعض طرق التحسين البسطة كان لها أثر كبير (مثل إخراج أخذ الخاصية obj.method خارج الحلقة التكرارية) في بايثون.
  • الكود في بعض اللغات مثل بايثون سهل القراءة جدا دون بذل أي جهد بل هو أسهل من قراءة الخوارزمية باللغة البشرية لكن في لغات أخرى مهما بذلت جهدك فالكود سيظل مثل الشوربة.

  • جافا تميل لما يسمى JAR Hell فهي تأتي دون بطاريات

https://arabia.io/go/10358/...
  • التحسين لحساب الذاكرة عبر yield قد يكون على حساب السرعة والعكس بالعكس

  • لغة سي/سي++ ذائعة الصيت الأفضل والأسرع لم يكن لها أفضلية على لوا جت.

  • اللغة المخدومة رغم ضعف بنيتها والهندسة القائمة وراءها مثل جافاسكربت كان لها أداء مميز بفضل تقنية JIT ومقدار ضخ الطاقات البرمجية في تحسينها. (كان نود أسرع من كروم لكن لعل السبب هو أشياء تتعلق بالواجهة الرسومية)

  • الفارق بين أداء سي/سي++ متدنية الإنتاجية وبين اللغات عالية الإنتاجية مثل بايثون وجافا لا يستحق التضحية بالإنتاجية فهو فارق هامسي.

  • على الرغم من ضعف مكتبة لوا إلا أننا نستطيع محاكاة التراكيب عالية المستوى مثل doubly linked lists بسهولة وعلى الطاير.