الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال لمحبي البايثون؟!

بدأه سلفي وأفتخر في 23 أغسطس 2010 · 25 رد · 1,657 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سؤال صغير لمحبي البايثون ..

أنا لم أعمل على البايثون بالقدر الذي يجعلني أحكم على كل خباياها أو ما شابه ..

ولكن ما هالني فيها هو موضوع عدم وجود أقواس .. واستبدالها بالـ Indent .. والاعتماد على المبرمج في التأكد من سلامتها حتى يتأكد من سلامة الأكواد.

أعلم أن هناك IDEs كـ Eclipse تدعم كتابة البايثون .. ولكن هذا لا يشفع - لي - عدم وجود أقواس ..

سألت بعض محبيها عن السبب وأخبرني بأسباب لم أقتنع بها ولن أقتنع بها .. منها:

1) سرعة الكتابة .. فبدلاً من كتابة أقواس فلن تحتاج لكتابة الأقواس وبالتالي ستوفر الوقت الذي ستكتب فيه هذه الأقواس!!!!

2) رغبة من مطوري اللغة أن يصبح المبرمجين بها على درجة عالية من التركيز لدرجة أنهم عليهم ألا يخطئوا أبداً في الـ Indent!!!!!

وعلى النقيض .. أرى أنها فكرة فاشلة بكل المقاييس .. فهي Error Prone لأقصى حد .. ستسبب الكثير من الـ Logical Errors والصداع لعين المبرمج ..

ما رأيكم يا محبي البايثون؟ وكيف تجدون هذا الأمر ؟!

3 −2

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#2

في الحقيقة هذا الموضوع يزعجني عندما استخدام لغة Python, و عند تشعب جمل IF حلقات FOR و WHILE, أكتب تعليق يفيد بنهاية البلوك كالتالي:

for r in range(20):

    c = 0
    m = 0
    x = 1

    while c < 20:


        if(m == 4):

            m = 0
            prow.append(x)
            x = 1

        #end if

        if (20 - c) < 8:
            break


        for i in range(c, (c + 8), 2):
            x = x * int(n[r][(i) : i + 1])
            m = m + 1           
            s = s + int(n[r][i : i + 2])
            t.append(int(n[r][i : i + 2]))

        #end for ( i )

        c = c + 1

    #end while ( c )

#end for ( r )

ولكن استخدم خاصية Code Folding في Editor أو IDE لمساعدة في هذه المشكلة مع التعليقات

1
#3

عملت مع عدة لغات وبالتالي عدة terminators. من الأقواس المتداخلة للغات C إلى "الثرثرة" والبلوكات الخاصة ببيسك وباسكال. لكنني لم أرتح لأيٍ منها قدر ما ارتحت إلى أسلوب البايثون. نعم قد يصبح الموضوع صعباً عندما تكثر القطع المتداخلة nested blocks ولكن هذا يجعلني مبرمجاً أفضل لأنني أصبحت أتجنبها قدر الإمكان وأحاول أن أجعل كودي نظيفاً وسهل القراءة. لينوس تروفالدس له مقولة ظريفة في هذا الموضوع بالذات:

اقتباس
If you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.

"إذا كنت تحتاج إلى أكثر من ثلاث طبقات من الـindentation، فأنت في مشكلة عويصة أصلاً، وعليك إصلاح برنامجك."

2
#4

أتفق مع الاخوه فى أن الأسباب التى تقال حتى الأن لإلغاء الأقواس غير كافيه و ليست منطقيه و اسلوب Indent يسبب لى إزعاج كبير و لذلك عندما تعلمتها كان قصدى أن أتعلمها لزياده المعرفه و تعديل بعض الإسكربتات أما للعمل الذى يتوقف علية رزقى فلا و ألف لا و أفضل أى لغه ثانيه حتى لو كانت البايثون تقدم لى كل المتطلبات على طبق من ذهب.

اقتباس
نعم قد يصبح الموضوع صعباً عندما تكثر القطع المتداخلة nested blocks ولكن هذا يجعلني مبرمجاً أفضل لأنني أصبحت أتجنبها قدر الإمكان وأحاول أن أجعل كودي نظيفاً وسهل القراءة. لينوس تروفالدس له مقولة ظريفة في هذا الموضوع بالذات

