ما هو أفضل لغة برمجة؟ قد تحصل على عشر إجابات مختلفة عند سؤال عشرة مطورين مختلفين. في هذه المقالة، سنقارن لغتي برمجة؛ باوشرشيل وبايثون. ستحصل على لمحة عن كلتا هاتين اللغتين وتفهم كيف تختلفان وتشابهان في الميزات مثل الصيغة البناءية والتوفر عبر المنصات وغيرها.
حان الوقت لمواجهة باوشرشيل مقابل بايثون!
بحلول نهاية هذه المقالة، ستكون قادرًا على الإجابة على بعض الأسئلة الشائعة:
- ما هو المشترك بين هاتين اللغتين؟
- ما الذي يميزهما عن بعضهما البعض؟
- ما هي أفضل حالات الاستخدام لكل منهما؟
- كيف يختلف الصيغة البناءية؟
- ما هو نوع الدور الذي يجب أن يكون لدى شخص للاستفادة الأفضل من إحداهما؟
هذه المقالة موجهة لأولئك الذين لديهم قليل أو لا يعرفون شيئًا عن أي من اللغتين ويشعرون بالارتباك حول استخدام باوشرشيل أو بايثون. هذه المقالة موجهة أيضًا لأولئك الذين يفهمون بالفعل إحدى اللغتين ويرغبون في التعرف على الأخرى.
لنقم بالانغماس في الموضوع!
حسب دور العمل
على الرغم من أنك قد تتمكن من التحدث عن الجوانب التقنية لبايثون وباوشرشيل طوال اليوم، فإن جزءًا هامًا من مقارنة اللغتين هو تحديد نوع الدور الوظيفي الذي يناسب كل منهما بشكل أفضل.
تم تطوير كلاً من باوشرشيل وبايثون على جانبين مختلفين (مايكروسوفت ومجتمع لينكس مفتوح المصدر). صيغتي اللغتين ومجتمعيهما، وبالتالي إحساسهما العام، مختلفة وبالتالي يتم استخدامهما عمومًا في دورات وظيفية محددة.
يجب أن يُلاحَظ هنا أن PowerShell (النواة)، التي في الإصدار 6.0.0 وما بعده، تم إصدارها كمصدر مفتوح. الأوقات تتغير.
مسؤولو النظام
كلا PowerShell و Python لغتان رائعتان لتعلمهما لمسؤولي النظام. إنهما أدوات تحكم تلقائية رائعة، ويمكن أن توفر الكثير من الوقت لمسؤول النظام. على الرغم من ذلك، يُمكن القول بأن PowerShell سيكون خيارًا أفضل لمسؤولي Windows فقط بسبب تكامله الأصلي مع إطار .NET.
بالنسبة لـ Python، فإنها رائعة بالنسبة لمسؤولي Linux.
على الرغم من أن Python و PowerShell (النواة) على حد سواء متعددة المنصات، إلا أنك ستجد أن الغالبية العظمى من الوظائف المتاحة ستكون مقسمة بين Windows و PowerShell، و Python و Linux.
المطورون
بالنسبة لوظائف أكثر توجهًا للمطورين، فإن Python هو الزعيم بلا منازع. تتمتع Python بدعم هائل في مجالات لم تمسها PowerShell أبدًا، مثل علم البيانات والتحليل الإحصائي، وغيرها. يبدو Python أحيانًا أكثر ملاءمة للعلوم.
تقوم Python أيضًا بتشغيل العديد من تطبيقات الويب الكبيرة على الجانب الخادم وتطبيقات أخرى “صديقة للمطور”.
على الرغم من أن PowerShell يمكن استخدامه كلغة تطوير، إلا أنه عادةً ما يكون أكثر ملاءمة في الوظائف التي تحتاج إلى المزيد من التحكم التلقائي، مثل DevOps أو التحكم التلقائي لمسؤول النظام بشكل عام.
حسب نظام التشغيل
PowerShell
PowerShell هو البطل لبيئات Windows؛ إنها المهارة الأفضل التي يمكنك الاستفادة منها لأتمتة المهام في Windows. وهذا صحيح بشكل خاص عندما يتعلق الأمر بمنتجات مثل Active Directory و Microsoft Exchange في الإصدارات الخاصة بالمواقع و Office 365.
بما أن لـ PowerShell وصولاً مباشراً إلى إطار العمل .NET، فإنه متكامل تمامًا مع جميع أنظمة Windows ويمكن استخدامه بسهولة لإنجاز أي مهمة.
ومع ذلك، تدعم PowerShell نظام Linux ولكن، حتى تاريخ كتابة هذا النص، ليس هناك وجود واسع لها كما في Python.
Python
عمومًا، Python أفضل في بيئات Linux. نظرًا لجذورها العميقة في مجتمع Linux، ستجد وحدات Python للقيام بأي شيء تقريبًا في Linux.
يمكن لـ Python أيضًا العمل على منصات أخرى مثل iOS و AIX.
حسب المهمة
PowerShell
يمكنك استخدام PowerShell لإنشاء أداة لإدارة المهام اليومية، ويمكنك حتى إنشاء واجهة رسومية باستخدام Windows PowerShell لأداتك لتكون أكثر سهولة للاستخدام من قبل المستخدم.
Python
عمومًا، يُعتبر Python الأفضل استخدامًا لمهام “أكثر ثقلًا” مثل التعلم الآلي، والإحصاء، وعلوم البيانات، وتطبيقات الويب والسطح المكتبي على الخادم. كما أن Python لديها دعم رائع لمعالجة الصور.
فهم التشابهات والاختلافات في الصياغة
لننزل إلى تفاصيل كل لغة للمقارنة بينهما.
PowerShell وPython هما موجهان نحو الكائنات، مما يعني أن كلاهما مبني على مفهوم الكائنات المنطقية حيث ينشئان ويعدلان ويعيدان استخدام الكائنات لأداء مهام محددة.
كلاً من PowerShell وPython يعيدان استخدام الكود من خلال الوحدات. يمكن إعادة استخدام الوحدات في وقت لاحق في برامج أخرى، أو يمكنك استيراد الوحدات المنشأة من قبل مبرمجين آخرين مباشرة.
كلا اللغتين لديهما مكتبة كبيرة من الوحدات التي يمكنك استخدامها بسهولة في النصوص الخاصة بك.
PowerShell هو واجهة سطر أوامر مبنية على لغة البرمجة النصية التي تعتمد على إطار .NET وتقبل وترجع كائنات إطار .NET ، بينما Python هي لغة برمجة تفسرية
يأخذ مفسر Python الكود القابل للقراءة بشريًا وينشئ نوعًا آخر من الكود الذي يفهمه المفسر ، ليتم تغييره لاحقًا إلى كود قابل للقراءة بواسطة الجهاز حيث يحدث التنفيذ الفعلي.
دعونا نبدأ الآن بأساسيات كلتا اللغتين ، مثل التعليقات وتعريف المتغيرات والشروط والأساسيات الأخرى ، للحصول على فهم أفضل لتشابهاتهما واختلافاتهما.
التعليق
جعل تعليق سطر واحد في PowerShell أو Python متطابق – استخدم علامة الجمع (#
) في بداية السطر مثل ما يلي.
تعريف المتغيرات
تبدأ جميع المتغيرات في PowerShell بـ $
تليها اسم. فيما يلي يمكنك رؤية كيف يتم تعيين قيمة للمتغير للحفاظ على عدد صحيح.
يعمل تعريف المتغيرات النصية بنفس الطريقة في PowerShell ، ولكن ستحتاج إلى وضع القيمة بين علامات تنصيص أحادية أو مزدوجة.
تحقق من مستند about_Variables لمزيد من المعلومات حول متغيرات PowerShell.
في Python، يُعامل المتغير بشكل متطابق تقريبًا ولكن لا يتطلب من المتغير أن يبدأ بـ $
.
يمكنك معرفة المزيد حول متغيرات Python عبر W3Schools والعديد من المصادر الأخرى عبر الإنترنت.
العمل مع عمليات الرياضيات
في PowerShell و Python، أي عدد إيجابي أو سالب بدون أماكن عشرية يُعتبر عددًا صحيحًا. وبشكل افتراضي، سيتم تعيينها تلقائيًا إلى متغير من نوع الصحيح. يمكن تنفيذ عمليات الرياضيات بشكل طبيعي على هذه المتغيرات.
في PowerShell، يمكنك رؤية بعض أمثلة على بعض عمليات الرياضيات الأساسية أدناه.

