ما الجديد في بايثون 3.6
PEP 498: Formatted string literals
هذه الميّزة جميلة جدّا، بما أنّني كنت أعمل بلغة روبي من قبل، عندما انتقلت إلى بايثون أزعجتني دالة format() صراحة.
في روبي يُمكنك ببساطة تضمين قيمة مُتغيّر فقط بوضعه داخل #{var}.
var = 10
puts "Var value is #{var} "
في لغة بايثون كان يجب عليك إضافة الدّالة format إلى نهاية السّلسلة وتمرير المُتغيّر.
var = 10
print ("Var value is {}".format(var))
وهذا مُزعج نوعا ما :)
من الجميل أنّه أصبح من المُمكن الآن تضمين قيم المُتغيّرات بطريقة أقرب من طريقة روبي :)
f"Var value is {var}"
في اغلب الكورسات التي اتعلمها يتم استخدام نسخة بايثون 2.7 ، لماذا يتم التركيز على النسخة القديمة ؟ متى سيتم الاعتماد كليا على النسخة الجديدة من بايثون ؟
وهل التحديثات هذه تفيد اللغة ام تزيد الطين بلة ؟ ولماذا بايثون ليست مثل روبي مثلا ؟ لم اسمع ان المجتمع في روبي منقسم بين اصدارين ..
لا يوجد فرق كبير بين الإصدارين، الفرق الأكبر الذي يُمكن أن يُشكّل عائقا للمُبتدئ هو دالة الطّباعة. ففي بايثون 2 تكون كالآتي:
print "Hello World!"
أمّا في بايثون 3 فقد تمّ تحويلها إلى دالّة تُستدعى كما باقي الدّوال:
print("Hello World!")
تُدرّس لغة بايثون 2.7 لأنّ بعض المكتبات الهامّة المُتواجدة حاليّا تدعم هذا الإصدار بشكل كامل، وقد تُعاني من بعض المشاكل إذا استخدمت الإصدار 3، كما أنّ المُبتدئ سيتفّهم الإختلافات بسرعة بعد تعرّفه على الإصدار الثاني والتّمكّن من استخدامه، وسيسهل عليه الإنتقال إلى بايثون 3 في حالة كان يرغب بذلك.
وهل التحديثات هذه تفيد اللغة ام تزيد الطين بلة ؟
تعدّ بايثون 3 أسرع بكثير من بايثون 2 وهذا أمر طبيعي لأنّ المُطوّرين رّكّزوا على الأداء، وهذا ما اضطرهم -على الأغلب- لإحداث تغييرات في بنية الجملة Syntax.
متى سيتم الاعتماد كليا على النسخة الجديدة من بايثون ؟
أنت لست مُجبرا على العمل بالإصدار الثّاني.
إذا كنت تستطيع العمل ببايثون 3 فمن الأفضل أن تفعل ذلك، خاصّة إذا كنت تعمل بمكتبة أو إطار عمل يدعم هذا الإصدار.
تعدّ بايثون 3 أسرع بكثير من بايثون 2 وهذا أمر طبيعي لأنّ المُطوّرين رّكّزوا على الأداء، وهذا ما اضطرهم -على الأغلب- لإحداث تغييرات في بنية الجملة Syntax.
اذن التحديثات القادمة في بايثون 3 ليست جذرية وهي فقط تحسينات أليس كذلك ؟
ما أقصده هل سيحدث فرضا انقسام بعد سنين قادمة ان تم اصدار بايثون 4 و نعود الى نفس المشكلة ؟ ( لا اعلم ان كان هذا السؤال منطقي )
إذا كنت تستطيع العمل ببايثون 3 فمن الأفضل أن تفعل ذلك، خاصّة إذا كنت تعمل بمكتبة أو إطار عمل يدعم هذا الإصدار
مضطر حاليا التركيز على بايثون 2 ، لان الدورات التي اعتمد عليها تستخدم هذه النسخة ، لكن كما قلت اتمنى الا يكون الامر صعبا علي عندما اريد استخدام مكتبات مكتوبة بـ بايثون 3
اذن التحديثات القادمة في بايثون 3 ليست جذرية وهي فقط تحسينات أليس كذلك ؟
هذا على الأغلب صحيح، لست متأكّدا.
بالمُناسبة بايثون 2 ليس إصدارا قديما مُتخلى عنه، بل أقرب إلى نُسخة مُستقلّة إذ أنّ آخر إصدار كان 2.7.11 وأطلق منذ عدّة أشهر فقط في 2015-12-05. ما يعني بأنّ مُطوّري اللغة يعملون على نُسختين مُستقلّتين 2.7.x و 3.x وصراحة لا أعلم السّبب الرئسي.
عندما اريد استخدام مكتبات مكتوبة بـ بايثون 3
على حدّ علمي لا توجد مكتبات تعمل ببايثون 3 ولا تعمل ببايثون 2 لذا لا تقلق، وكما قُلت سابقا بايثون 3 سهلة التّعلم حالما تألف العمل مع الإصدار 2.
ما أقصده هل سيحدث فرضا انقسام بعد سنين قادمة ان تم اصدار بايثون 4 و نعود الى نفس المشكلة ؟ ( لا اعلم ان كان هذا السؤال منطقي )
عندما تم إصدار بايثون 3 لأول مرة اهتم مطوري اللغة بتحسينها بدون الاهتمام بالتوافقية مع الإصدار السابق Backward Incompatible وهذا أدى لكثير من المشاكل أكثر مما كان متوقع
يمكن القول ان المطورين تعلموا من أخطائهم ولن يتم تكرار ذلك في بايثون 4
التعليقات