أرى هذا من ضمن الأسباب الغير مقنعه و مقوله لينوس أراها ليست صحيحه بهذه الدرجة ففى حالات كثيره إذا لم أكتب ثلاث طبقات أو أربعه سيزيد على الكود بصوره كبيره جداً كما أن يجب أن يضاف التعليقات بصوره مستمره على أى كود فى أى لغه و أرى أن الأقواس تساعد المبرمج على قراءه الكود أكثر و تجعله أنيق كما تعطى الحريه أثناء كتابه الكود و يمكن التحرير بسهوله فى أى محرر.

2 −1
forum-signature-01.gif
#5

@SamCode

فكرة التعليقات جيدة .. ولكنها لن تغني عن الوقوع في خطأ ما بدون قصد مما يجعلك تجلس ساعات أو ربما أكثر لتكتشف الخطأ .. وانظر مثلاً المثال التالي:

if 1 + 1 == 2:
...     print "foo"
...     print "bar"
...     x = 42

if 1 + 1 == 2:
...     print "foo"
...     print "bar"
x = 42

الفرق بينهما شاسع وكلاهما لن يعطي خطأ .. لكن حتى تستطيع تمييز الخطأ الذي وقعت فيه في برنامج به مئات الأسطر .. سيكون الوضع مكلفاً للغاية!! وهذا كله بسبب أنه لا يوجد قوسين لن يكلفاك ثانية لكتابتهما تحت أي بلوك مثل أي لغة برمجة تعطي مبرمجيها قراءة أفضل وسرعة في اكتشاف الأخطاء سواء كانت كتابية أو برمجية.

@SystemDown

لا أقتنع بكلام لينوس .. فهو ليس بمقياس .. وربما هذا يعتبر حجة عليك في هذه المسألة وليس معك .. فليس شرطاً أن أكتب كود غير متعدد الطبقات لكي أقرأه .. ولا يعتبر هذا تبريراً لوجود الـ Indent .. معنى هذا أنني عندما أكتب كود بايثون علي أن أكتبه بطريقة قد تكلفني مزيداً من الوقت وقد تضيف مزيداً من التعقيد وكل هذا من أجل الـ Indent !!!

@asm-soft

أتفق معك قلباً وقالباً .. +1

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#6

كودك بإستخدام الأقواس { } بتستخدم ليه ال indentations لتنظيمة فى اى لغة تانية مثل سى او سى شارب

اما عن المثال

if 1 + 1 == 2:
...     print "foo"
...     print "bar"
...     x = 42

if 1 + 1 == 2:
...     print "foo"
...     print "bar"
x = 42

فالمثال واضح جدا او يمكن انا الى عينى بقت مدربة كويس مع بايثون فبحدد السكوبات بسهولة :D

الغريب ان الموضوع لم تتعرض لاستخدام مزيج بين ال tabs والمسافات ودى من اهم مشاكل ال indentations لأنك هتاخد ايرور وبدون سبب :D

**طبعا الحل انك تكون انسان قياسى وتستخدم 4 مسافات دايما بدل ال tab او تفعل اختيار تحويل ال tab من محررك المفضل الى مسافات

وفى الأول والأخير فى خيارات تانية .. ربما بيرل! ههههههه :D

1 −1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#7

هناك فرق ..

لا يوجد أي معنى للمسافات أو ال Tabs أو ال Indent في السي شارب مثلاً وأعتقد الجافا .. وهذا يدل على أن صحة الكود من عدمه لا تعتمد على هذه الأمور الصغيرة التي تشغل المبرمج عن الهدف الحقيقي من لغة البرمجة وهو الانتاج وليس مراعاة المسافات والـ Tabs.

ولم أتطرق لموضوع خلط الـ Tabs بالمسافات وغير ذلك لأنه في علمي هناك IDEs تحدد هذه الأمور كوضع قياسي مما يسهل على المبرمج جزء من المهمة وتترك له المهمة الأكبر حتى يواجه مصيره المحتوم :D

