تم إطلاق Python 2 في عام 2000، وظل لفترة طويلة الأداة الرئيسية لملايين المطورين حول العالم. في عام 2008، ظهر إصدار جديد جذريًا — Python 3، الذي قدم تحسينات كبيرة في بنية اللغة.
لم يكن Python 3 متوافقًا تمامًا مع Python 2 في البداية، مما أثار جدلاً في مجتمع المطورين وأبطأ اعتماده على نطاق واسع. ومع ذلك، على مدى أكثر من 15 عامًا، أصبح Python 3 المعيار الصناعي بلا منازع.
تاريخ ظهور Python 3
كان إنشاء Python 3 ضروريًا لإزالة العيوب المعمارية الأساسية في Python 2 التي أعاقت تطور اللغة:
تحسين دعم Unicode — يعمل Python 3 مع سلاسل Unicode افتراضيًا، وهو أمر بالغ الأهمية للتطبيقات الحديثة متعددة اللغات.
تحسين التعامل مع أنواع البيانات — فصل أوضح بين البايتات والسلاسل النصية، وإزالة الغموض في التصنيف.
توحيد بناء الجملة والدلالات — إزالة التناقضات في اللغة، وإنشاء هيكل أكثر منطقية وقابلية للتنبؤ.
الفروقات الرئيسية بين Python 2 و Python 3
التعامل مع النصوص والتشفير
Python 2:
print type("نص") # <type 'str'>
print type(u"نص") # <type 'unicode'>
Python 3:
print(type("نص")) # <class 'str'> - Unicode افتراضيًا
print(type(b"نص")) # <class 'bytes'>
يدعم Python 3 Unicode بشكل أصلي، مما يحل العديد من مشاكل التشفير التي كانت شائعة في Python 2.
العمليات الحسابية
Python 2:
print 5 / 2 # 2 (قسمة صحيحة)
print 5.0 / 2 # 2.5 (قسمة بأرقام عشرية)
Python 3:
print(5 / 2) # 2.5 (قسمة حقيقية)
print(5 // 2) # 2 (قسمة صحيحة)
في Python 3، يُرجع العامل / دائمًا نتيجة برقم عشري، مما يجعل السلوك أكثر قابلية للتنبؤ.
التغييرات في بناء الجملة
دالة print:
# Python 2
print "مرحبًا بالعالم!"
# Python 3
print("مرحبًا بالعالم!")
دالة input:
# Python 2
name = raw_input("أدخل الاسم: ") # سلسلة نصية
age = input("أدخل العمر: ") # تنفيذ eval()
# Python 3
name = input("أدخل الاسم: ") # دائمًا سلسلة نصية
age = int(input("أدخل العمر: ")) # تحويل صريح
المكررات والمولدات
Python 2:
range(5) # يُرجع قائمة [0, 1, 2, 3, 4]
xrange(5) # يُرجع مولدًا
keys = dict.keys() # يُرجع قائمة
Python 3:
range(5) # يُرجع مولدًا
list(range(5)) # [0, 1, 2, 3, 4]
keys = dict.keys() # يُرجع عرض القاموس
الوضع الحالي لدعم الإصدارات
انتهاء دعم Python 2
في 1 يناير 2020، أوقفت Python Software Foundation رسميًا دعم Python 2.7. وهذا يعني:
- عدم وجود تحديثات أمنية
- وقف تطوير الميزات الجديدة
- عدم وجود إصلاحات للأخطاء الحرجة
- وقف الدعم من المكتبات الرئيسية
التطوير النشط لـ Python 3
يستمر Python 3 في التطور بنشاط مع تحديثات منتظمة:
- Python 3.12 (2023) — تحسينات في الأداء وميزات جديدة للتصنيف
- Python 3.13 (2024) — مترجم JIT تجريبي