PHP 8.2: ما الجديد؟
الإصدار الجديد من PHP على الأبواب. ما هي التطبيقات الجديدة التي يجب أن تعرفها؟ راجع هذه المقالة لمعرفة ذلك!
بصفتي مطور PHP، ما زلت أتذكر أيام PHP4، وأول تطبيق GC (اختياري!) في PHP5، وعشتُ _ضجة_ ظهور PHP7 وتداعياته.
على مر السنين سألني الكثير من الناس لماذا أزعج نفسيتي البرمجة في PHP، ولسنوات عديدة كنت أسمع مثل التعويذة حجتين متكررتين لماذا يجب أن أتوقف وأبدأ في كتابة البرامج التجارية بلغات مثل جافا أو C#
سأقوم اليوم باقتباس هذه الحجج ومحاولة تغيير موقفك تجاه PHP على الأقل قليلاً. أجل، عنوان هذا المقال عبارة عن طعم نقر سخيف.
PHP تحتضر عامًا بعد عام. لغة الويب التي كانت في يوم من الأيام الأكثر شعبية على شبكة الإنترنت تفقد شعبيتها الآن شهرًا بعد شهر، ومعظمها JavaScript.
عندما تنظر إلى الأرقام، ستجد أن الحقيقة واقعية! خلال العام الماضي PHP خسرت 1.61 تيرابايت و61 تيرابايت و61 تيرابايت من حصتها كلغة خلفية للويب.
إذا كان PHP يستمر هذا الاتجاه التنازلي خلال 18 عامًا PHP ستنخفض إلى أقل من 50% من تقنية الويب الخلفية!
لكن حسناً، لنضع النكات جانباً - على الرغم من أن الأرقام حقيقية كما ذكرت W3CTechs.
أول إشارة إلى أن PHP يحتضر يمكن العثور عليه على الويب منذ عام 2013. في ذلك الوقت برنامج حامل السلاح نشر مقالاً (والذي بالمناسبة أنا أوصي به بشدة!) قائلاً إن PHP سيموت لأنه لا يدعم العمليات طويلة الأمد ولأنه يفتقر إلى عدم التزامن.
وهذه حقيقة, PHP لم يُصنع من أجل ذلك!
إذا كان كل ما لديك هو مطرقة، فكل شيء يبدو كمسمار
لكن بالعودة إلى الأرقام - دعنا نلقي نظرة على بيانات العام الماضي حول PHP الإصدارات المستخدمة في حزم Packagist. تتوفر أحدث البيانات في موقع المصدر packagist.org
هل هذا هو منحنى التبني للإصدارات الجديدة من لغة برمجة تحتضر؟
إذا لم يكن ذلك كافياً، دعنا نتحقق من "معدل وفيات PHP" مقارنةً باللغات الأخرى.
البيانات المستخدمة في التحليل مأخوذة منGitHut 2.0الذي يولد مخططًا بيانيًا لعدد دفع git
لكل لغة على موقع Github منذ عام 2012، وفقًا للمخطط - "يُظهر توزيع النسبة المئوية للغة في الرسم البياني الخطي أفضل 10 لغات (أو اللغات العشر الأولى) منذ عام 2012/ الربع الثاني".
كما ترى PHP بالإضافة إلى لغات أخرى شائعة مثل Ruby و C/C++, Python قد شهدت انخفاضًا كبيرًا في شعبيتها على Github في السنوات الأخيرة، ومع ذلك هناك اتجاه تصاعدي ونتوقع أن تعود إلى مراكز عالية بعد فترة جانبية أطول. (هذه ليست نصيحة استثمارية)
البداية الضجيج
للغة جافا سكريبت يمكن رؤيتها في نفس الرسم البياني. سأترك بالفعل الاستنتاجات وتحليلها لك عزيزي القارئ.
ولكن مرة أخرى - لا ينبغي أن تميل لغة تحتضر إلى زيادة عدد عروض العمل للمبرمجين، أليس كذلك؟
حتى لحظة كتابة هذا المقال، يمكنني الاختيار من بين 171 عرض عمل على إحدى بوابات الوظائف الرائدة في بولندامنها ما يصل إلى 50 منها للناشئين. PHP يحتضر، أليس كذلك؟
وبالحديث عن المال... هل تعلم أن PHP ومصدره الكود منذ نوفمبر 2021 من قبل المصدر المفتوح المستقل المجتمعمؤسسة PHP والتي يدفع مبلغاً كبيراً من المال لمطوري المصادر المفتوحة للمساهمات في php-src
?
على عكس اللغات والأطر الأخرى، والتي غالبًا ما تكون مملوكة لشركات كبيرة، فإن التطوير الأساسي الفريق تُدفع مباشرة من حساب المؤسسة الذي يُدار من خلال مساهمات من شركات خاصة مثل JetBrains وSymfony Corp، وكذلك منمساهمات صغيرة من المطورين الأفراد.
المصدر المفتوح بكل مجده!
نعم، هذه الحجة تأتي دائمًا من أفواه المطورين الذين أصبحوا على دراية باللغات القوية والمقارنة.
بالنظر إلى الرسم البياني للبيانات التي تم جمعها خلالاستطلاع StackOverflow من عام 2021، يمكنك أن ترى أن ما يصل إلى 10,834 مستجيبًا يمثلون ما يقرب من 60% من الإجمالي وجدوا أن PHP "مروعًا".
بصفتك من المدرسة القديمة مبرمج PHP، أفهم سبب ذلك. أتذكر على الفور مثالاً كلاسيكياً لمشاكل الذاكرة في PHP:
<?php
فئة FOO {
عام $F;
}
صنف BAR {
عام $f;
}
بينما(1) {
$a = جديد FOO();
$b = جديد BAR();
$a->f = $b;
$b->f = $a;
طباعة "استخدام الذاكرة: " . num_format(memory_get_usage(true)) . " بايت ن";
إلغاء تعيين($a);
unset($b);
}
بالنسبة للمبتدئين - نعم، يتسبب الرمز أعلاه في حدوث خطأ في الذاكرة. وهناك المزيد. من التسمية الغبية للطرق والافتقار الكامل للمنطق في ترتيب معلماتها (نعم، جميعنا نحب ش_
و مصفوفة_
) إلى الخطأ الأكثر شهرة في PHP ر_باماييم_نكودوتاييم
- PHP مليء بمراوغات ورذائل الإصدارات القديمة. هذا لا يعني أن ما سمعناه عن PHP قبل بضع سنوات لا تزال صحيحة. لقد شهدت اللغة تحولاً هائلاً، ويسعدني اليوم أن أنظر إلى تعريفات الكائنات التي لدي:
للقراءة فقط فئة الإعلام بالحدث
{
دالة عامة __بناء(
سلسلة عامة $context,
عام مستخدم $user,
عام السلسلة $body,
العمومية DateTime $issuedAt,
) {}
}
علاوة على ذلك، فإن النظام البيئي PHP نمت بشكل هائل، ولدينا الآن فرص مذهلة لإنشاء شيفرة برمجية جيدة ومكتوبة بشكل جيد ومختبرة بشكل جيد. يمكننا استخدام سيمفوني لتطوير تطبيقات DDDD دون أي مشاكل كبيرة، ويمكننا التغلب على مشكلة تزامن PHP باستخدام ناقل الرسائل.
وعلى الرغم من أنني شخصياً لا أعتقد أن PHP مناسبة لإنشاء عمليات خلفية طويلة الأمد، ولديها مشاكل كبيرة في الأداء عندما يتعلق الأمر بمزامنة الحالة، كما أنأنشأ لعبة وحدة تحكم PHP باستخدام Symfony + Docker بيدي كمثال على أن PHP يمكن أن يكون له استخدامات غير تقليدية.
آخر ميزة PHP هو حاجز الدخول المنخفض للمطورين الجدد. وثائق اثنين من الأطر الشعبية سيمفوني ولارافيل و PHP الوثائق نفسها كافية للدخول إلى عالم الخلفية بمساعدتهم. عالم ليس مثاليًا في PHP ولكنه يسمح بالكثير. باستخدام مكتبات إضافية مثل Laravel Nova يمكننا إنشاء أي مكون من مكونات نظامنا تقريبًا بأمرين فقط.
هل PHP الموت؟
لا، لكنها تعاني من مشكلة في الصورة وتحتاج إلى الكثير من العمل لتحسينها. علينا، نحن المبرمجين، القيام بهذا العمل من خلال تعليم الجيل الجديد وتمرير أفضل الممارسات في شكل مقالات ومكتبات ونصائح.
باعتبارها لغة كانت على السوق لمدة عشرين عامًا، والتي نجت بالفعل من أكثر من الضجيج
(هل تتذكر Objective-C؟) أعتقد أنه سيتعامل مع الأمر ويجد مكانته.
ومن يدري، ربما تكون توقعاتي صحيحة ويزدهر PHP 10.x مرة أخرى في غضون عامين؟