وبخصوص المثال الذي أوردته أنا .. جرب أن تضع المثال وسط 100 سطر كود وفيه أكثر من Nested Code .. وستعلم الفرق .. ثم جرب أن تضعه وسط 1000 سطر .. وجرب وسترى الفرق.

المثال بسيط للمعاينة فقط وليس لضرب مثال عملي على الواقع الذي يحدث لمبرمجي البايثون.

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#8

ادى مثال من 1000 سطر

http://bitbucket.org/xmonader/helloed/src/tip/helloed6/src/widgets.py

وفيه اجزاء ب 3 مستويات من المسافات البادئة على سبيل المثال هتواجها كتير بمجرد تعريف ميثود داخل كلاس وحلقة وشرط وصلت ل3!

عامة هى عذر بدون اسس غير "حب" او "كره" الإسلوب لكن من ناحية الإنتاجية فلا. ال off-side rule مطبقة فى عدة لغات اخرى مثل هاسكل

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 23 أغسطس 2010 في 14:40

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#9
اقتباس
فالمثال واضح جدا او يمكن انا الى عينى بقت مدربة كويس مع بايثون فبحدد السكوبات بسهولة

+1 مع انى لست خبير بايثون مثل احمد يوسف ولكنى استخدمتها فقط لشهور قليلة.

اعجبنى اسلوب تلك الطريقة من الindention وافضل تطبيقة فى السى (افضل تطبيقة بمسافتين بدل اربعة) لانها تجعل الكود منظم وواضح بسهولة للقراء والكتابة ولكن فقط تحتاج لتعود بسيط فى البداية .

اقتباس
وبخصوص المثال الذي أوردته أنا .. جرب أن تضع المثال وسط 100 سطر كود وفيه أكثر من Nested Code .. وستعلم الفرق .. ثم جرب أن تضعه وسط 1000 سطر .. وجرب وسترى الفرق.

من ذا الذى يكتب فانكشن بايثون اكثر من 20 سطر فمابالك ان تكون block اكثر من ذلك ,فلسفة البايثون تبتعد كثير عن الايطال وفى حالات الاجبارية تشجع على التقسيم .

جربت بايثون لفترة من الزمن وهي لغة جميلة فى مجالها وميسرة ولاتبخل بشى على المبرمج.

تم تعديل هذه المشاركة بواسطة apex في 23 أغسطس 2010 في 14:49

name : mohamedyosry

#10

أنا لا أتكلم عن قوة البايثون من عدمها .. ولا أتكلم عن سهولتها من عدمه .. ولكن أتكلم عن Style في البرمجة .. أكرهه وأعلم أن كثيراً يكرهه وذلك لأسباب منطقية جداً وليست أسباب Subjective تعود لكل شخص ولكنها أسباب حيوية .. ويقع فيها معظم مبرمجي البايثون حتى المحترفين منهم.

−1

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#11

هناك من لايجد مشكلة فى هذا الامر ويراه ميزة

ومن يجد فى ذلك مشكلة فعليه باستخدام ادوات تسهل عليه وهى كثيرة جدا

بالنسبة لى PythonPWCT تتيح لى ان استخدم بايثون بالاسلوب الذى يناسبنى

post-167987-058543000 1282568311_thumb.j

والله الموفق

المرفقات
PythonPWCT.JPG
1 −1
#12

أتمنى أن يجيب اي كاتب عن سؤال في نهايه الفقره التي يكتبها وهو

هل تتقن البرمجه بالبايثون ولست هاو لها ؟

إذا كان الجواب نعم نأخذ منه إن كانت الطريقه صعبه أو سهله وإن كان الجواب لا عندها لن نأخذ منه أي شيء

فأنا أرى أن من يعمل على بايثون لا يكرهه طريقه الجمل فيها ومن يكره طريقة كتابتها هو شخص جربها لفترة يوم أو شهر أو مجرد مطلع وهذا يجعل الحكم من منظوره خاطئ

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#13
اقتباس
ولكن أتكلم عن Style في البرمجة .. أكرهه وأعلم أن كثيراً يكرهه وذلك لأسباب منطقية جداً وليست أسباب Subjective تعود لكل شخص ولكنها أسباب حيوية .. ويقع فيها معظم مبرمجي البايثون حتى المحترفين منهم.