تحقق من سلسلة كيفية القيام بعمليات الرياضيات في PowerShell على RedmondMag للمزيد من المعلومات.
بالمثل، في Python، يمكنك القيام بعمليات الرياضيات الأساسية كما هو موضح أدناه.

تعرف على المزيد حول عمليات الرياضيات في Python في هذا المقال المفيد من geeks2geeks.com.
الاستفادة من عبارات التصريح الشرطية
تعتبر العبارات الشرطية مهمة في أي لغة برمجة. تسمح العبارات الشرطية للمطور بتوجيه تدفق الشيفرة، اعتمادًا على شرط واحد أو أكثر. عندما تتعامل مع عبارات شرطية مثل هياكل if/then، ستجد أن PowerShell و Python تشبهان بشكل كبير.
يمكنك رؤية أدناه أن هناك فرقًا طفيفًا، لكنه مهم للغاية، بين اللغتين. يعتمد PowerShell بشكل كبير على الأقواس ( )، والأقواس المنحنية { }، وأحرف خاصة أخرى، لكن Python يستخدم التباعد.
لاحظ جميع الأقواس والأقواس المنحنية أدناه في مثال PowerShell.
قم بتعارض كود PowerShell مع كود Python أدناه. سترى النقاط التي تشير إلى نهاية البيانات الشرطية والمسافات لتحديد الكود للتنفيذ داخله.
لتوضيح ذلك، دعنا نرى كيف يبدو بيان if/then النموذجي في PowerShell وكيف يعمل. عند تشغيل الكود أدناه، سترى الناتج “77 أكبر من 70
“.
على النقيض من ذلك، لاحظ كيف يتم تنفيذ نفس المهمة في Python. هناك العديد من الاختلافات بما في ذلك العمليات والأوامر المختلفة لإخراج النص إلى وحدة التحكم.
التكرار
مفهوم آخر مهم في لغات البرمجة هو التكرار. تسمح الحلقات للغة بتكرار، أو تكرار، قطعة من الكود بشكل مستمر حتى يتم تحقيق شرط معين، أو لعدد معين من المرات.
في PowerShell، سيكون البيان الشائع foreach على النحو التالي.
في Python، تستخدم الحلقة المماثلة التي تؤدي نفس المهمة حلقة for كما هو موضح أدناه.
هناك الكثير من التشابه في الصيغ المستخدمة بواسطة PowerShell و Python، خصوصًا بالنسبة للأساسيات والاستخدام الأساسي للغات. هذه التشابهات تمثل ميزة هائلة لأي شخص يتقن PowerShell ويرغب في تعلم المزيد عن Python، أو العكس.
حل نفس المشكلة بطريقة مختلفة
دعونا الآن نرى كيفية حل مشكلة شائعة بشكل مختلف قليلاً باستخدام كل من PowerShell و Python. للقيام بذلك، سنقوم بقراءة ملف نصي بسيط يحتوي على أرقام مفصولة بين الأسطر وإرجاع مجموعة معينة من الأرقام فقط إلى وحدة التحكم.
الملف الذي سنستخدمه يسمى input_text.txt ويحتوي على مجموعة واسعة من الأرقام من 1 إلى 6345.
سنقوم بإنشاء وظيفة في كل من PowerShell و Python لمعالجة جميع الأرقام المُرجعة من الملف.
معالجة ملف باستخدام PowerShell
سترى أدناه كيف يمكنك جعل ذلك يحدث في PowerShell.
عند تشغيل Get-TwoDigits
، سترى أن PowerShell ستعيد فقط أي رقم في input_text.txt الذي يكون بين 9 و 99.
معالجة ملف باستخدام Python
الآن، سنقوم بتنفيذ نفس الخطوات تمامًا باستخدام Python للاحظ الفروق في الصياغة.
عند تشغيل two_digits()
، سترى أن Python ستعيد فقط أي رقم في input_text.txt الذي يكون بين 9 و 99.
إن إنشاء وظيفة في Python هو نفس الهيكل تقريبًا. تذكر أن التباعد مهم في Python، فضلا عن حساسية الحالة.