نعم اللغة بطيئة لعدة أسباب. لكنها ليست هي عنق الزجاجة. ما معنى هذا الكلام؟ معنى هذا الكلام أن الإنتقال إلى لغة أخرى لن يحل مشكلتك. لندع الأرقام تتكلم.
لنقل أن لدينا تطبيق ويب مكتوب بلغة php يرد ب 50 ميلي-ثانية وآخر يؤدي نفس الوظيفة يرد بنصف ميلي ثانية. هذا يعني أن بايثون أسرع من php ب 100 مرة! لكن هل توفير 45.5 ميلي-ثانية من ال 10 الثواني التي ينتظرها المستخدم يفرق في شيء!!
إن هناك الكثير من الوقت يضيع في استعلامات mysql لكن أغلب الوقت يضيع على المتصفح مثلا
ملفات js تعيق إخراج الصفحة (الصواب أن توضع في ذيل متن الصفحة وليس في أولها)
أن تطلب ملفات js بالتوازي async non-render blocking
أن تجمع ملفات js في ملف واحد وأن تجمع ملفات css في ملف واحد لتوفير عدد الطلبات
إن كانت الأيقونات قليلة توضع base64 في css أو في sprite
تصضغير وضغط الملفات سابقة الذكر
أن تخبر المتصف أن يحتفظ بها عنده ولا يطلبها (ولا حتى يتأكد من عدم تغيرها) وهو ما يعرف باسم public caching
يمكنك أن تذهب أبعد من ذلك كأن تستخدم js في القولبة وترييح الخادم.
هناك أشياء لا يمكن القيام بها في php مثل socket.io وهي مدعومة بعدة بغات ليس من بينها php. تستخدم socket.io في عمل اتصال ثنائي الإتجاه يتم فيه تبادل الرسائل أو الأحداث وهذا يستخدم لعمل تطبيقات محادثة (أو أي شيء جماعي يشبه تطبيق trello) خفيفة وسريعة لأن بديل ذلك هو الإستعلام الدوري للخادم كل نصف ثانية مثلا وهذا مكلف (هل لدي رسائل جديدة؟ لا طيب هل لدي رسائل جديدة؟ لا طيب ...).
استخدم YSlow من ياهو أو PageSpeed من غوغل وستجد أن الكثير من المواقع العربية صفحاتها تحتاج من 5 إلى 10 ثواني حتى تكتمل أو تصبح قابلة للتفاعل Ready مع أن الخادم يرد خلال أقل من ثانية
اي لغة يمكن ان تكون بطيئة ان استخدمها مبرمج لا يستطيع استغلال كامل الطاقة التي تتيحها اللغة
فمثلا بما انني غير متمرس على لغة سي ، فقد اقوم على برمجة برنامج سي يحتاج لربع ساعة في التنفيذ بينما يقوم مبرمج سي محترف اخر ببرمجة نفس البرنامج لينفذ في جزء من الثانية.
برايي المشكلة الاساسية ليست مشكلة بطئ بي اتش بي او سرعة بايثون. المشكلة الاساسية هي في المبرمج نفسه.
نعم اللغة بطيئة لعدة أسباب. لكنها ليست هي عنق الزجاجة. ما معنى هذا الكلام؟ معنى هذا الكلام أن الإنتقال إلى لغة أخرى لن يحل مشكلتك. لندع الأرقام تتكلم.
لنقل أن لدينا تطبيق ويب مكتوب بلغة php يرد ب 50 ميلي-ثانية وآخر يؤدي نفس الوظيفة يرد بنصف ميلي ثانية. هذا يعني أن بايثون أسرع من php ب 100 مرة! لكن هل توفير 45.5 ميلي-ثانية من ال 10 الثواني التي ينتظرها المستخدم يفرق في شيء!!
إن هناك الكثير من الوقت يضيع في استعلامات mysql لكن أغلب الوقت يضيع على المتصفح مثلا
ملفات js تعيق إخراج الصفحة (الصواب أن توضع في ذيل متن الصفحة وليس في أولها)
أن تطلب ملفات js بالتوازي async non-render blocking
أن تجمع ملفات js في ملف واحد وأن تجمع ملفات css في ملف واحد لتوفير عدد الطلبات
إن كانت الأيقونات قليلة توضع base64 في css أو في sprite
تصضغير وضغط الملفات سابقة الذكر
أن تخبر المتصف أن يحتفظ بها عنده ولا يطلبها (ولا حتى يتأكد من عدم تغيرها) وهو ما يعرف باسم public caching
يمكنك أن تذهب أبعد من ذلك كأن تستخدم js في القولبة وترييح الخادم.
هناك أشياء لا يمكن القيام بها في php مثل socket.io وهي مدعومة بعدة بغات ليس من بينها php. تستخدم socket.io في عمل اتصال ثنائي الإتجاه يتم فيه تبادل الرسائل أو الأحداث وهذا يستخدم لعمل تطبيقات محادثة (أو أي شيء جماعي يشبه تطبيق trello) خفيفة وسريعة لأن بديل ذلك هو الإستعلام الدوري للخادم كل نصف ثانية مثلا وهذا مكلف (هل لدي رسائل جديدة؟ لا طيب هل لدي رسائل جديدة؟ لا طيب ...).
ماذا تقصد بال 10 الثواني التي ينتظرها المستخدم؟
استخدم YSlow من ياهو أو PageSpeed من غوغل وستجد أن الكثير من المواقع العربية صفحاتها تحتاج من 5 إلى 10 ثواني حتى تكتمل أو تصبح قابلة للتفاعل Ready مع أن الخادم يرد خلال أقل من ثانية
اي لغة يمكن ان تكون بطيئة ان استخدمها مبرمج لا يستطيع استغلال كامل الطاقة التي تتيحها اللغة
فمثلا بما انني غير متمرس على لغة سي ، فقد اقوم على برمجة برنامج سي يحتاج لربع ساعة في التنفيذ بينما يقوم مبرمج سي محترف اخر ببرمجة نفس البرنامج لينفذ في جزء من الثانية.
برايي المشكلة الاساسية ليست مشكلة بطئ بي اتش بي او سرعة بايثون. المشكلة الاساسية هي في المبرمج نفسه.
+1
اهتم بسرعة أكوادك و اعصرها تنقيحا و تجويدا و اختباراً للأداء ثم نتحدث عن بطى لغات البرمجة
لاا ليست بطيئة,
بطيئة من اي ناحية؟
بعض اللغات بطيئة في اشياء وبعض اللغات اسرع في اشياء
عموما اللغات المفسرة مثل لغة PHP تعتبر أبطأ من اللغات المترجمة مثل C++