ياريت تكتبلنا الأسباب الحيوية اللى لايختلف عليها اثنين

*عمرى ماشفت مبرمج "محترف" بيشكى من اسلوب بايثون ولكن العكس كل اللى بيستخدم بايثون من اهم الأسباب هى وضوح الكود.

ايه الميزة فى ان الواحد يستخدم { } او حتى يستخدم begin/end بدلا من ال : مع المسافة البادئة! (بالعكس دى بتدى كود مقروء اكتر)

اولا واخيرا عدم القدرة على عدم تحديد السياق دا قصور من المبرمج -اللهم الا اذا كان فى حالتك لسه بيطلع على اللغة او حتى واحد بيقرا سورس ملف من غير مايعرف حاجة عن اللغة -

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#14

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

والأسباب الحيوية ذكرتها وهي أن هذه الطريقة Error Prone فهي مدعاة للخطأ أكثر من أي شيء أخر.

وإن حدث خطأ فيصعب عملية الـ Debugging إذا كان الخطأ Logical

أما بخصوص الأقواس والتي أفضلها على Begin, End هي أننا لا نهتم بعدد المسافات ولا بعدد ال Tabs ولا المسافات في البداية يجب أن تكون كذا حتى نضع ال block الفلاني في ال scope الفلاني .. فهي تفرغ العقل لل Business case التي في يدك لتحلها .. ولا تضيف على العقل مجهوداً ذهنياً لا يرجى منه أي فائدة تذكر.

كما أنها تجعل الكود مقروء .. ولا إشكال في ذلك مطلقاً ..

ولهذا فإن الحجة المبنية على وجود مسافات بادئة أنها تجعل الكود أكثر قراءة أو ما شابه .. مردودة عليها لأن كل لغات البرمجة تقريباً منذ قديم الأزل إلى الآن إلا البايثون والقليل جداً لا يعتمد على فكرة المسافات البادئة التي هي عرضة لخطأ المبرمج بقصد أو بدون قصد وربما خطأ الكيبورد على عكس الـ Tokens المشهورة كالأقواس أو الكلمات المخصصة لذلك.

فما الفائدة من عدم وجود أقواس أو غيرها في البايثون؟ هذا هو سؤال النقاش .. وهذا الذي نحتاج له لإجابة منطقية .. وليست لإجابة تسويقية.

وليس السؤال ما فائدة الأقواس .. لأنه أمر واضح جلي في كل لغات البرمجة المتواجدة الآن في السوق.

1

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#15

لكل لغة برمجية عيوب نحوية ومزايا نحوية...

وهناك تعقيدات نحوية في بعض اللغات متل ++C على سبيل المثال وكان لها دور في قوة هذه اللغة في التصميم والتنفيذ...

همسة جانبية ارجو قبولها!

نقاشات ومداخلات رائعة, قسم البايثن أولى بها وخصوصاً أنه شبه معطل! وان الموضوع خاص بهذه اللغة ونحوياً بالذات!

موفقين يارب

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#16
اقتباس
بخصوص اللغة .. فأنا لست مطلعاً عليها ولا أنوي العمل بها فهي لا تناسب بيئة عملي لا من قريب ولا من بعيد فهي أصغر بكثير من أن توفي احتياجاتي في بيئة عملي .. ولكني أناقش كثيراً ممن يعملون بها وأحب تبادل المعرفة من هنا وهناك .. وهالني ما ذكرت.

اما انها اصغر من ان توفى بإحتياجاتك فربنا معاك.

اقتباس

والأسباب الحيوية ذكرتها وهي أن هذه الطريقة Error Prone فهي مدعاة للخطأ أكثر من أي شيء أخر.

وإن حدث خطأ فيصعب عملية الـ Debugging إذا كان الخطأ Logical

