بايثون | |
---|---|
ظهرت في | 20 فبراير 1991 |
صممها | جايدو ڤان روسم |
نظام التشغيل | Linux، macOS، Windows Vista (and newer) and more |
الرخصة | رخصة مؤسسة برمجيات بايثون |
المطور | مؤسسة برمجيات بايثون جايدو ڤان روسم |
رقم اخر اصدار | 3.8.3 (13 مايو 2020) (إصدارة مستقرة) و3.9.0b1 (19 مايو 2020) (نسخة تجريبية) |
متأثرة بـ | واي بي سي (لغة البرمجة) وسي، وسي++، وبيرل، وجافا، وليسب، وهاسكل، وآي بي إل، ونظام برمجة كلو، وديلان، وآيكون. |
امتدادات الملفات | py، وpyc، وpyd، وpyo، وpyw، وpyz |
موقع ويب | الموقع الرسمي |
بايثون
(بالإنجليزية: Python) هي لغة برمجة، من لغات المستوى العالي، تتميز ببساطة كتابتها وقراءتها، سهلة التعلم، تستخدم أسلوب البرمجة الكائنية، مفتوحة المصدر، وقابلة للتطوير. تعتبر لغة بايثون لغة مفسرة، متعددة الإستخدامات وتستخدم بشكل واسع في العديد من المجالات، كبناء البرامج المستقلة باستخدام الواجهات الرسومية المعروفة وفي عمل تطبيقات الويب، بالإضافة إلى استخدامها كلغة برمجة نصية للتحكم في أداء بعض من أشهر البرامج المعروفة أو في بناء برامج ملحقة لها. وبشكل عام يمكن استخدام بايثون لبرمجة البرامج البسيطة للمبتدئين، ولإنجاز المشاريع الضخمة كأي لغة برمجية أخرى في نفس الوقت. غالباً ما يُنصح المبتدؤون في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسرع اللغات البرمجية تعلماً.
نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جايدو ڤان روسم في أواخر الثمانينات من القرن المنصرم، وكان أول إعلان عنها في عام 1991. تم كتابة نواة اللغة بلغة سي. أطلق ڤان روسم الاسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها الاسم مونتي بايثون.
تتميز بايثون بمجتمعها النشط، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة، مثلاً مكتبة باي جايم التي توفر مجموعة من الوظائف من أجل برمجة الألعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل ماي إس كيو إل وغيره.
تاريخ
بدأ التفكير في إنشاء لغة بايثون أواخر الثمانينيات من القرن العشرين من طرف جايدو ڤان روسم في مركز العلوم والحاسب الآلي (Centrum Wiskunde & Informatica) بهولندا كخليفة للغة البرمجية اي بي سي (والتي بدورها مستوحاة من سيتل).وأرادوا منها بأن تكون قادرة على معالجة الحالات الاستثنائية والتفاعل مع نظام التشغيل أميبا بالمقابل، لم يبدأ تنفيذ الفكرة حتى ديسمبر 1989
تحمّل فان روسوم مسؤولية إدارة المشروع منفردًا، وذلك بصفته المطور الرئيسي، حتى 12 يوليو 2018 ، عندما أعلن عن "إجازته الدائمة" من مسؤولياته كدكتاتور بايثون الخيري لمدى الحياة ، وهو اللقب الذي منحه له مجتمع بايثون ليعكس التزامه طويل الأمد بصفته صانع القرار الرئيسي للمشروع. وهو يشارك الآن في القيادة عضوًا في مجلس التوجيه المكون من خمسة أشخاص.
أُصدرت النسخة الثانية من يايثون (بايثون 2.0) في 16 أكتوبر 2000 مع العديد من الميزات الجديدة الرئيسية، بما في ذلك اكتشاف الدورة وجامع القمامة ودعم يونيكود.
أُصدرت النسخة الثالثة من بايثون (بايثون 3.0) في 3 ديسمبر 2008 .وكانت مراجعة رئيسية للغة لكنها ليست متوافقة بالكامل مع الإصدارات السابقة. كانت العديد من ميزاتها الرئيسية الحمل العكسي في سلاسل إصدار بايثون 2.6.x و 2.7.x . تتضمنت إصدارات بايثون 3 الوظيفة
2to3
، التي تعمل تلقائيًا (جزئيًا على الأقل) على ترجمة رمز بايثون 2 إلى بايثون 3.
حددت نهاية عمر بايثون 2.7 في البداية عام 2015 ثم أُجل إلى عام 2020 خشية عدم إمكانية نقل مجموعة كبيرة من التعليمات البرمجية الموجودة بسهولة إلى بايثون 3.
في يناير 2019، انتخبت نواة بايثون النشطة من المطورين بريت كانون، نيك كوغلان، باري وارسو، كارول فايلينغ وفان روسوم لتشكيل الأعضاء الخمسة "للمجلس التوجيهي" لقيادة المشروع.
مميزات بايثون
بايثون هي لغة برمجة متعددة الأنماط.تدعم البرمجة كائنية التوجه والبرمجة المهيكلة بشكل كامل، كما تدعم بايثون البرمجة الوظيفية والبرمجة جانبية المنحى (بما في ذلك عن طريق البرمجة الوصفية [58]والكائنات الفوقية (الأساليب السحرية)).[59] يمكنها أيضا دعم العديد من النماذج الأخرى عبر الملحقات، بما في ذلك التصميم بالعقود[60][61] والبرمجة المنطقية.[62]
دعم للبرمجة الوظيفية
زيادة على ذلك، فتصميم بايثون يقدم بعض الدعم للبرمجة الوظيفية في تقاليد ليسب. فلدى بايثون وظائف
filter
، reduce
، map
. [63] كما تتوفر على سرد الفهم والقواميس والمجموعات وتعبيرات المولد. تحتوي المكتبة القياسية على وحدتين (itertools و functools) التي تنفذ أدوات وظيفية مستعارة من Haskell و Standard ML.[سهلة التعلم
بايثون سهلة للغاية لتبدأ بها في تعلم البرمجة. بايثون تحتوي تراكيب سهلة بشكل غير معتاد، كما سبق ذكره.فتسعى يايثون جاهدة إلى بناء قواعد نحوية أبسط وأقل تشويشًا مع منح المطورين خيارًا في منهجية البرمجة الخاصة بهم. على النقيض من شعار بيرل " هناك أكثر من طريقة للقيام بذلك "، فإن بايثون تحتضن "يجب - ويفضل - أن تكون هناك طريقة واحدة واضحة للقيام بذلك" كفلسفة للتصميم[65]. كتب أليكس مارتيلي، وهو زميل في مؤسسة مؤسسة بايثون للبرمجيات ومؤلف كتاب "بايثون"، أن "وصف شيء ما بأنه" ذكي " لا يعتبر مجاملة في ثقافة بايثون"."[66]
حرة ومفتوحة المصدر
بايثون هي مثال على البرمجيات الحرة مفتوحة المصدر. بعبارات بسيطة، يمكنك بحرية توزيع نسخ من هذه البرمجيات، وقراءة كود المصدر، والقيام ببعض التغييرات عليها واستخدام أجزاء منها في برمجيات حرة جديدة، وأنت تعرف أنه يمكنك أن تفعل هذه الأشياء. البرمجيات الحرية تقوم على مبدأ المجتمع الذي يتشارك في المعرفة. هذا واحد من أسباب كون بايثون جيدة جدا - لأنه قد تم إنشاؤها وتحسينها بشكل مستمر من خلال المجتمع الذي يريد فقط أن يرى بايثون أفضل من اي لغة.
لغة برمجة عالية المستوى
عندما تكتب البرامج في بايثون، لا تحتاج للاهتمام بالتفاصيل دقيقة المستوى مثل إدارة الذاكرة التي يستخدمها برنامجك فبايثون تستخدم نظام أنواع ديناميكي ومزيجًا من العد المرجعي ومجمع القمامة وكاشف-الدورة لإدارة الذاكرة. كما تتميز أيضًا بتحليل الاسم الديناميكي ( الربط المتأخر )، والذي يربط الأسلوب وأسماء المتغيرات أثناء تنفيذ البرنامج.
محمولة
نظرا لطبيعتها كبرمجية مفتوحة المصدر، تعمل العديد من المنصات. كل ما تكتبه من برامج بايثون يمكن أن يعمل على أي من هذه المنصات دون أن يتطلب ذلك أي تغييرات على الإطلاق إذا كنت دقيقا بما فيه الكفاية لتجنب أي خصائص تعتمد على نظام بعينه. يمكنك استخدام بايثون على لينكس، ويندوز، فري بيإسدي، ماكينتوش، سولاريس، OS/2، Amiga، AROS، AS/400، BeOS، OS/390، z/OS، Palm OS، QNX، VMS، Psion، Acorn RISC OS، VxWorks، PlayStation، Sharp Zaurus، Windows CE وحتى الحاسوب الكفي.
كائنية التوجه
تدعم بايثون البرمجة الإجرائية وكذلك البرمجة الكائنية. في اللغات إجرائية التوجه، يتمحور البرنامج حول الإجراءات أو الدوال التي ليست سوى قطع من البرامج يمكن إعادة استخدامها. وفي اللغات كائنية التوجه، يتمحور البرنامج حول الكائنات التي تجمع بين البيانات والوظائف. وبايثون طريقة قوية جدا ولكن تبسيطية لعمل البرمجة الكائنية خاصة عند مقارنتها بلغات مثل سي++ أو جافا.
قابلة للامتداد
بدلاً من دمج جميع وظائفها في نواتها، صممت بايثون لتكون قابلة للامتداد بدرجة كبيرة. هذه الوحدة النمطية المدمجة جعلتها شائعة بشكل خاص كوسيلة لإضافة واجهات قابلة للبرمجة إلى التطبيقات الحالية. تنبأت رؤية فان روسوم للغة أساسية صغيرة مع مكتبة قياسية كبيرة ومترجمة قابلة للتوسيع بسهولة مستفيدة من أخطاء آي بي سي، التي تبنت النهج المعاكس.[44]
متعددة الاستخدامات
تعد بايثون متعددة الاستخدامات كونها لا تختص باستخدام محدد، فيمكن استخدامها بعدة مجالات منها:
- بتطوير الويب باستخدام عدة أطر عمل مختصة أشهرهم فلاسك أو إطار جانغو.
- تطوير واجهات المستخدم الرسومية، يتم استخدام مكتبات عدة مثل مكتبة كيوت (بالإنجليزية: Qt) أو مكتبة جتك+ (بالإنجليزية: GTK+).
- أمن المعلومات، حيث يوجد العديد من برمجيات الطرف الثالث التي تُصنَّع من قبل مبرمجين متفرقين حول العالم تساعد العامل بمجال أمن المعلومات على محاكاة عمليات الإختراق وصنع الأدوات المؤتمتة للعملية أو الأدوات التي تقوم بتثبيت الترقيعات الأمنية لحل العلّة المكتشفة.
- البيانات الضخمة، بسبب قدرة بايثون على التعامل مع البيانات بشكل سلس و تحليلها و وجود العديد من المكتبات المختصة في هذا المجال مثل pandas فتعد بايثون خيار ممتاز للعاملين في هذا المجال.
يوجد العديد من المجالات الأخرى فتدخل بايثون في جميع مجالات المستخدمة في علوم الحاسوب تقريباً فيمكن حتى استخدامها كاللغة ثانوية في المشاريع البرمجية.
فلسفة بايثون
المبادئ
لخصت فلسفة اللغة الأساسية في الوثيقة زن بايثون ( بيب 20 )، والتي تتضمن حكم مثل:[65]
- الجميل أفضل من القبيح.
- الصريح أفضل من ضمني.
- البسيط أفضل من المجمع.
- المركب أفضل من المعقد.
- قابلية القراءة مهمة.
شرح
- يسعى مطورو بايثون جاهدين لتجنب التحسين السابق لأوانه، ويرفضون التصحيحات للأجزاء غير الحرجة من تطبيق سي بايثون المرجعي الذي من شأنه أن يوفر زيادات هامشية في السرعة على حساب الوضوح[67]. فعندما تكون السرعة مهمة، يمكن لمبرمج بايثون نقل الوظائف الحرجة للوقت إلى وحدات التمديد المكتوبة بلغات مثل سي، أو استخدام باي باي، وهو مترجم في الوقت المناسب. سيثون متاح أيضًا، والذي يترجم نص بايثون لنصي إلى سي ويقوم بإجراء مكالمات API مباشرة من المستوى سي إلى مترجم بايثون.
- أحد الأهداف المهمة لمطوري بايثون هو الحفاظ على المتعة في الاستخدام[68]. ينعكس هذا في اسم اللغة - تكريمًا لمجموعة الكوميديا البريطانية Monty Python - وفي المناهج المرحة أحيانًا للبرامج التعليمية والمواد المرجعية، مثل الأمثلة التي تشير إلى البريد العشوائي والبيض (من الرسم المشهور لمونتي بايثون ) بدلاً من ذلك من فو والبار القياسية..[69][70]
- من المستحدتاث المألوفة في مجتمع بايثون هو pythonic، والتي لها مجموعة واسعة من المعاني المتعلقة بأسلوب البرنامج. إن القول بأن الشفرة هي pythonic يعني القول أنها تستخدم مصطلحات بايثون بشكل جيد ، وأنها طبيعية أو تُظهر طلاقة في اللغة ، وأنها تتوافق مع فلسفة بايثون البسيطة والتأكيد على سهولة القراءة. في المقابل ، فإن التعليمات البرمجية التي يصعب فهمها أو تقرأ مثل النسخ التقريبي من لغة برمجة أخرى تسمى unpythonic .
- غالبًا ما يُشار إلى مستخدمي بايثون والمعجبين بها، وخاصة أولئك الذين يعتبرون على دراية أو خبرة بها، باسم بايثونيستاس (Pythonistas).[71][72]
استخدامات
تستخدم بايثون على نطاق واسع في جوجل وناسا، كما أنها قد استخدمت في برمجة أحد المشاريع العملاقة هو مشروع ZOB، كما تستخدم في العديد من المشاريع والتطبيقات المنتشرة عالمياً مثل مشروع بلندر وهو أحد برامج التصميم ثلاثية الأبعاد الشهيرة، وأيضا في جزء من مشروع موزيلا فيرفكس.
لقد أُدمجت بايثون بنجاح كلغة برمجة في العديد من التطبيقات والحزمات. وهي تستخدم بكثرة في تطبيقات التصميم ثلاثي الأبعاد مثل مايا، سوفت إيماج إكس إس آي Softimage|XSI، وبالطبع بلندر.
كما أنها تستخدم في أنظمة التشغيل المختلفة مثل أغلب توزيعات لينكس ونظام ماك أو إس إكس.
كلغة برمجة نصية Scripting Language
- برنامج Maya لعمل التصاميم ثلاثية الأبعاد.
- برنامج Blender لعمل التصاميم ثلاثية الأبعاد.
- سوفت إيماج إكس إس آي لعمل التصاميم ثلاثية الأبعاد.
- سيفليزيشن 4 اللعبة الإستراتيجية المعروفة.
- Stackless Python عمل سكربتات لأشهر الألعاب الإلكترونية المعروفة مثل EVE Online، Civilization IV، Second Life.
- ArcGIS برنامج لعمل الخرائط الجغرافية.
- OpenOffice.org حزمة برامج مكتبية مفتوحة المصدر.
- PyMol عمل تصاميم ثلاثية الأبعاد لأغراض علمية.
- GIMP برنامج رسوميات مفتوح المصدر.
النحو (بناء اللغة) و الدلالات
صممت بايثون لتكون لغة ذات مقروئية عالية، تنسيقها مرتب بصرياً؛ فهي عادةً ما تستخدم كلمات إنجليزية شائعة الاستخدام على حين تستخدم اللغات الأخرى علامات الترقيم. على النقيض من العديد من اللغات الأخرى، بايثون لا تستخدم الأقواس المعقوفة
{ }
لتحديد كتل الكود (بالإنجليزية: blocks)، و الفاصلة المنقوطة ;
بعد العبارات البرمجية (بالإنجليزية: statements) اختيارية. بايثون لديها استثنئات دلالية (بالإنجليزية: syntactic exceptions) و حالات خاصة أقل بكثير من لغة سي C أو باسكال Pascal. [73]إزاحة
تستخدم بايثون الإزاحة بالفرغات (بالإنجليزية: whitespace indentation) بدلاً من الأقواس المعقوفة
{ }
أو الكلمات المفتاحية (بالإنجليزية: keyword) لتحديد كتل الكود (بالإنجليزية: blocks). الزيادة في الإزاحة تأتي بعد بعض العبارات (بالإنجليزية: statements)؛ إنقاص الازاحة علامة على انتهاء الكتلة الحالية. وبالتالي، فإن البنية المرئية (بالإنجليزية: visual structure) للبرنامج تمثل بدقة البنية الدلالية للبرنامج (بالإنجليزية: program's semantic structure). تُسمى هذه الميزة أحيانًا قاعدة التسلل (بالإنجليزية: off-side rule)، والتي تشترك فيها بعض اللغات الأخرى، ولكن في معظم اللغات، لا تحتوي الازاحة على أي معنى دلالي.العبارات البرمجية و التحكم بالتدفق
عبارات بايثون البرمجية (بالإنجليزية: statements) تضمن (من بين أمور أخرى):
- عبارة المساواة (تأخذ اشارة المساواة
=
). و التي تعمل بشكل مختلف عن بقية لغات البرمجة الأمرية (بالإنجليزية: Imperative programming) و هذه الألية الأساسية (تضمن طبيعة اصدارات المتغيرات الخاصة ببايثون) و التي تنير الطريق للعديد من ميزات اللغة الأخرى.
أمثلة
- مثال طباعة Hello World!
مثال لحساب العمر:
مثال لاستخراج العدد العاملي:
مثال لتكرار طباعه كلمة 5 مرات:
كيف تشغل برنامج مكتوب بلغة بايثون
بما أن لغة بايثون نصية، فإنه يتوجب عليك أن يكون لديك مفسر اللغة فقط لتشغيل البرنامج، وللحصول على المفسر اذهب إلى موقع لغة بايثون، ونزل المفسر حسب النظام الذي تعمل عليه[74] بطبيعة الحال لكتابة برنامج بايثون ستحتاج إلى محرر نصوص ثم حفظ الملف بلاحقة py. بعد ذلك ادخل على سطر الأوامر واكتب:>> python program.py بحيث program اسم الملف، وللتعامل مباشرة مع محث لغة بايثون، اكتب في سطر الأوامر :>> python و لكتابة أول برنامج لك، اكتب : >>> print ' Hello World' بعد كتابتك لأول برنامج لك بواسطة بايثون، ستعرف بنفسك مدى سهولة بايثون وقوتها.
تعليقات: 0
إرسال تعليق