قَد يتسائل الجميع عن ما هي اَفضل لغة برمجة للبدء في التعلم ؟.. لكنْ الحقيقــة أَن هذا السؤال مَضيعة للوقت , و لا يوجد إجابة جيدة و مناسبة , و إن وُجدت فهي ستختلف من شخص لأخر . فَللبــدء في تعلم لغات البرمجة يجب أولاً أن تسأل ما هي اللغة الأنسب التي تلبي احتياجاتي ؟ . فمثلاً هل تريد أن تقوم ببرمجة المواقع , أو برامج سطح المكتب , أم برمجة تطبيقات الهواتف الذكية , لكن لتعلم أساسيات البرمجة اعتقد أن لغة python و ruby مفيدة جداً , و طبعا قد تعرفنا على لغة Ruby سابقا في : تعرف على لغة Ruby بوابتك نحو عالم البرمجة , و اليوم اخترت لكم python فهي من أكثر اللغات سهولة على الإطلاق للبـدء في تعلم لغات البرمجة و فهم خوارزمياتها ، ودائماً ما ينصح بها المبتدئين . كما أنها مطلوبة جداً في أسواق العمل ، فحسب إحصائيات شركة Linkedin كانت هذه اللغة من المهارات الأكثر طَلباً , بإضافة إلى كونها ضن أكثر 10 لغات طلبا في سوق الشغل .
و لغة بايثون هي لغة سهلة و بسيطة فقراءة الأكواد المكتوبة بتلك اللغة يكاد يشبه قراءة اللغة الإنجليزية على سبيل المثال حيث يمكن إعتبارها لغة شبه رمزية pseudo-code، فضلاً عن ذلك تتميز بايثون بالسهولة من حيث الكتابة و القراءة ومن حيث التركيب النحوي لها فهي تعتمد على المنطق في تنفيذ التعليمات البرمجية. و مع التطوير المستمر لها وضعت بايثون ثقافة خاصة تتميز بها عن باقي اللغات في طريقة كتابة الكود حيث تعتمد اللغة على معيار PEP8 وهو عبارة عن إتفاقية لكتابة التعليمات البرمجية بحيث تضمن سهولة القراءة وسهولة المساهمة.
كما أن لدى لغة بايثون حوالي المليون مستخدم حاليا ، وهي من أوسع لغات البرمجة استخداماً، و يتشاركُ أغلب مستخدمي بايثون في بعض الأسباب والعوامل التي تدفعهم لاختيار هذه اللغة , ألخصها كما يلي:
أيضا هناك نقطة أخرى مهمة وهي أن بايثون لغة مفسرة , و اللغة المفسرة هي اللغة التي لا تترجم البرامج المكتوبة بها إلى لغة الآلة الخاصة بالمعالج ولكن يمكن تفسير البرامج المكتوبة بها بواسطة Compiler خاص بها، على سبيل المثال فإذا كان هناك برنامج مكتوب بلغة سي أو سي بلس بلس يتم تحويل الكود من اللغة المصدر إلى لغة الحاسوب أي كود ثنائي من أصفار وأحاد. من الميزات الرائعة في بايثون أنها لغة مفسرة أي لا تحتاج التصريف إلى كود ثنائي حيث يمكن تشغيل البرنامج من الكود المصدري مباشرة بواسطة وسيط يسمى bytecode ومهمته أنه يقوم بترجمة الكود للغة الجهاز مباشرة.
ما يضيف لبايثون زخماً أكبر أيضاً أنها تستخدم من قبل الشركات العملاقة، فمثلاً جوجل تستخدم بايثون بشدة في أنظمة البحث، ويوتيوب مبرمج بشكل واسع بإستخدام بايثون، كما أن دروب بوكس تعتمد علي بايثون في برامج سطح المكتب والسيرفرات الخاصة بهاـ، وتقول شركة جوجل أن بايثون كانت جزءاً أساسياً منذ البداية في مشاريعها، وأن مهندسيها يعتمدون علي بايثون بشكل كبير، وأنهم دوماً يبحثون عن أشخاص لديهم مهارات عالية فيها.
لماذا Python :
ظهرت التصورات الأولية لبايثون في أواخر الثمانينيات وبدأ تنفيذها فعلياً في عام 1989م من قبل جويـدو فان روزم، وقد كان إختيار لفظ (Python) عنواناً لها نابعاً من تأثر غويدو ببرنامج كوميديا بريطاني يدعي (Monty Python’s Flying Circus). و هي في أساس مشتقة من عدة لغات برمجة أخرى مثل Unix shell و C و C++ وهي لغة مجانية ومفتوحة المصدر تحت رخصة GPL و قد تعرفنا على مميزات هذه الرخصة في : تعرف على أهم الأسباب التي قد تدفعك لإستخدام البرمجيات الحرة ، ويقوم على تطويرها الآن عدد كبير من المطورين منهم مبتكرها .جويـدو فان روزم: مبرمج هولندي من مواليد عام 1956 حصل على شهادة ماجستير في الرياضيات وعلوم الحاسب عام 1982 يعمل حالياً في DropBox , وعمل في Google بين عامين 2005 و 2012 كما انه يفوم دائماً في تطور لغة python .
و لغة بايثون هي لغة سهلة و بسيطة فقراءة الأكواد المكتوبة بتلك اللغة يكاد يشبه قراءة اللغة الإنجليزية على سبيل المثال حيث يمكن إعتبارها لغة شبه رمزية pseudo-code، فضلاً عن ذلك تتميز بايثون بالسهولة من حيث الكتابة و القراءة ومن حيث التركيب النحوي لها فهي تعتمد على المنطق في تنفيذ التعليمات البرمجية. و مع التطوير المستمر لها وضعت بايثون ثقافة خاصة تتميز بها عن باقي اللغات في طريقة كتابة الكود حيث تعتمد اللغة على معيار PEP8 وهو عبارة عن إتفاقية لكتابة التعليمات البرمجية بحيث تضمن سهولة القراءة وسهولة المساهمة.
كما أن لدى لغة بايثون حوالي المليون مستخدم حاليا ، وهي من أوسع لغات البرمجة استخداماً، و يتشاركُ أغلب مستخدمي بايثون في بعض الأسباب والعوامل التي تدفعهم لاختيار هذه اللغة , ألخصها كما يلي:
- جودة البرمجيات Software Quality : تتبني فلسفة بايثون نهج الاكتفاء بالحد الأدنى ، هذا يعني أنه في نهج بايثون البساطة أفضل من التعقيد ، و بالتالي فإن بايثون تركز وبشكل كبير علي أن يكون بناء الجمل البرمجية بسيطاً وقابلاً للقراءة و الفهم ، وبجانب هذا تمتلك بايثون العديد من الأدوات التي تجعل إعادة إستخدام الكود البرمجي شيء سهل،و هذا بالضبط ما يضمنه معيار PEP8 الذي تعرفنا عليه في الفقرة السابقة .
- إنتاجية المطور Developer Productivity : لفة بايثون و على خلاف لغات أخرى مثل سي وجافا وخلافه ، فالكود البرمجي في بايثون أقل بمقدار 3 إلي 5 مرات من مثيله في باقي اللغات، وهذا يسهل علي المطور كتابة الكود وتصحيحه وصيانته. يمكن القول أن هذه النقطة مشتركة مع Ruby أيضا
- سهولة نقل البرنامج Program Portability : لغة بايثون هي لغة محمولة أي يمكنك إستخدام شفرتها على جميع المنصات أي أن ما تكتبه من برمجيات بواسطة بايثون يمكن أن يعمل على جميع المنصات مثل لينكس وويندوز وماكينتوش وسولاريس وشارب وبلاي ستيشن وغيرها من المنصات.
- مكتبات الدعم Support Libraries : تأتي بايثون مع مجموعة ضخمة من الوظائف مسبقة الصنع تسمي المكتبة المبدئية، وبجانب هذا يمكن تحظي بايثون بمجموعة ضخمة من مكتبات الطرف الثالث والتي يطورها مجتمع بايثون نفسه في مختلف المجالات , كما أن هذه المكتبات ستساعدك على عمل أي شئ فهناك مكتبات للوثائق وقواعد البيانات ومتصفحات الويب والبريد الإلكتروني والواجهات الرسومية وغيرها.
- التكامل مع باقي اللغات Component Integration : الأكواد البرمجية لبايثون تستطيع وبكل سهولة التواصل مع الأجزاء الأخري من البرنامج المكتوبة بلغات برمجيه أخري، فمثلاً تستطيع بايثون إستدعاء مكتبات برمجية من C و C++ كما تستطيع التكامل مع Java فهي لا تقف وحيدة بمعزل عن باقي اللغات.
أيضا هناك نقطة أخرى مهمة وهي أن بايثون لغة مفسرة , و اللغة المفسرة هي اللغة التي لا تترجم البرامج المكتوبة بها إلى لغة الآلة الخاصة بالمعالج ولكن يمكن تفسير البرامج المكتوبة بها بواسطة Compiler خاص بها، على سبيل المثال فإذا كان هناك برنامج مكتوب بلغة سي أو سي بلس بلس يتم تحويل الكود من اللغة المصدر إلى لغة الحاسوب أي كود ثنائي من أصفار وأحاد. من الميزات الرائعة في بايثون أنها لغة مفسرة أي لا تحتاج التصريف إلى كود ثنائي حيث يمكن تشغيل البرنامج من الكود المصدري مباشرة بواسطة وسيط يسمى bytecode ومهمته أنه يقوم بترجمة الكود للغة الجهاز مباشرة.
حسنا إذا , ما هي إستخدامات بايثون ؟
بايثون توصف بأنها لغة برمجة عامة general-purpose هذا يعني أن لها إستخدامات غير محدودة، فيمكنك إستخدامها في كل شيء بداية من تطوير مواقع الويب والألعاب إلي برمجة الروبوتات وسفن الفضاء، ونذكر بعض المجالات التي تستخدم فيها بايثون بكثرة كالتالي:- برمجة الأنظمة Systems Programming
- واجهات المستخدم الرسومية GUIs
- تطوير الويب Web and Internet Development
- برمجة قواعد البيانات Database Programming
- البرمجة العلمية والرقمية Numeric and Scientific Programming
- برمجة الشبكات Network Programming
- برمجة البرامج والألعاب Software & Game Development
- التنقيب عن البيانات Data Mining
- الذكاء الإصطناعي Artificial Intelligence
- تمثيل البيانات Data Visualization
ما يضيف لبايثون زخماً أكبر أيضاً أنها تستخدم من قبل الشركات العملاقة، فمثلاً جوجل تستخدم بايثون بشدة في أنظمة البحث، ويوتيوب مبرمج بشكل واسع بإستخدام بايثون، كما أن دروب بوكس تعتمد علي بايثون في برامج سطح المكتب والسيرفرات الخاصة بهاـ، وتقول شركة جوجل أن بايثون كانت جزءاً أساسياً منذ البداية في مشاريعها، وأن مهندسيها يعتمدون علي بايثون بشكل كبير، وأنهم دوماً يبحثون عن أشخاص لديهم مهارات عالية فيها.
الآن بعض المصادر لتعلم بايثون
- مقدمة إلي علوم الحاسب والبرمجة بإستخدام بايثون : هذا الكورس يقدم في موقع edx بشكل منتظم من أفضل جامعة في العالم MIT , من هنا .
- أساسيات لغة البايثون من Codecademy : كورس تفاعلي رائع مليء بالتحديات كبداية هو فوق الممتاز , من هنا .
- كيف تفكر كعالم حاسوب الإصدارة التفاعلية : كتاب ممتع وتفاعلي يستخدم بايثون كلغة البرمجة خلال صفحاته , من هنا .
- البرنامج التعليمي في الموقع الرسمي لبايثون : مكثف جداً في الشرح لكنه جيد ويمنحك فهم رائع لبايثون , من هنا .