لماذا المستقبل ليس لبيثون

على الرغم من أن لغة البرمجة هذه ستكون مطلوبة لسنوات عديدة.



لقد استغرق مجتمع البرمجة عقودًا لتقدير Python. منذ بداية عام 2010 ، ازدهرت - وتجاوزت في نهاية المطاف C ++ و C # و Java و JavaScript في الشعبية.

ولكن إلى متى سيستمر هذا الاتجاه؟ متى سيتم استبدال بايثون في نهاية المطاف بلغات أخرى ، ولماذا سيحدث هذا حتمًا؟
إديسون برمجيات - تطوير الويب
تم دعم الترجمة من قبل إديسون.

نحن نعمل على تطوير تطبيقات في Python ، وكذلك نقوم باختبار البرمجيات .

نحن نحب ونستخدم Python على نطاق واسع! ؛-)

ما الذي يجعل بايثون مشهورة اليوم


يمكن الحكم على شعبية Python بواسطة StackOverflow ، إذا نظرت إلى عدد العلامات في المنشورات. بالنظر إلى حجم StackOverflow ، يعد هذا مؤشرًا موضوعيًا جدًا لشعبية اللغة.


أذكر في StackOverflow لبعض لغات البرمجة الشائعة - ديناميكيات التغييرات على مر السنين. ينمو أداء Python بثبات ، بينما ينخفض ​​المنافسون.

بينما كانت R على الهضبة خلال السنوات القليلة الماضية ، والعديد من اللغات الأخرى آخذة في الانخفاض بشكل مطرد ، يبدو نمو Python لا يمكن إيقافه. ما يقرب من 14 ٪ من جميع أسئلة StackOverflow تحمل علامة "python" ، وهذا الاتجاه ينمو فقط. وهناك عدد من الأسباب لذلك.

اختبار الزمن


بيثون موجودة منذ التسعينات. ليس الأمر فقط أنه كان لديه الكثير من الوقت للنمو. وأيضاً تشكل مجتمع كبير وداعم.

لذلك ، إذا واجهت أي مشاكل أثناء كتابة كود Python ، فهناك احتمال كبير أنه يمكنك حلها بسرعة باستخدام بحث Google. فقط لأن شخصًا ما قد واجه بالفعل مشكلة مماثلة وكتب شيئًا مفيدًا حول هذا الموضوع.

ودية للمبتدئين


والنقطة ليست فقط أن اللغة موجودة منذ عدة عقود ، حيث كتب المبرمجون عددًا من الكتب المدرسية الرائعة. صيغة بايثون قابلة للقراءة أيضًا.

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

وإذا كان لديك أي وقت مضى لمقارنة كود Python و C ++ ، فأنت تعرف كم يبدو Python أكثر قابلية للفهم. على الرغم من حقيقة أن C ++ تم تصميمه مع مراعاة اللغة الإنجليزية ، إلا أن هذه قراءة صعبة للغاية مقارنةً بكود Python.

عالمي


كانت Python موجودة منذ فترة طويلة ، قام خلالها المطورون بإنشاء العديد من المكتبات لجميع المناسبات. في الوقت الحاضر ، يمكنك العثور على الأداة المطلوبة لكل شيء تقريبًا.

الكثير من الأرقام والنواقل والمصفوفات؟ NumPy للإنقاذ.
حسابات الهندسة التقنية؟ استخدم SciPy .
تحليل البيانات الضخمة؟ سوف الباندا معرفة ذلك.
التعلم الآلي والشبكات العصبية والذكاء الاصطناعي؟ لماذا لا يتعلم Scikit ؟

بغض النظر عن المهمة الحسابية التي تواجهها ، هناك فرصة لوجود حزمة Python لها. وهذا يسمح للغة بالبقاء في الاتجاه ، وهو أمر ملحوظ من خلال الشعبية المتزايدة للتعلم الآلي على مدى السنوات القليلة الماضية.

عيوب بيثون - وهل يمكنها دفن اللغة


مستوحاة من الوضع الحالي ، يمكن للمرء أن يتصور أن Python هو جاد وطويل الأمد. ولكن ، مثل أي تقنية ، فإن Python لديها نقاط ضعفها. دعونا نفحص بالترتيب أهم العيوب ونقيم ما إذا كانت مميتة أم لا.

سرعة


Python بطيء. لا ، حسنًا ، بطيء جدًا. في المتوسط ​​، تستغرق المهمة 2-10 مرات أطول من اللغات المنافسة.

هناك أسباب لذلك. أولاً ، الكتابة الديناميكية - تذكر ، قلنا أعلاه أنها مريحة للغاية عندما لا تحتاج إلى تحديد أنواع البيانات ، كما هو الحال في اللغات الأخرى؟ الوجه الآخر للعملة هو الحاجة إلى استخدام كمية كبيرة من الذاكرة ، لأن البرنامج يحتاج إلى حجز مساحة كافية لكل متغير بحيث يعمل على أي حال. والذاكرة "ذات الهامش" تؤدي إلى إنفاق أكبر للوقت الحسابي.

ثانيًا ، يمكن لـ Python أداء مهمة واحدة فقط في كل مرة. هذا أيضًا نتيجة لأنواع البيانات المرنة - يجب أن تتأكد Python من أن نوع بيانات واحد فقط يتوافق مع كل متغير ، ويمكن أن تتداخل العمليات المتوازية مع هذا.

