تحليل قوة بقاء بايثون – و3 طرق يمكن أن تتحسن بها اللغة

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

يوضح الرسم البياني أعلاه النسبة المئوية لاستعلامات Stack Overflow للغات البرمجة الشائعة منذ عام 2009.
وكما ترون، كانت لغة Python قريبة من القاع في أوائل عام 2010، قبل أن تشهد ارتفاعًا حادًا تحول إلى ارتفاع سريع في نهاية العقد الماضي. – مسار لم يتباطأ.
أحد الاستنتاجات التي يمكن أن تتوصل إليها من هذا الرسم البياني هو أنه ربما زادت استفسارات بايثون لأنها لغة صعبة تتطلب من الأشخاص طرح الكثير من الأسئلة حولها.
ومع ذلك، لا أعتقد أن هذا هو الحال: باعتباري شخصًا يتمتع بخبرة كبيرة في C++ أيضًا، سأعتبرها لغة أكثر صعوبة وتستحق طرح الأسئلة، ومع ذلك لم تشهد نفس الارتفاع في بيانات Stack Overflow.
أعتقد أن ما قد يستنتجه معظم الناس هو أن لغة بايثون أصبحت ذات شعبية كبيرة.

لإضافة رؤية إضافية، يوضح هذا المخطط عدد مقترحات تحسين لغة Python (أو PEPs) منذ عام 2000.
PEP هو كيف يجادل أحد أعضاء مجتمع Python من أجل تغيير الميزات أو المكتبة القياسية لـ Python، أو كيفية عمل اللغة في عام، ثم تتم مناقشة هذا الاقتراح ومناقشته والتصويت عليه لتحديد ما إذا كان يجب أن يدخل حيز التنفيذ أم لا؛ وبسبب كل هذه المشاركة، يمكن أن يكون عدد الأشخاص السياسيين بمثابة مقياس تقريبي لمدى نشاط اللغة.
عندما تنظر إلى الوراء، يمكنك رؤية الكثير من الشخصيات السياسية البارزة في أوائل العقد الأول من القرن الحادي والعشرين، عندما كانت اللغة تتشكل بالفعل في لغة بايثون التي نعرفها اليوم، تليها الكثير من القمم والوديان حتى عام 2012 تقريبًا، عندما وصلت كمية الأشخاص السياسيين السياسيين إلى مستوى عالٍ ومستوى النشاط المستمر حتى عام 2019.
يُظهر كلا المخططين ارتفاعًا طفيفًا في نشاط مجتمع بايثون وشعبيته في عام 2012، وهو وقت ظهور بايثون 3.3.
عندما قامت بايثون بالتبديل إلى بايثون 3 – حيث قامت بكل شيء بإصدار لم يكن متوافقًا مع بايثون 2 – كان ذلك مشروعًا دام عقودًا ومخاطرة كبيرة وقد أتى بثماره بشكل واضح.
من خلال تجربتي، كان Python 3.3 هو الوقت الذي بدأت فيه اللغة العمل بشكل موثوق وقوي دون الحاجة إلى الكثير من الهندسة الإضافية، ويمكن استخدامه بشكل موثوق في المشاريع مع العلم أن جميع القطع التي تحتاجها موجودة هناك.
كل هذا يعمل على خلق مبرمجين سعداء، والمبرمجون السعداء متحمسون للتغذية الراجعة للغة، وكتابة مكتباتهم الخاصة، وتقديم المقترحات والحفاظ على ازدهار النظام البيئي.
عندما يحدث ذلك، تستمر اللغة في النمو، والباقي هو التاريخ.
4 حقائق أساسية عن بايثون اليوم
إذا تعرفت على ما كانت تبدو عليه بايثون بالأمس، فقد تتساءل: ماذا عن الآن؟ هل يجب أن أتعلم بايثون؟ هل هو شيء يجب أن أستثمر فيه الوقت؟ هل يمكنني المراهنة على دعمه ووجود مجموعة قوية من المطورين لفترة من الوقت؟
عندما أفكر في المخططين اللذين قمت بمشاركتهما سابقًا، تم توضيح بعض الحقائق حول بايثون بالنسبة لي، وأشعر أن هذه الحقائق يمكن أن تساعد في الإجابة على بعض هذه الأسئلة.
- تتمتع لغة بايثون بشعبية كبيرة: قد يبدو تكرار ذلك أمرًا تافهًا، لكن يجب علينا أن نعترف بالدور الذي تلعبه شعبية اللغة في قدرتها على البقاء. إذا لم يستخدمه الناس، فمن المحتمل أن يموتوا. يستخدم الناس (ويستمتعون باستخدام) بايثون.
- مستوى شعبية بايثون هو الاكتفاء الذاتي: مع هذه الشعبية الهائلة تأتي فكرة نظام الاكتفاء الذاتي؛ سوف تستمر بايثون في تجربة الاستخدام على نطاق واسع إلى حد كبير لأنها موجودة بالفعل. سيكون من الصعب للغاية إزاحته في هذه المرحلة.
- إن سهولة التعامل مع لغة بايثون تجعلها جذابة: إن الصفات الفطرية لبايثون، والطريقة التي تعمل بها اللغة وتشعر بها، ستستمر في جذب المطورين إليها – وربما الأهم من ذلك، جذب غير المطورين. الكثير من نجاح بايثون جاء من حقيقة أن الأشخاص الذين ليس لديهم درجة علمية في علوم الكمبيوتر، والذين لا يرغبون في الدخول في أنظمة الكتابة أو غيرها من البرامج الباطنية، يمكنهم الدخول إلى بايثون بسهولة تامة، لأنه من الممتع العمل معها.
- تتمتع Python بقاعدة مطورين نشطة تقدم أفكارًا جديدة: مع وجود الكثير من الأشخاص الذين يساهمون بأشخاص سياسيين والتزامهم بالمكتبة القياسية والنظام البيئي، فإن Python جاهزة وقادرة على جذب الأفكار الخارجية في المستقبل التي يمكن أن تستمر في تحسين اللغة. تعد قاعدة المطورين النشطة هذه بمثابة حجر الأساس للنمو المستدام لبيثون.
بايثون هي لغة ذات تحديات طويلة الأمد وفرص كبيرة
باختصار، أتوقع أن تكون بايثون في المستقبل أكثر حداثة وفخامة، ولا يزال لديها شعور متقلب بدعم المجتمع ومشاركة المطورين، ولكنها ربما ليست محمومة وحاقدة كما كانت في الماضي (أولئك الذين عاشوا قد يعرف الانتقال المؤلم من Python 2 إلى Python 3 ما أتحدث عنه.)
للوصول إلى هذه المرحلة من عمر بايثون، أعتقد أننا بحاجة إلى رؤية العديد من المشاكل الرئيسية المحتملة يتم معالجتها بطريقة ذات معنى.
أقول “المحتملة” مع النية، لأنني أعتقد أن جميع القضايا التي سأطرحها تحمل في طياتها فرصًا بقدر ما تنطوي عليه من نقاط الألم.
المشكلة المحتملة رقم 1: الأدوات مربكة
في البداية، كانت هناك distutils (الطريقة القديمة لبناء الحزم في بايثون)، وكانت تعمل بشكل جيد. كلما ضغطنا عليه أكثر، كلما اكتشفنا أماكن لم يفعل فيها ما نحتاج إليه.
الآن، ما يواجهه مطورو Python الجدد هو الكثير من الأدوات والتقنيات التي تنتهي بـ “env” لسبب ما – Pyenv وPyvenv و Virtualenv و Pipenv وما إلى ذلك، بالإضافة إلى أشياء مثل Twine وPIP و Flit و Poetry – التي يستخدمونها يجب أن يلتفتوا إلى رؤوسهم إذا كانوا يريدون بناء أي شيء سوى أبسط أنواع برامج بايثون.
في الحقيقة، لا شيء من هذه الأمور معقد إلى هذا الحد؛ لديهم جميعا وظيفة ويقومون بها بشكل جيد.
لكن عندما تصبح مبرمجًا جديدًا، يمكنك قراءة منشور مدونة واحد والحصول على مسار معين من خلال هذه التقنيات، والقراءة في مكان آخر والحصول على مسار جديد تمامًا، حتى تجد في النهاية أنه يتعين عليك معرفة ما يفعلونه جميعًا قبل أن تتمكن من صنعه اختيار ما هو مناسب لك.
وهذا يمثل مشكلة.
إنها نفس المشكلة التي تعاني منها لغات مثل JavaScript أو Node: بالنسبة للمبتدئين، هناك مجموعة كاملة من التقنيات للاختيار من بينها، ومن السهل التجول فيها.
حل ممكن:
تعلم بايثون أن هذه مشكلة، لذا أعتقد أننا سنرى الأمور تستقر في بعض الأدوات الأساسية خلال السنوات القليلة المقبلة لإنشاء تجربة أكثر سلاسة للمبتدئين. سنرى هذه الأدوات تندمج في شيء يوفر مدخلاً أفضل إلى اللغة.
بنفس الطريقة التي أصبح بها pytest هو المعيار الذهبي غير الرسمي لإجراء الاختبار في Python، سنصل إلى نقطة مماثلة من خلال أدواتنا المتعلقة بالتعبئة وتحميل الحزم (وجميع الخدمات اللوجستية هناك) مع استمرار المطورين المغامرين في جلبها طرق جديدة لجعل اللغة أكثر سهولة للمبتدئين من خلال التخلص من هذا الحساء من المصطلحات.
المشكلة المحتملة رقم 2: الانتفاخ في المكتبة القياسية
في الأيام الأولى لبايثون، اكتسبت اللغة شعبية لتحمل وعد “البطاريات متضمنة”: هناك مكتبة قياسية من الحزم التي تحصل عليها مع كل تثبيت بايثون، لذلك بغض النظر عما تكتبه، نضمن لك تضمين هذه الحزم.
إذا كنت تريد إعطاء شيء ما لصديقك لتشغيله، فلن يحتاج إلى أي تثبيتات خاصة – كل ما تحتاجه هو لغة Python، وسوف يعمل.
هناك الآن فكرة متزايدة مفادها أن فكرة وجود مثل هذه المكتبة القياسية الكبيرة قد وصلت إلى نهايتها، وهي بمثابة طائر القطرس حول عنق مطوري بايثون الأساسيين المكلفين بالمحافظة عليها، خاصة عندما تفكر في مجموعة من الأشياء الموجودة في المكتبة القياسية يعود تاريخه إلى بروتوكولات حقبة الثمانينات التي عفا عليها الزمن منذ فترة طويلة.
حل ممكن:
يقترح PEP 594 التخلص من هذه “البطاريات الميتة” من المكتبة القياسية، مما يسمح ببذل الجهد في أشياء أكثر أهمية مثل وقت التشغيل أو المكتبات المهمة حقًا.
ولأخذ هذه الخطوة إلى الأمام، يمكنني أيضًا رؤية المستقبل حيث لدينا مكتبة قياسية لامركزية، بحيث إذا احتاج المطور إلى استخدام إصدار مختلف من datetime أو pathlib، على سبيل المثال، فلن يحتاج إلى أن يكون عالقًا في إصدار معين الإصدار في وقت تشغيل بايثون الخاص بهم.
المشكلة المحتملة رقم 3: جيل
ربما لا يعرف العديد من مطوري Python ما هو قفل المترجم العالمي (أو GIL)، وهم محظوظون.
للمبالغة في تبسيط الأمر دون التعمق أكثر، فهذا يعني في الأساس أنه يمكن أن يحدث شيء واحد فقط في برنامج بايثون الخاص بك في كل مرة؛ حتى لو كان لديك عدة سلاسل رسائل، على سبيل المثال، يمكن لواحد فقط أن يحرز تقدمًا لأنه يتعين عليك الاحتفاظ بـ GIL لإحراز تقدم.
لأسباب واضحة (مثل الرغبة في تشغيل أكثر من شيء واحد في وقت واحد)، كان GIL شوكة في خاصرة بايثون لفترة من الوقت.
حل ممكن:
في حين أن GIL لا يحتاج حقًا إلى الوجود بعد الآن من الناحية النظرية، إلا أنني لا أعتقد أنه سيختفي في أي وقت قريب.
أعتقد أنها ستستمر في المناقشة، لأنه سيكون هناك دائمًا مجموعة فرعية من المهووسين ببايثون (وهذا ما أقوله بكل حب) والذين سيولون اهتمامًا عميقًا حقًا ويريدون مواصلة العمل على GIL لأنه تقني للغاية.
إنهم مفتونون به. لكن الجانب الآخر هو أنه نظرًا لأنه تقني للغاية، سيكون من الصعب حقًا إزالة GIL بسبب التفكير النظامي العميق المطلوب، وهو ما منع حدوثه.
أحد إيجابيات إزالة GIL هو أنها يمكن أن تطلق العنان لبعض “القوى العظمى” الجديدة القوية جدًا في بايثون فيما يتعلق بالبرامج التي يمكنك إنشاؤها، ولكنها لن تكون ذات صلة حقًا بمعظم مستخدمي بايثون لأنهم يبنون برامج لا تفعل ذلك.
تعتمد على الأشياء التي تسير بالتوازي. يمكن أيضًا معالجة العديد من مشكلات GIL بطرق أخرى، مثل المترجمين الفوريين الفرعيين أو حلول مثل التزامن.
بالنسبة للمهتمين بمستقبل بايثون، فإن مراقبة مجالات المشكلات الثلاثة هذه (والمناقشة حولها في المجتمع) ستكون أمرًا مهمًا حقًا.
الخبر السار: مستقبل بايثون مشرق
إذا كنت تريد أن تعرف كيف سيكون الطقس غدًا، يمكنك استخدام البارومتر.
لكن إذا لم يكن لديك مقياس بارومتر، فإن أفضل طريقة لمعرفة كيف سيبدو الطقس غدًا هي النظر إلى الطقس اليوم.
أعتقد أن الشيء نفسه ينطبق على بايثون: إنها تحظى بشعبية كبيرة وواسعة الانتشار، وبالتالي سنراها في نفس الأماكن التي تتواجد فيها اليوم.
إذن أين تلك الأماكن؟
تكوين السحابة والأتمتة، والبرمجة النصية للتطبيقات، وإدارة النظام
تعد لغة Python ضخمة في هذه المجالات للعديد من نفس الأسباب التي تجعلها شائعة بشكل عام: فهي سهلة الوصول إليها وقابلة للاختراق، والأشخاص الذين يعملون في هذه المجالات يحبون استخدامها.
ليس من الضروري أن أذهب وأقوم بتجميع أي شيء؛ يمكنني فقط إجراء تغيير على البرنامج النصي الذي يقوم بعمل مسؤول النظام الخاص بي ويتم ذلك على الفور. تميل البرامج التي تعمل بهذه الطريقة إلى البقاء لفترة طويلة.
تطوير الشبكة
هناك الكثير من تقنيات Python التي تقوم بتشغيل خوادم الويب في أماكن مختلفة، وأصبحت أطر العمل مثل Django وPyramid وFlask شائعة، وأعتقد أننا سنستمر في رؤية ذلك.
وذلك لأن هذه الأدوات قوية وممتعة للاستخدام – ومن خلال امتلاك تقنية Python التي يمكنني استخدامها لإنشاء خادم ويب، فإنه يجعل من السهل استخدام بعض تقنيات Python الأخرى التي تقوم بعمل خاص بالمجال وتوصيل خادم ويب في الأعلى منه حتى أتمكن من عرضه على شبكة الإنترنت.
في هذه الأيام، يجب أن يكون كل شيء مرتبطًا بالويب، وهذا يجعل من السهل التعامل مع لغة بايثون.
المتحكمات الدقيقة
هناك كمية مذهلة من لغة بايثون المستخدمة في العمل الذي يجري في وحدات التحكم الدقيقة.
تاريخيًا، كان هذا هو المكان الذي تتألق فيه لغة C حقًا، ولكن لدينا الآن مشاريع مثل MicroPython وCircuitPython التي تجعل العمل على المعالجات الدقيقة أكثر سهولة.
سنرى المزيد والمزيد من لغة بايثون في هذا المجال، خاصة مع حجم العمل المضمن الذي يقوم به الأشخاص طوال الوقت في Arduinos وRaspberry Pi كهوايات.
الحوسبة العلمية
بايثون هي المعيار في الحوسبة العلمية هذه الأيام، حيث حلت محل MATLAB إلى حد كبير، مع نظام بيئي كبير من الأدوات للقيام بجميع أنواع العمل العلمي منخفض المستوى ومتعدد التخصصات (مثل NumPy وpandas وNumba) بالإضافة إلى المكتبات الخاصة بالمجال (مثل Biopython وAstropy).
أحد الأسباب الرئيسية لسيطرة بايثون (وسوف تستمر في الهيمنة) على الفضاء العلمي هو أن معظم الباحثين والعلماء لا يريدون أن يصبحوا مبرمجين خبراء؛ Python هي طريقة منخفضة الاحتكاك وخفيفة الوزن للحصول على ما يكفي من البرمجة حتى يتمكنوا من القيام بعملهم مع أن تصبح البرمجة وظيفتهم.
المصدر: pluralsight
قد يهمك: