نعم اللغة بطيئة لعدة أسباب. لكنها ليست هي عنق الزجاجة. ما معنى هذا الكلام؟ معنى هذا الكلام أن الإنتقال إلى لغة أخرى لن يحل مشكلتك. لندع الأرقام تتكلم.
لنقل أن لدينا تطبيق ويب مكتوب بلغة 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) خفيفة وسريعة لأن بديل ذلك هو الإستعلام الدوري للخادم كل نصف ثانية مثلا وهذا مكلف (هل لدي رسائل جديدة؟ لا طيب هل لدي رسائل جديدة؟ لا طيب ...).
التعليقات