الكلام دا مش سليم من اوله لآخره. غير انه بعيد عن العالم الحقيقى لبايثون (اللى حضرتك قلت انك مش جزء منه) اللى اكيد الإزاحات مش هى اكبر مشاكله!

اقتباس
فما الفائدة من عدم وجود أقواس أو غيرها في البايثون؟ هذا هو سؤال النقاش .. وهذا الذي نحتاج له لإجابة منطقية .. وليست لإجابة تسويقية.

لتانى مرة ايه فائدة وجودها واللى بيفصل بين الblocks هو ":" بدل الأقواس!

اما عن حتمية الأقواس بقة .. فمش عشان لغة X بتستخدم اقواس يبقة لازم لغة Y تستخدمها .. فى لغات مش بتستخدم لااقواس ولامسافات

اللذيذ ان بردو اللى بيستخدمو الأقواس دى بيحافظو على ال indentation كمان :D

*بخصوص موضوع ال tabs فبايثون ليها style والمفترض من اى مبرمج بايثون انه يلتزم بيه PEP 8

edit: اى حد ليه الحق انه يحب او يكره اسلوب لغة وفى بدل اللغة 100 لكن بلاش نشر كلام بعيد عن الحقيقة خاصة وانت بدون اى احتكاك فعلى معاها.

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 23 أغسطس 2010 في 18:08

2 −1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#17

عندما قلت أنها لا تناسبني .. فهذا ليس احتقاراً للغة .. ولكن مجال عملي لا يناسب البايثون .. أرجو فهم ذلك وعدم الخروج من الحوار العلمي في الموضوع لأسلوب تهكمي لا علاقة له بالواقع. فليس كل لغة تناسب كل Domain .. وليس كل Business case يمكن حلها بأي لغة. والبايثون لغة من اللغات.

بخصوص الـ Indent فنحن إن حافظنا عليها أو لم نحافظ عليها في السي شارب مثلاً .. فهي ليس لها أي Semantic ولا تسبب أي مشكلة من أي جهة لذا هي ليست ركتاً أصيلاً من أركان اللغة. وهذا لأنها قد تسبب مشاكل بسبب الأخطاء الواردة بسهولة جداً فيها. كما هو الحال في البايثون.

والأسباب الحيوية ذكرتها وهي أن هذه الطريقة Error Prone فهي مدعاة للخطأ أكثر من أي شيء أخر.

وإن حدث خطأ فيصعب عملية الـ Debugging إذا كان الخطأ Logical

وأرجو الرد بأسلوب علمي .. فأنا لا أتكلم عن مشاكل البايثون فلكل لغة قصورها ومكانها الشرعي ..

إنما أتكلم عن وجهة نظري ووجهة نظر الكثيرين من محترفي هذه اللغة .. حتى وإن تعودوا على هذا الأسلوب ولكنتي ما زلت لا أرى في ردودك أي سبب علمي ينفي ما أقوله من قريب ولا من بعيد.

1 −1

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#18

السلام عليكم

أحمد عبد المنعم كتب:

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

والأسباب الحيوية ذكرتها وهي أن هذه الطريقة Error Prone فهي مدعاة للخطأ أكثر من أي شيء أخر.

وإن حدث خطأ فيصعب عملية الـ Debugging إذا كان الخطأ Logical

اخالفك وجهة النظر

فى بداية تعلى للبايثون كل الوضع غريب شوية لكن اﻻن هى مريحة وحتى لما نقارن المسافات باﻻقواس كده كده ﻻزم الواحد بيبص على البلك

فمن حيث الوقت مع اﻻعتياد بايثون مريحة

1
#19
sayedall كتب:

السلام عليكم

اخالفك وجهة النظر

فى بداية تعلى للبايثون كل الوضع غريب شوية لكن اﻻن هى مريحة وحتى لما نقارن المسافات باﻻقواس كده كده ﻻزم الواحد بيبص على البلك

فمن حيث الوقت مع اﻻعتياد بايثون مريحة

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

وجهة نظر تحترم .. :)

وأهلاً بالنقاش العلمي المؤدب :)

2 −2

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

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