ولكن ، على العموم ، السرعة ليست حاسمة. يمكن الوصول إلى أجهزة الكمبيوتر والخوادم المنتجة بحيث لا يمكننا الحديث إلا عن أجزاء من الثانية. لا يهتم المستخدم إذا تم تحميل تطبيقه في 0.001 أو في 0.01 ثانية.

مجال الرؤية


كانت Python محدودة ديناميكيًا في البداية. هذا يعني بشكل أساسي أنه لتقييم التعبير ، يبحث المترجم أولاً عن الكتلة الحالية ، ثم بالتتابع جميع وظائف الاستدعاء.

مشكلة النطاق الديناميكي هي أنه يجب التحقق من كل تعبير في جميع السياقات الممكنة ، وهو أمر ممل. هذا هو السبب في أن معظم لغات البرمجة الحديثة تستخدم النطاق الثابت.

حاولت Python الانتقال إلى النطاق الثابت ، لكنها فشلت. بشكل عام ، يمكن للنطاقات الداخلية ، مثل الوظائف داخل الوظائف ، رؤية النطاقات الخارجية وتغييرها. في بايثون ، يمكن للمناطق الداخلية رؤية المناطق الخارجية فقط ، ولكن لا يمكن تغييرها. هذا يؤدي إلى الكثير من الارتباك.

وظائف لامدا


على الرغم من كل مرونة Python ، إلا أن استخدام لامدا محدود للغاية. يمكن أن تكون فقط تعابير في Python ، لكن ليست معاملات.

من ناحية أخرى ، تكون الإعلانات والعوامل المتغيرة دائمًا عوامل تشغيل. هذا يعني أنه لا يمكن استخدام لامداس لهم.

هذا التمييز بين التعبيرات والبيانات هو تعسفي إلى حد ما ولا يحدث بلغات أخرى.


المسافة البادئة الصارمة تجعل الشفرة أكثر قابلية للقراءة ، لكن حتمتها تضعف الدعم.

المسافات وعلامات التبويب


في Python ، يتم استخدام المسافات وعلامات التبويب للإشارة إلى مستويات مختلفة من التعليمات البرمجية. هذا يجعلها جذابة بصريا وبديهية.

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

تحل لغات جديدة (نسبيًا) مثل هاسكل هذه المشكلة: فهي تعتمد على المساحات ، ولكنها تقدم بنية بديلة لأولئك الذين يريدون الاستغناء عنها.

تطوير المحمول


نظرًا لوجود تحول هائل من أجهزة الكمبيوتر المكتبية إلى الهواتف الذكية ، فمن الواضح أن هناك حاجة متزايدة إلى لغات موثوقة لإنشاء برامج الهاتف المحمول.

لكن تطبيقات الجوال في Python حوالي مرتين وأخطأت الحساب. هذا لا يعني أن هذا غير ممكن على الإطلاق - لأن هناك حزمة تسمى Kivy.

لم يتم إنشاء Python للأجهزة المحمولة. حتى إذا كان يمكن أن يعطي نتائج مقبولة لحل المشاكل الأساسية في هذا المجال ، فمن الأفضل استخدام لغة مصممة لتطوير تطبيقات الهاتف المحمول. تتضمن بعض منصات البرمجة المحمولة شائعة الاستخدام React Native و Flutter و Iconic و Cordova.

بالطبع ، ستظل أجهزة الكمبيوتر المحمولة وأجهزة الكمبيوتر المكتبية مستخدمة لسنوات عديدة. ومع ذلك ، تجاوزت الأجهزة المحمولة حركة مرور سطح المكتب لفترة طويلة. من الآمن أن نقول أن تعلم بايثون ليس كافياً ليتم اعتباره مطورًا شاملاً ذا خبرة .

أخطاء وقت التشغيل


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

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

ما الذي يمكن أن يحل محل بايثون في المستقبل - ومتى


ظهرت العديد من المنافسين الجدد في سوق لغات البرمجة:

  • Rust , Python — . . StackOverflow Insights, .
  • Go , Python. , . : Go — .
  • جوليا هي لغة جديدة للغاية تتنافس مباشرة مع بايثون. إنه يسد الفجوة في الحسابات التقنية واسعة النطاق: عادة يمكنك استخدام Python أو Matlab ، حيث يؤدي جزءًا من المهام (أحيانًا جزء مهم جدًا) باستخدام مكتبات C ++. الآن ، بدلاً من التلاعب بلغتين ، يمكنك ببساطة استخدام جوليا.

على الرغم من وجود لغات أخرى في السوق ، إلا أن Rust و Go و Julia تعمل على إصلاح نقاط الضعف في Python. كل هذه اللغات ممتازة في التقنيات المستقبلية ، وخاصة في الذكاء الاصطناعي. على الرغم من أن حصتها في السوق لا تزال صغيرة (وهو ما ينعكس في عدد علامات StackOverflow) ، فإن الاتجاه لكل منها واضح: لأعلى ولأعلى فقط.


أذكر في StackOverflow لـ Go / Rust / Julia - ديناميكيات التغييرات على مر السنين. لا تزال المؤشرات متواضعة ، ولكن هذه اللغات لها اتجاه صعودي ثابت.

نظرًا لشعبية Python الواسعة الانتشار اليوم ، سيستغرق الأمر نصف عقد ، وربما حتى كله ، لاستبدالها بأي من هذه اللغات الجديدة.

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

All Articles