لغة البرمجة بايثون، اللغة المناسبة لتعلم البرمجة

السلام عليكم ورحمة الله

قبل سنتين أو أكثر حاولت إستكشاف لغة بايثون التي أصبحت من اللغات التي حدثت لها قفزة كبيرة في الإستخدام. لكن في كل مرة لا أجد أداة تطوير أو محرر مناسب ممايجعلني أنسى الفكرة. لكن اﻹسبوع الماضي مر علي هذا الفيديو من شركة كانونيكال لشرح أداة التطوير quickly التي تستخدم لغة بايثون. ويظهر أن عندهم مسابقة لبرامج أوبونتو إسمها Ubuntu App Showdown

قمت بإنزال أداة التطوير quickly وهي أداة تعمل في الطرفية، ليس لها واجهة، لكنها تقوم بتشغيل المصمم Glade، وهو مصمم لمكتبة GTK2 ولا يعتمد على لغة برمجة واحدة.

كذلك فهي تستخدم برنامج gedit لتحرير كود البايثون، ثم تقوم بربط الكود بالتصميم.

قمت أولاً بتحميل الفيديو إلى جهاز الكمبيوتر، وهو فيديو طويل يستمر لحوالي 41 دقيقة. فيه شرح لعمل متصفح بسيط باستخدام هذه اﻷدوات، ثم حزمه في شكل حزمة ديبيان .deb واليوم قُمت بتثبيت هذه الحزمة في لينكس مينت وقد عمل المتصفح بعد أن إحتاج لبعض المكتبات.

وهذا هو المتصفح البسيط الذي قُمت بعمله بمتابعة الفيديو خطوة بخطوة:

للأسف هذه اﻷداة مع إمكاناتها إلا أنها لا تُعتبر أداة تطوير متكاملة IDE، حيث لا بد لأداة التطوير المتكاملة أن تحتوي على محرر للكود، و منقح debugger، وواجهة تصميم تعمل كلها في بيئة واحدة في متناول اليد، مثل أدوات التطوير اﻷخرى: NetBeans, Lazarus, MonoDevelop.

اﻹعتماد على محرر الكود gedit لم يعجبني، فهو لايصلح لتعلم لغة بايثون، وتعليم اللغة يحتاج لمحرر به ميزات مثل تكملة الكود auto completion.

المشكلة الثانية في اﻷداة quickly أنها معتمدة على نظام أوبونتو، وبرامجها معتمدة كذلك على هذه البيئة، أو على اﻷقل فرع ديبيان في نظام لينكس، وهذا اﻹرتباط بنظام تشغيل واحد أو توزيعة واحدة يُقلل من عدد المستخدمين، فالمبرمجين الآن يعملون بأدوات تطوير تعمل في عدد كبير من المنصات وأنظمة التشغيل.

بعد الفراغ من تجربة أداة التطوير quickly و glade بحثت مرة أخرى في برامج أوبنتو فوجدت محرر آخر يُسمى geany، ويبدو أنه غير معتمد على لغة برمجة واحدة.

قمت بكتابة كود بايثون لقراءة ملف نصي وعرضه في الشاشة:

import datetime,os.path
print "hello world!"
today = datetime.datetime.now()
print str(today)

afilename = raw_input("Enter a filename: ")

if os.path.exists(afilename):

	f = open (afilename,"r")

	#Read file, line by line
	while 1:
		line = f.readline()
		if not line:
			break
		pass
		print line,
	# Close the file
	f.close()
else:
	print afilename +  ": Not found"

ذكرني هذا البرنامج بلغة البيسك في اﻷيام القديمة.

فكرت في أن لغة بايثون بسبب بساطتها وتوفرها يُمكن أن تكون خيار جيد لتعليم البرمجة، خصوصاً مع الطلاب اﻷصغر سناً، مثلاً مرحلة الثانوي. لي صديق يعمل مدرساً لمادة الحاسوب في المدارس الثانوية، سوف أطلعها عليه إن شاء الله.

نسيت أن أضيف أن هناك ظاهرة صحية لاحظتها في الفترة اﻷخيرة هي أن لغة بايثون حلت محل لغة سي القديمة في إنتاج برامج لنظام لينكس، بإعتبار أن لغة بايثون هي لغة جديدة وواضحة القراءة مقارنة بلغة سي التي أكل الدهر عليها وشرب.

About these ads