أرجوك .... هذا المنتدى منتدى متخصص باللغات ومثل هذا الكلام يزعج الكثيرين ويموه المبتدئ

ماذا تعني بأصغر بكثير من أن توفي إحتياجاتك ؟ ماهي إحتياجاتك !!!

البايثون قرأت عنها وعن إمكانياتها وحاولت وأحاول تعلمها بشكل جاد رغم ضيق الوقت لدي وعندما أقرأ من أحد أعضاء هذا المنتدى مثل هذا الكلام فهذا يدل على رؤيه صحيحه فأرجو إخبارنا عن كيف توصلت إلى صغرها وعدم تلبيه إحتياجاتك ؟

2

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#21

من الجيد ان Python هى لغة مفتوحة المصدر و بإمكان اى من كان ان يطلب طلب ميزة جديدة

Suggested Tasks

اقتباس

اذا تعني بأصغر بكثير من أن توفي إحتياجاتك ؟

مثلما لا يمكننى كتابة Event Driven Application باستخدام ال Basic

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#22

ماذا كنت ستقول لو رأيت لغة RPG الخاصة بنظام AS400، كدت أجن عندما درسناها laugh.giflaugh.gif

لا يمكنك كتابة الشيفرة بحرية، بل هناك أعمدة يجب أن تملأها بقيم خاصة باللغة

تم تعديل هذه المشاركة بواسطة herch في 23 أغسطس 2010 في 21:57

#23

عملي على بايثون بشكل عام هو في مشاريعي الشخصية. ولكنني قليلاً ما أصادف خطأً بسبب الـindentation. لأنني حتى في لغات الأقواس أقوم بهذا العمل بالـindentation بشكل شبه آلي. أن أرى كوداً بهذا الشكل:

if (1 + 1 == 2){
...     print "foo";
...     print "bar";
x = 42;}

قد لا يسبب خطأً في لغات الـC ولكنه مزعج في القراءة وإذا بدأت البلوكات تتداخل فإن القراءة تصبح شبه مستحيلة دون وجود IDE يعيد ترتيب المسافات لي. البايثون تجبرك على اتباع الـindentation السليم في كتبابتك للكود مما يجعل كودك سهل القراءة وبالتالي سهل الصيانة.

بالنسبة لمقولة لينوس، تذكروا أن هذه ليست مقولة قالها في محادثة شخصية مثلاً. بل هي جزء من وثيقة أسلوب كتابة أكواد الكيرنل الخاص بنظام لينوكس.

http://www.linuxhq.com/kernel/v1.3/53/Documentation/CodingStyle

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

تم تعديل هذه المشاركة بواسطة System Down في 23 أغسطس 2010 في 22:37

2
#24

يرد هذا الاشكال على لغات الاقواس ايضاً؟

فلم لا تستخدم هذه اللغات كلمات مثل الـ VB بدلا من الاقواس؟ الن تكون بهذه اكثر ضماناً من الوقوع في الاخطاء؟

الاخطاء المنطقة قاتلة، ويجب مراجعة الكود في جميع الحالات، ولا تختلف لغات البرمجة من هذه الناحية ...

المثال المذكور اعلاه، سيكون بـ VB كالشكل التالي:

if 1 + 1 = 2 then
...     print "foo"
...     print "bar"
...     x = 42
end if

if 1 + 1 = 2 then
...     print "foo"
...     print "bar"
end if
x = 42

اعتقد ان لغة پايثون ستقلل الوقوع في هذه الاخطاء، لانها تجبر المبرمج على رعاية التسلسل المنطقي منذ البداية ... وستسهل عليه المراجعة لاعتماده بشكل اساسي (واجباري) على الـ tabs .

والامر في البداية والنهاية، يعتمد على العادة، لا اكثر ولا اقل (على الاقل قبل دراسة اكاديمة رصينة)

−1
#25

أحيانا قد تواجه مشاكل من الIndentation لو قمت بفتح البرنامج بمحرر سئ و قام بتغيير الIndentation و لكنها حالات نادرة

مصري في بلاد الفرنجة.

قريباً اقرأ مقالاتي على It-scoop

مواضيع مشابهة