37 thoughts on “لغة البرمجة بايثون، اللغة المناسبة لتعلم البرمجة

  1. السلام عليكم أستاذي العزيز
    بما أن لي خبرة في لغة البرمجة بايثون إليك بعض الملاحظات البسيطة
    لغة البرمجة بايثون تأتي منصبة جاهزة في لينكس
    يمكنهااختبار إذا كانت موجودة بكتابة python -v في terminal
    ثانياً من أفضل المحررات لا ستخدام هذه اللغة e macs أو pyscripter
    ثالثاً : توجد أداة تطوير رائعة SPE ide
    رابعاً: لغة بايثون ليست مناسبة لتعلم البرمجة فقط بل قوية جدا لكتابة البرامج
    خامساً : هناك العديد من مكتبات الواجهات الرسومية pyqtk gtk wxpython

    http://www.ojuba.org/wiki/docs/wxpython

  2. عدم وجود IDE متكاملة احترافية مثل الـNetBeans تدعم البايثون بشكلٍ مكثف هي المشكلة الرئيسة لها، و الإشكالية الأكبر أن مجتمعها لا يولي هذا الأمر الاهتمام الكافي (و ربما لا يفعل في المستقبل كذلك) رغم أن هذا الأمر لو تم سيجعل أناساً كثيرين يتحولون للبرمجة باستخدامها !

  3. شكراً لك اﻷخ سامح على هذه المعلومات. الغريب وجدت أداة التطوير SPE ضمن البرامج المُثبتة، فقد قُمت بتحميلها من قبل، لكن لا أدري لِم لم أقم بإستخدامها. عندما فتحتها اﻵن لم أجد فيها مصمم للفورمات، فقط تحرير مصدر كود بايثون.
    يوجد شيء آخر لم أتبين منه بعد، وربما هذا أحد أسباب نفوري منها، أنها لغة script، تستخدم مفسر بياثون، فهل هذا هو الخيار اﻹفتراضي، أم يوجد طريقة لترجمة برامجها لإنتاج ملفات تنفيذية قائمة بذاتها ولاتحتاج لمفسر أو مترجم بايثون.

  4. مما قرأته عنه أعتبره بداية قوية لـIDE متكاملة، و لو كان هناك فريق كامل يقف وراءه فأظن أنه سيصبح منافساً قوياً في المستقبل بإذن الله تعالي خصوصاً أنه اهتم بجزئية مصمم النوافذ GUI designer و التي أجد أن معظم بيئات البرمجة بالبايثون و الـC و الـ++C تُبالغ في إهمالها. لكن لا أدري هل يمكن الاعتماد عليه في المشاريع الكبيرة بكفاءةٍ أم يجب الانتظار بعض الوقت ليصل لهذه المرحلة.

    بالمناسبة هناك مترجم PyPy لترجمة أكواد البايثون لملفاتٍ تنفيذيةٍ تعمل منفردة، و هاك رابط الموقع الرسمي للمشروع:

    http://pypy.org/

  5. تبقى سؤال، هل يمكن حمل برامج بايثون التي تستخدم واجهة رسومية معتمدة على مكتبة GTK إلى أنظمة أخرى؟ أم أنها مرتبطة فقط بنظام لينكس، أم يُنصح بإستخدام مكتبة رسومية أخرى

  6. wxpython هي المكتبة القياسية و إذا استخدمتها شغل برامجك حتى ولو على سطح القمر
    ولكن gtk تقريبا ليست مدعمة بالوجه الأمثل على windows أما qt و wxpython فيمكن استخدامها

  7. نعم، كلغة تعليمية بسيطة. لكن لعمل برامج كبيرة فليس لدي خبرة في ذلك ولا استطيع اﻹجابة اﻵن، فلم أجد أداة تطوير مقنعة و متكاملة للغة بايثون مثلما توجد أدوات مثل NetBeans للجافا و Lazarus لفري باسكال.

  8. أعتبر البايلثون من اقوى لغات السكريبتن..
    لكن مع الاسف الاقل سرعة في المردودية و الادا،, كما لا ارى استعمال تجاري لها۔

  9. مشكور أخي على مشاركة تجربتك الشخصية،
    أعتبر البايثون من أقوى اللغات و هي من المحببات إلي،
    شخصيا استخدم Eclipse مع PyDev لتطوير تطبيقاتي كما أنه يوجد Sublime Text مفيد جدا، أما بالنسبة للمبتدئين فشخصيا أنصح باستخدام VIM و دلك على يعتاد المطور على الكلمات البرمجية و يتمكن من حفظها.

  10. بايثون لغة رائعة وقوية جدا تمت برمجة برامج قوية بها مثل بلندر الغني عن التعريف ومع دلك فهي سهلة جدا هي لغتي المفظلة بعد الدلفي

  11. يكفي أن برنامج Blender تم عمله بلغة paython
    أظنك قد سمعت عنه برنامج حجمه 31 ميجا فقط يقارن ببرنامج 3D maX
    الذي حجمه أكثر من جيجا
    هذا موقع البرنامج http://www.blender.org
    بصراحه لقد أعجبت بهذه اللغة بسبب البرنامج فلو إطلعت على البرنامج والأعمال السينمائية التي أستخدم فيها لدهشت بهذه اللغة..!
    ولكن السؤال هل هذه اللغة تستطيع العمل بدون منصة ..! أعني عمل نظام تشغيل لوحدها

  12. حسب تعريف لغة بايثون في ويكيبيديا:
    Python is a general-purpose, interpreted high-level programming language
    فهي في الأساس لغة معتمدة على مفسر interpreter وليس مترجم compiler
    مثلها مثل لغة php. لكن سمعت أنه يُمكن أن يتم إصدار برنامج تنفيذي للبرامج المكتوبة بواسطتها. لكن يبدون أن هذا ليس الخيار الطبيعي والتلقائي في إنتاج برامج بايثون، حيث أن طبيعتها أن تكون لغة scripting

  13. تنبيه: إحصاءات المدونة لعام 2012 « مدونة أبو إياس

  14. اخواني ممكن أستفسر أنا مبتدء في البرمجه وأتبع شرح لكتاب عن البايثون وأستخدم نظام ويندوز7 الكتاب يشرح على اللينكس والويندوز لكن في مرحلة طلب اني افتح text editor او vim لكن أعتقد إن هذي تخص نظام لينكس لا أعلم ما هذه لاني لم أكمل حتى اجد حل او بديل عن text editor او vim أرجو المساعده

  15. السلام عليكم أخواني أنا مبتدء بلغة البرمجة وهاد تخصصي بالجامعة وراح أبدأ كمان أسبوع وراح نتعلم على برنامج البايثون
    في كتب باللفة العربية تسهل علي الدراسة وتقويني بلغة البرمجة باثيون
    علما بأني بأدرسها باللغة الألمانية :(

  16. مع ان الموضوع قديم بعض الشيء فلا مانع من اضافة رأي , نظريا انا مبتدا في البرمجة لكن اتطلع للامور الجديدة باستمرار بالنسبة للغة البايثون اعتقد انها واحد من اللغات القليلة جدا المصنفة كـ very high level language والسبب كما تعلم فلسفتها والمقروئية والتفكير بالانتاجية كهدف وتقليص الزمن المستغرق في البرمجة وتقريبا تتميز بانها لاتجعل المبرمج يهتم بامور الذاكرة والاداة نظرا لما تقدمه من سرعة ‘ لاحظت انك تهتم كمبرمج تهتم باداء البرنامج ومن ناحية الاستهلاك للموراد وهذا شيء نادر في المبرمج اتذكر هذا الموضوع كلما
    رأيت اصدار جديد لاحد منتجات مايكروسوفت حينام اري عبارة الـ miniume requirment كيف سيعمل برنامج في اقل الامكانيات اعتقد انها مقولة من المفترض ان توضع بالنسبة لاي مبرمج في عين الاعتبار وستختصر الكثير من المشاكل البرمجية والتطويرية ‘
    بالنسبة لـ IDE مناسب حقيقة لم يعجبني الـIDE الخاص بها فاتجهت للبحث ووجدت Plugin خاص بـ visualstudi ممتازجداويفي بالغرض .

    علي العموم لي عودة عليالموضوع وعذرا علي الاطالة .

  17. مرحباً بك أخ المقداد
    بحكم عملي في برامج اﻹتصالات فالأداء شيء مهم جداً للبرامج، حيث تستهلك البرامج عشرات المخدمات، لذلك يُفضل لغات البرمجة التي تستهلك موارد قليلة، فبدلاً من أن يعمل نظام ما في عشرة مخدمات مثلاً اﻷفضل أن يعمل في خمس مخدمات، شركات اﻹتصالات لديها مئات المخدمات وهي في زيادة مستمرة، فإذا كانت حاجة البرامج في استهلاك الموارد كبيرة كلما زاد الصرف على العتاد والتشغيل، في حين أن الدخل من الاتصالات في تدني مستمر بالنسبة للفرد الواحد. لذلك سرعة التطوير ليست بنفس الأهمية، وربما لهذا السبب لم تنجح ميكروسوفت في الدخول في مجال اﻹتصالات

  18. استاذ معتز’ لدي اعتقاد ان موضوع التطوير بالنسبة للعتاد هو مسألة ذات ظرف مكاني لا اكثر لو تذكر في السابق اجهزة الـ64 بت لم تكون تلقي اي قبول نظرا للفكرة السائدة بان جميع البرامج لا تعمل عليها الان الوضع تغير تماما بالنسبة للعتاد فهو في تطور مستمر .
    بالنسبة لسرعة التطوير اعارضك في هذه النقطةمثلا انتكمستخدم لنظام لينكس يوجدمعدل سنوي ثابت للاصدارات بمعني الحاجة للتطوير هذا كمثال فقط .
    اما مجال الاتصالات فيكفي ان مايكروسوفت استحوذت علي خدمةسكايب كواحدة من الخدمات الرئيسية , ولو لاحظت الاصدارات الجديدة من نظام ويندوز تدعم عدةاصدارات من المنصات التشغيلية لتوسيع نطاقات عمل النظام ولاغراض تنافسية تعلمها ,

  19. أولاً نظام إسكايب لا يعمل بلغات برمجة ميكروسوفت فهو مكتوب بلغة دلفي، وهي لغة ذات أداء عالي.
    الشركات الكبرى مثل إركسون وهواوي وألكاتل وسيمنز لا تستخدم تقنيات ميكروسوفت في مخدماتها.
    العتاد في تطور لكن لاتنسى أن البرامج أيضاً في تطور وهي تزداد في استهلاك العتاد، ومشتركي شركات اﻹتصالات في زيادة مستمرة مع تقليل الدخل بالنسبة للمشترك الواحد أو ما يُسمى بالـ ARP ِAverage Revenue Per subscriber تخيل شركة إتصالات لديها عشرون مليون مستخدم ولديها 400 مخدم مثلاً، هل تنصحها بالتحول إلى لغات برمجة تستهلك موارد أكثر لتزيد عدد المخدمات إلى 800 مخدم لتؤدي نفس المهام؟

  20. عذرا لكن انا طرحت بكلمة استحواذ لم اتحدث عن البرمجة , نقطة هامة بالنسبة لعملية المخدمات مثلا في السودان طرحت لاول مرة فكرة الحوسبة السحابية كحلول للشركات والمرافق الحكومية ومقدمة من قبل مزودي خدمة رئيسيين الا تعتقد ان هذا سيقلل من اشكالية التعامل مع المخدمات الخاصة بكل شركة .

  21. الهم هو التقنية، فإذا قامت ميكروسوفت بإستحواذ شركة لا تعمل بتقنياتها فهذا لا يعني أن تقنياتها دخلت مجال اﻹتصال.
    الحوسبة السحابية ما زالت في طور الفكرة أكثر من كونها في طور التطبيق العملي، وهي تنجح في تطبيقات محددة، وهي تصلح للشركات الصغيرة والمتوسطة، لكن الشركات الكبيرة من اﻷفضل لها أن تقوم بوضع المخدمات عندها، من ناحية سرية ومن ناحية إدارة، حيث أن المخدمات تُمثل لشركات اﻹتصالات مثلاً القلب النابض لها، فلا تستطيع أن تضعه رهينة في شركة أخرى.

  22. بالنسبة للتقنية حاليا توجد سيرفرات ذات مقدرات عتادية ضخمة للغاية لكن اعتقد ان الحظر الاقتصادي والعقلية الادارية لمديري النظم في التشبث بجيل ونظام معين له اثركبير في عدم التطورعندنا .

  23. السيرفرات ذات القدرة العالية لها ثمنها، كذلك لا تنسى أن التكلفة ما زالت عالية. في إحدى المرات طلبت مني شركة صغيرة عمل نظام لها، ثم طلبت مني تحديد مواصفات مخدمات لشرائها، فعرضت لهم فكرة استئجار مخدمات في data center بدلاً من تخصيص غرفة للمخدمات وكافة المصاريف التي تليها، فطلبت من شركة لديها data center في تقديم عرض لنا لاستئجار مخدم virtual ذو سعة 500 قيقا بايت وذاكرة 2 قيقا، فكانت التكلفة 5 ألف جنيه في الشهر أي 60 ألف جنيه في الشهر. ففضلت الشركة الصغيرة شراء مخدمات ربما لايزيد سعر الواحد عن 5 ألف وتشغيله في مبانيها.

  24. المبلغ مرتفع نوعا ما لكن من ناحية اخري جودة الاستضافة الدعم الفني الامان الصيانة كل هذا في كفة وتضع القيمة المدفوعة في كفة اخري ..

  25. نعم صحيح، لكن نتمنى أن تنخفض التكلفة في المستقبل في حال دخلت عدد من الشركات في هذا المجال، سواءً كانت شركات مستهلكة أو شركات تُقدم خدمات إستضافة

أضف تعليق

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

You are commenting using your WordPress.com account. تسجيل خروج   / تغيير )

صورة تويتر

You are commenting using your Twitter account. تسجيل خروج   / تغيير )

Facebook photo

You are commenting using your Facebook account. تسجيل خروج   / تغيير )

Google+ photo

You are commenting using your Google+ account. تسجيل خروج   / تغيير )

Connecting to %s