ORWA

معايير في تقييم لغات البرمجه

55 ردود في هذا الموضوع

إسم الكتاب : معايير في تقييم لغات البرمجه , نسخة أوليه

عدد الصفحات : 55 صفحة

اللغة : العربية

الحجم : 510 KB

الصيغة : PDF

الوصف : بماذا يجب أن نفكر عند إختيار لغه برمجة .

رابط التحميل :

http://www.orwah.net/modules/mybooks/viewcat.php?cid=15]

أو من مكتبة الكتب في الموقع

معـايير في تقييـم لغـات البرمجـه

بماذا يجب أن نفكر عند إختيار لغه برمجه .

عروة عيسى . 5/12/2004 نسخه أوليـّـه , للحصول على النسخة النهائية راجع : www.orwah.net

الفهرس ..

_____________________________

مقدمه .................................................................................................................... 4

لمن هذا الكتاب .................................................................................................... 5

ملاحظات لابد منها .................................................................................................... 5

دعم OOP البرمجه غرضيه التوجه . أو البرمجه الشيئيه

مقدمه عن غرضيه التوجه …………………………………………………………………………………………….. 6

التغليف Encapsulation ........................................................................................... 6

الوراثه من أنماط موجوده ........................................................................................... 7

تعدديه الأشكال (Polymorphism) ............................................................................... 8

مناقشه ...................................................................................................................... 9

لغات البرمجه الغرضيّه الصرفه مقابل اللغات الهجينه ....................................................... 10

الوراثه المتعدده Multiple inheritance ........................................................................ 11

نموذج الأصناف الساكن مقابل نموذج مرجعيه الغرض .................................................... 12

الإداره الآليه للذاكره ومجمع النفايات .…………………….…………………………. garbage collect 14

الاستدعاء المتأخر (وتعدديه الأشكال) Late Binding and Polymorphis ........................... 15

معلومات الأصناف في زمن التشغيل RTTI ................................................................ 15

القوالب والبرمجه الجينيه (Generic Programming) ...................................................... 16

التجريد Abstraction ................................................................................................ 17

بعض المزايا الأخرى ................................................................................................ 17

القياسيه .................................................................................................................. 18

المقروئيه Readability وتنظيم اللغه ........................................................................ 19

- سرعه التكويد ..................................................................................................... 21

أمن اللغه Language Safe ...................................................................................... 23

وصول منخفض المستوى low-level access ............................................................... 26

السرعه Speed ...................................................................................................... 28

سرعه تطوير التطبيق ((الإنتاجيه)) ........................................................................ 28

سهوله اللغه ............................................................................................... 28

قابليه إعاده الإستخدام ReUsibility ................................................................. 30

التوسعيه Extendibility ................................................................................. 30

التخاطب مع نظم وتقنيات مختلفه .............................................................. 30

دعم التقنيات المختلفه ............................................................................ 31

توفر مكتبه أدوات واسعه Wide Component Library .......................................... 32

خلاصه ..................................... ................................................................. 32

السرعه في التنفيذ Executing Speed ..................................................................... 34

حجم التطبيق Application Size .............................................................................. 37

دعم المجاري المتعدده Multi Threading .............................................................. 38

معالجه الإستثناءات exception handling ................................................................ 39

دعم GUI و graphics ..................................... ....................................................... 39

الإنتشار والتسويق والدعم الفني Marketing and Support ................................... 41

المحموليه Portability ..................................... ..................................................... 44

المحموليه على صعيد نظم التشغيل ..................................... ....................................... 44

اللغات التي تعمل على منصات خاصه ..................................... .............................. 44

نسخ من اللغه مخصصه للعمل على نظم مختلفه .................................................... 46

محررات مختلفه تدعم نظم مختلفه ....................................................................... 47

المحموليه على صعيد إصدارات نظام التشغيل المختلفه ................................................... 47

المحموليه على صعيد نظام تشغيل واحد_أجهزه مختلفه ................................................. 49

مكتبات زمن تشغيل (Run Time) ..................................... .................................. 49

الأدوات التي إستخدمناها في برنامجنا ................................................................. 50

التكامل مع نظام التشغيل OS integrity ................................................................ 51

دعم الويب Web Supporting ............................................................................... 52

مفتوحه المصدر Open Source ............................................................................. 53

تم تعديل بواسطه ORWA
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بسم الله الرحمن الرحيم

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

هذه اللغات موجهه لحاجات مختلفه, ووجدت لتحل مشكلات مختلفه بطرق مختلفه, وتستخدم في بيئات برمجيه متباينه .

المشكله في لغات البرمجه أن فلسلفه كل لغه متعلقه بالأهداف التي بنيت اللغه على أساسها , ومزايا لغه برمجه ما هي ناتج دمج هذه الأهداف من ناحيه والضريبه المترتبه على أولويه هذه الأهداف من إهمال دعم بعض المزايا المتعارضه معها من ناحيه أخرى , خذ مثلاً بعض اللغات الشائعه :

- لغـه C++ : من أهدافها القوه والتحكم, تتميز بالكثير من التعقيد , ولها سرعه مميزه في التنفيذ .

- الدلفي: والهدف هو التركيز على برمجه النوافذ , وزياده الإنتاجيه, مميزه في برامج E_Business

- الجافا : تسعى لقابليه النقل بدون كبير اهتمام بالسرعه , مطرزه بالعديد من مزايا القوه , مميزه في التطبيقات الموزعه والويب .

- VB : تهدف إلى السهوله وسرعه التطوير . وتبسيط برمجه النوافذ , مميزه في تطبيقات أوفيس .

يمكننا ببساطه ان نقرر أن نجاح كل من هذه اللغات لا يعود إلى المميزات التي ذكرناها فقط , فما هي إلا غيض من فيض , وتوجد عشرات الأسباب الأخرى المهمه لتقرير أهميّـه لغه برمجه ما أو نجاحها في الإنتشار والتسويق .

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

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

. والله وليّ التوفيق .

لمن هذا الكتاب

هذا الكتاب موجه أساسا للأخوه التقنيين المهتمين بالإضطلاع على الميزات والفروقات بين لغات البرمجه الشائعه

ويبقى مفيدا لكل للأفراد الذين يريدون البدء بإختيار لغه برمجه تناسبهم وتناسب نوعيه البرامج التي يرغبون بإنتاجها

أو للشركات المعنيه بإنتاج تطبيقات برمجيه وتهتم بمعرفه لغات البرمجه الأنسب لكل مشروع .

ملاحظات لابد منها

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

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

ترتيب المعايير في هذا البحث ليس بحسب الأهميه , إنما وضعت بحسب التسلسل الزمني في كتابتها والغايه هي تبيان أن أهميه كل معيار قد تختلف حسب نوع المشروع الذي نرغب بتطويره .

هناك فرق كبير بين لغه البرمجه كنحو Syntax وكمعايير أساسيه وبين بيئه تطوير اللغه DE (منفذ اللغه) . حيث قد يوجد للغه واحده أكثر من محرر وقد تختلف هذه المحررات فيما بينها في دعم بعض مزايا , وسنتناول المحررات الأكثر شهره في هذا الكتاب أو المزايا المشتركه بينها .

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

كما وضحت في هذا الكتاب عن رأيي الشخصي ..

فأنا أرحب بأي رأي آخر ..

ملاحظة , أتمنى أن لاأكون قد تعصبت لصالح بعض اللغات .

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

بعد النقاشات هنا سأقوم بصياغه النسخة النهائية من الكتاب , وسأذكر إسم الموقع وأسماء المشاركين أحيانا , وسأنشره مجانا كما عودكم

لعله يقدم الفائدة لإبناء أمتي الغاليه .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جارى التحميل :)

وجزاك الله خيرا اخى عروة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك وجزاك الله كل خير.

55 تحتوي على خلاصة أكثر من 500 صفحة من كتاب Concepts of Progamming Languages !!!!

أضيف الكتاب للمكتبة وهذا هو رابطه

تم تعديل بواسطه walcom
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هل ممكن اخى وضع المقال على سيرفر اخر؟ كل ما احملها لا تفتح : مرة حفظتها بمساحة 150 كيلو ومرة 200 :)

ثوانى

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

تم تعديل بواسطه anwarica
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

حسنا لقد رفعها الأخ Walcom .. شكرا لك Walcom

هنا :

رابط الكتاب

قمت بتعديل الرابط في المكتبة

تم تعديل بواسطه walcom
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جاري التحميل .. شكرا لك اخي ORWA

ولي رجعة باذن الله ..

تم تعديل بواسطه فلسطينية
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحمد لله قرأته :)

ليس من حقى النقد ولكن يمكن اساعد شويه

الكتاب عجبنى كتير وان الوم شوية ان ماذكرت php خالص وذكرت perl .. وان كانت php or asp ليست لب الموضوع لأنه عن لغات برمجة متكاملة ولكن تم التطرق أيضا للويب :)

بالنسبة للدلفى والألعاب موافق معك على الموضوع ولا أرى أكبر من هذا الدليل.. برنامج http://gamemaker.nl/ الجايم مايكر .. فظيع وأمثلت قوية وتم برمجته بالدلفى ( ألعابه من النوع التى تعجبنى) .. طبعا غير الحاجات المعقدة بعد كده ..

بارك الله فيك أخى عروة .. وبالله التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

إنتقادك في مكانه , كان علي الحديث عن لغات الويب كلها (على الأقل المشهورة منها) . أو عدم الحديث عن جزء وترك أجزاء أخرى ربما أهم .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جاري التحميل وسأقرأ الكتاب وأعطيك مالدي ,, وماشاء الله على هذا المجهود الكبير ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم،

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

اعجبني جداً التالي:

أولاً: استخدامك الكلمة المقابلة بالانجليزية .. اما الكتب العربية التي لا تحتوي على المقابل الانجليزي للكلمة فانا لا أقرأوها لأنها تسبب مشاكل جمة عند مراجعة المواد الانجليزية ( والتي تمثل 90% من المرجعيات المتوفرة) ، على كل حال هناك بعض الاستثناءات التي لم تذكرها مثل:المكدس او الكومة

ثانياً: اضفاءك الحيوية على الكتاب مثل ذكر مقولات المبرمجين و مطوري لغات البرمجة

اقتراحاتي:

أولاً: الفونت صغير بالنسبة للعمي امثالي، يعني لو علمته bold فقط هيبقى افضل..

ثانياً: الoperator overloading مدعوم في الC# و سينضم الفيجوال بيسك دوت نت في 2005 لها

ثالثاً:في جزء الreadibilty .. تجاهلت الفيجوال بيسك تماماً رغم ان هذه هي اقوى مميزاته و يتفوق على الباسكال فيها..

لكني ما زلت منحازاً الى جانب المقروئية اذا كنا نحقق سرعة التكويد على حساب المقروئية.

عفارم عليك ولد .... قول الكلام ده لمبرمجي السي ..

رابعاً : في الlanguage safe : المؤشرات موجودة في الC++/CLI .NET وليست مختفية تماماً في الدوت نت.

خامساً : في language safe تجاهلت الفيجوال بيسك بالرغم من ان اختلافه عن C# بانه يمكنك من كتابة الكود بطريقة غير امنة مثل الimplicit conversion (تحويل من نوع الى نوع تلقائياً) لو تركت option strict off و هو الdefault في الدوت نت

حتى الان وصلت للصفحة 25 .. عندما سأكمل الكتاب سأقوم بارسال رسالة جديدة..

الملخص: اعتقد ان الكتاب سيكون اكثر ثراءاً و افادة لو وضعت معلومات اكثر عن الC# و بيسك 6 و بيسك دوت نت لأن الكثيرون يريدون ان يقارنوا هذه اللغات مع اللغات الاخرى في السوق.

بالمناسبة::

1) هل فعلاً تعرف كل هذه اللغات؟؟

2) هل اللغات الEiffel و SmallTalk مطلوبين تجارياً و خصوصاُ في الوطن العربي؟

تم تعديل بواسطه undo
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

رائع جدا ..

أخي HGB , أنا بإنتظار مناقشاتك التي أعتقد أن تكون أكثر من قيمه .

الأخ undo , كلامك هو صلب المطلوب ,

لدي بعض المناقشات سأشاركك بها .

أولاً: الفونت صغير بالنسبة للعمي امثالي، يعني لو علمته bold فقط هيبقى افضل..

صحيح .. وساعمل على تفادي ذلك بالنسخة النهائيه .

ثانياً: ال operator overloading مدعوم في الC# و سينضم الفيجوال بيسك دوت نت في 2005 لها

حسنا رجعت اليوم لبعض المراجعات , وتبين أن كلامك صحيح .. كنت أظن أن C++ تنفرد بها , ولكن C# كذلك تدعمها الآن , لم أجد أي معلومات عن دعم VisualBasic.net لها حتى الآن . كذلك لم أجد عن Delphi.net وسأتابع البحث .

(همهم ,, نقطة مهمه للسي شارب )

ثالثاً:في جزء ال readibilty .. تجاهلت الفيجوال بيسك تماماً رغم ان هذه هي اقوى مميزاته

جيد .. الVB ذات مقروئيه جيدة , ويجب ذكر ذلك . ومقروئيه VB تأخذ علامه مرتفعه جدا حسب التعريف السابق ...

و يتفوق على الباسكال فيها..

هم ,, المشكله في فقره المقروئيه وتنظيم اللغه , انها تدمج بين عاملين اللغه المنظمه واللغه الواضحه . الجميل في VB أنها إنسيابيه في التكويد , أما أنها أكثر مقروئيه من باسكال فهذا ليس رأيي الشخصي , ربما تعرف أكثر مني بالفيجوال بيزك, ولكن بشكل عام لو نظرنا إليها من منظور أنها مثال للغات ذات المقروئيه العاليه والتنظيم الواضح لظلمت لغات كثيره (رأي شخصي) . حسب ما أعرف عن باسكال أنها صممت أساسا لتكون واضحة ومنظمه وسهله التعلم , ونتيجه تنظيمها الجميل أمكن بناء نسخ محدثه منها بمواصفات مميزة مثل نسخ Object Pascal وغيرها ثم بنيت عليها لغات مرئيه Delphi & Kylix , وبالتالي قوة الباسكال نشأت من وضوحها وتنظيمها ,

في حين ان لغة VB رائعه من حيث الأدوات والتحكم بالعناصر المرئيه Visual Component , ولكن يكمن ضعفها في المستوى المنخفض أي على مستوى الشفرة نفسها ... أي عكس باسكال التي كان وضوحها سبب قوتها تكون VB إنسيابيتها وتبسيطها لمفاهيم البرمجة هي سبب ضعفها لذلك , لم تبنى لغه فيجوال بيزك على بيزك الأساس .. بل على C++ ..

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

ولكني لم أقتنع بعد أنها أفضل من باسكال , والنقاش لم يغلق في هذه القضيه بعد ..

لكني ما زلت منحازاً الى جانب المقروئية اذا كنا نحقق سرعة التكويد على حساب المقروئية.

عفارم عليك ولد .... قول الكلام ده لمبرمجي السي ..

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

ولكن وبنفس الوقت هي فرصه لها أمام الأخصائيين ليرو المميزات التي تتميز بها عن اللغات الأخرى ,

كان لكل معيار لغة برمجه متميزة فيه

دعنا نأخذ جافا .. أيضا جافا وجهت لها ضربات ثقيله ؟؟؟؟ وهي لغه غنيه عن التعريف .. لذلك قد ينزعج مبرمجو هذا النوع من اللغات , ولكن كما أكدت أنا أعرض المفاهيم فقط . وأهميه كل مفهوم قد تختلف من شخص لآخر ومن مشروع لآهر ولا أستطيع البت فيها ..

لذلك فليسامحني أصحاب هذه اللغات التي لا أكن لها سوى كل تقدير , وأعمل عليها وأتعلمها .

رابعاً : في الlanguage safe : المؤشرات موجودة في الC++/CLI .NET  وليست مختفية تماماً في الدوت نت.

صحيح أنا لم أقل عكس ذلك , وهذا إقتباس من كلامي :

, ولكن حديثا تم إعتبار المؤشرات أنماط غير آمنه , وهذا مايفسر الإبتعاد الحالي عن دعم المؤشرات مثلا في بيئه .NET لايوجد دعم كامل للمؤشرات كما كان في Win32 حتى الآن الدعم يتم بطريقه غير مباشره وبحالات خاصه
توجد التفافات برمجيه تسمح لك بالقيام بأعمال المؤشرات بطرق آمنه أكثر , بشكل عام بإستخدام الأغراض , أو مثلا بالعمل تحت نمط Unsafe (كما في C# مثلا

نعم يمكنك إستخدام المؤشرات , ولكن لاينصح بها إلا إذا كنت تريد التوافقيه مع برامج قديمه . هذا هو رأيي , ماقصدته . أن الإبتعاد عن المؤشرات هو الخيار الإفتراضي في .Net كلها وليس فقط بعض اللغات منها . كأنه توجه عصري نحو أمن اللغه بدل من القوة المحفوفه بالمخاطر .

كان يجب ذكر C++/CLI ولكن عندما كنت أعد المشروع كانت المعلومات عن النسخة غير متوفرة على نطاق واسع لدي , لذلك لاتجد ذكر كبير لها في المشروع .. وسأعمل على تدارك ذلك , والفضل إن شاء الله يكون لمتخصصي C++ لرفدنا بجوانبها كي لانهمل أمور مهمه ,

وهنا تكمن أهميه مناقشه المشروع في منتدى كبير كهذا , لإنك ستجد مختصين من اجل كل لغة , وبالتالي تضمن أن المعلومات التي ستوجد بالنسخة النهائيه تحتفظ بالحد الادنى من المصداقيه وليس مجرد رأي متسرع ..

لذلك أرجو الإستمرار في نقد الموضوع ونبش جوانبه السلبيه والإيجابيه .

خامساً : في language safe تجاهلت الفيجوال بيسك بالرغم من ان اختلافه عن C# بانه يمكنك من كتابة الكود بطريقة غير امنة مثل الimplicit conversion (تحويل من نوع الى نوع تلقائياً) لو تركت option strict off  و هو الdefault في الدوت نت  .

جميل هذا الكلام . كلما زادت صرامه اللغه في الحفاظ على القواعد , كلما زاد امنها بالنسبه للمستخدم , وVisual Basic .NET تحوي بعض التساهل في هذه النقطة ,

ولكني اتنمنى من المختصين التوسع أكثر في هذة النقطة . للصراحه لم أكن أعرف بها

الملخص: اعتقد ان الكتاب سيكون اكثر ثراءاً و افادة لو وضعت معلومات اكثر عن الC# و بيسك 6 و بيسك دوت نت لأن الكثيرون يريدون ان يقارنوا هذه اللغات مع اللغات الاخرى في السوق.

صحيح , وسيكون من أهم أهداف النسخة النهائيه التركيز اكثر على اللغات العصريه الحاليه , لإنها ستكون محور الإختيار ..

بالمناسبة::

1) هل فعلاً تعرف كل هذه اللغات؟؟

2) هل اللغات الEiffel و SmallTalk مطلوبين تجارياً و خصوصاُ في الوطن العربي؟

1) إضطلاعي جيد على معظم هذه اللغات , ولكني لا أدعي إتقاني لهذا الكم الكبير (المرشح للتزايد) من اللغات التي ذكرت بالمشروع , وكنت في كثير من الأحيان أرجع للإنترنت لجمع المعلومات .

2) خلال بحثي على الإنترنت وجدت أن الكثيرين الكثيرين في الخارج يعملون على لغات مثل هذه ,, وهي لغات رائعه تقنيا .. ولكني سأقتبس جزء من فقرة التسويق والدعم الفني التي سبق وذكرتها :

خلال إضطلاعي على لغات مثل smalltalk أو python أو Power Builder أو أو ..

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

نعم يوجد تقصير في إيصال بعض هذه اللغات إلى العالم العربي . بعضه مبرر وبعضه غير مبرر .

هنا في الوطن العربي , تستحوذ علينا فكرة : ماهي اللغه الأفضل حتى أعمل عليها .

وهذا هو السبب في رغبتي بطرح هذا الكتاب , ان الأفضل يتعلق بماذا تريد أنت منها ومن أنت . ولكني لازلت أضع خط تحت عبارة أنها لغات تستحق الإحترام والإضطلاع عليها .

تم تعديل بواسطه ORWA
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

والله عال ,, الكتيب أكثر من رائع بكثير وممتع ولغته "العربية:)" متميزة بشكل كبير ,,

قرأت جزء من الكتاب وهو ممتع للغاية وكنت أقرأه بتلذذ حقيقي ,, شكرا مرة أخرى ياعروة :)

والكلام كثير ولاأعرف أين أعلق ,, المهم :

رابعاً : في الlanguage safe : المؤشرات موجودة في الC++/CLI .NET وليست مختفية تماماً في الدوت نت.

نعم C++/CLI بالنسبة للسي++ كما السي++ بالنسبة للسي تماما ,, يعني من السي إنتقلنا للسي++ وكل السي مدعومة في السي++ وأضيفت عليها ميزات كثيرة لذا أدخلنا ال ++ ,, الحال كذلك تماما مع C++/CLI فهي عبارة عن سي++ لكن عليها إضافات كثيرة ,,

أولى هذه الإضافات ال GC وأنواع الفئات الجدديدة ك Value و Refernce ,, والنوع الأساسي الموجود من السي++ وهو class العادي ,,

الآن ال class العادي في C++/CLI يمكن أن تطبق عليه ما تشاء من راثة متعدد وحتى تداخل الفئات والوراثة الماسية بال viryual وأي شيء يخطر ببالك ,, حتى إنتهاكات OOP الصارخة ك Friend ,,

الشيء الثاني المؤشرات مدعومة 100 % في C++/CLI عند التعامل باأنواع الأساسية أو بنوع من فئة عادية ,, وتدخل مؤشرات GC الجديدة التي يرمز لها بالرمز ^ بدلا من * لتحد بعض ميزات المؤشرات الأساسية وتضيف عليها الميزد في نفس الوقت ,, وقوانينها كثيرة ومعقدة ,, لكن التعقيد دائما مايجر مرونة بالغة ,,

المؤشرات محدودة في سي# وتحدثت عن ذلك سابقا هنا :

http://www.arabteam2000-forum.com/index.php?showtopic=46327

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

إعادة الإستخدام بالوراثة في لغات دوت نت أساسي لكن الوراثة المتعددة كما وضحت في الكتاب محصورة على الواجهات فقط ,, بيما هي أساسية في C++/CLI ,,

إعادة الإستخدام ,, بالنسبة لكود موجود مسبقا تحصل C++/CLI على 10 نقاط من 10 هنا ,, حيث أن اللغ هي التطوير الثاني بعد خيبات أمل مبرمجي سي++ القدامى بعد صدور C++.NET المسماة ب MC++ في بدايات ظهور منصة دوت نت ,,

C++/cLI تمكنك من عمل copy paste لكود سي++ مكتوب مسبقا ليتم تصريفه بشكل كامل 100 % بدون مشاكل :) ,, لأن السي++ كما وضحت مدعومة كليا في C++/CLI ,,

دعك من إمكانية تصريف MC++ أيضا لكن في كود منفصل ولايمكن خلطها مع كود CLI في نفس المكان "هذه ميزة للمصرف وليست للغة"

ال operator overloadin في سي# موجودة لكن بكتابة أسماء الدوال يعني في سي++ كانت :

operator+ 
operator--

في سي# يجب أن تحفظ أسماء الدوال التي تطابق المعاملات :

op_Addition
op_Decrement

وفي MC++ الحال كذلك كما في السي# وال VB.NET ,, لكن الوضع في C++/CLI كما في السي++ تماما ,, وباللغة المفهومة operator+ و Operator-- وأخوانها !!

أكثر مارفع ضغطي من MC++ وقت صدورها تحميل العوامل بهذه الطريقة السخيفة ,, والحمد لله تم تداركها في CLI ,,

بالنسبة لل function overloading ,, فلست متأكدا من ذلك في ال VB.NET لكن كما فهمت من كلامكم أنها غير موجودة في الدوت نت !! هل هذا صحيح ,, هل يعقل عدم إضافة ال function overloading في VB.NET حتى الآن !؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي عروة مشكوووووووووور على الكتاب الرائع ..

في انتظار النسخة النهائية و اتمنى ان تحوي معلومات اكثر عن الفيجوال بيسك 6 و لغات الدوت نت.

وهنا تكمن أهميه مناقشه المشروع في منتدى كبير كهذا , لإنك ستجد مختصين من اجل كل لغة , وبالتالي تضمن أن المعلومات التي ستوجد بالنسخة النهائيه تحتفظ بالحد الادنى من المصداقيه وليس مجرد رأي متسرع ..

لذلك أرجو الإستمرار في نقد الموضوع ونبش جوانبه السلبيه والإيجابيه .

و انا معك تماماً و الحمد لله لديك الان محلل خبير من عائلة الC++/CLI و مدعي خبرة (انا :D) من عائلة الفيجوال بيسك 6 و دوت نت

تابع النقاش:

المقروئية:: ادرك تماماً ان رأيي شخصي و ينبع من اني لم اعمل مع الباسكال من قبل سوى 6 اشهر من عدة سنوات ايام الكلية.. فقمت بعمل جولة سريعة على الانترنت لمشاهدة كود باسكال و وجدته سهل القراءة بالفعل..

لكن لغة البيسك ايضاً كانت مبنية لكي تكون لغة المبتدئين و القريبة جداً للانجليزية حتى ان اسمها اختصار الى

Beginner's All-purpose Symbolic Instruction Code

BASIC

للأسف مايكروسوفت تظن في كثير من الاحيان ان سهولة اللغة تعني حرمانها من ميزات القوة و من اكثر ما غاظني مما قرأته مؤخراً : أن مايكروسوفت لن تستخدم اسم refactoring لأداء وظائف الrefactoring في الفيجوال بيسك بينما ستستخدم الاسم في الC# ، هل تعرف لماذا؟

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

لكن مرة ثانية نحن نتكلم عن المقرؤية و ليست قوة اللغة .. يعني قرار بناء الفيجوال بيسك على الC++ نابع من قوة الC++ و ليس لأن البيسك ذات مقروءية ضعيفة ..

الخلاصة: أن مقرؤية اللغة هي فعلاً رأي شخصي (لكن ليس في حالة الC++ او الجافا :D :D)

هل يعقل عدم إضافة ال function overloading في VB.NET حتى الآن !؟

الfunction overloading موجودة بالفعل في فيجوال بيسك منذ نسخة 2002 و يزداد الفيجوال بيسك على اللغات الاخرى بoptional parameters ..

اعتقد اني قرأت ذلك في مكان ما من كتاب ORWA

المؤشرات محدودة في سي# وتحدثت عن ذلك سابقا هنا :

http://www.arabteam2000-forum.com/index.php?showtopic=46327

بالفعل مقال شيق جداً و بالمناسبة هذا مصدر معلوماتي الوحيد الذي قرأته عن الC++/CLI

:D :D

تم تعديل بواسطه undo
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
والله عال ,, الكتيب أكثر من رائع بكثير وممتع ولغته "العربية " متميزة بشكل كبير ,,

شكرا لك ,, هذا مديح يشرفني من عضو مميز مثلك .

أولى هذه الإضافات ال GC

أريد التوضيح في هذه النقطه رجاء فهي تهمني , الGC هل أصبح ميزة إفتراضيه ضمن C++/Cli رغم أنه غير مدرج في مواصفات ANSI , أم انه مدعوم بطريق أخرى ؟

سأفترض أن C++/CLI تحوي GC , وسأذكر ذلك

الشيء الثاني المؤشرات مدعومة 100 % في C++/CLI عند التعامل باأنواع الأساسية أو بنوع من فئة عادية ,, وتدخل مؤشرات GC الجديدة التي يرمز لها بالرمز ^ بدلا من * لتحد بعض ميزات المؤشرات الأساسية وتضيف عليها الميزد في نفس الوقت ,, وقوانينها كثيرة ومعقدة ,,

السؤال كيف تقيم دعم C++/CLI للمؤشرات بالنسبه لC++ الأصليه (زاد , نقص , لم يتأثر , تلائم أكثر مع البيئه الجديدة , لايخلو من التقييد والتحديد في الإستخدام ؟؟ كيف ؟ )

لكن التعقيد دائما مايجر مرونة بالغة ,,

أخالفك الرأي .. المرونه من وجهه نظري , هي التي تسمح لك أن تقوم بأكثر من شيء بطريقة واحدة , (وليس أن تقوم بالشيء نفسه بإكثر من طريقه ) أي أن نتعامل مع حالات مختلفه بنفس الطريقه (اللغه المرنه تريح المستخدم أكثر لإنها تتلائم مع شفرته حسب الطلب ولذلك نقول أنها مرنه ) . وبرأيي أن التعقيد يقلل المرونه لإنه يجبرك على إتباع طرق خاصه من أجل حل المشاكل التي تعترضك ,.

لا أعرف إذا كنت قد اوصلت الفكرة , بإختصار أستطيع أن أقول أن التعقيد يزيد من إحتياطي القوة التي تملكها اللغه نعم ذلك صحيح , ولكني لاأظن أنه يزيد المرونه لإن المرونه متنافيه مع التعقيد , وذلك حسب تعريف المرونه من وجهه نظري .. مارأيكم ؟ هل التعقيد يجر مرونه معه ؟؟؟؟ .

الوراثة المتعددة تعطي هندسة برمجة عالية المستوى جدا جدا ,, ولم أجد كتاب سي++ حتى الآن يتحدث عن هذه النقطة بتفصيل كبير .

هل ذلك نتيجه الخوف من ماسيجره الإستخدام المتكرر للوراثه المتعدده أم انه موضوع تقني متقدم وحسب .

ماأريد قوله هل صحيح إدعاء مستخدمي Effil مثلا أن C++ لاتدعم الوراثه المتعددة بشكلها الأمثل , وأن Effil تتغلب عليها في ذلك , وهذا هو سبب التخويف من إستخدام Multiple Enheritance في C++. ((ليس تخويف بمعنى تخويف , ولكن ضمه إلى قائمه الحلول الأخيره ))

وهل ستصبح الوراثه المتعددة تعتبر كتقنيه غير آمنه (مثلا بشكل شبيه بالمؤشرات في النظم المستقبليه , وهذا بالتالي سيكون تفسير منطقي لإبتعاد اللغات الحديثه عن دعمها .. Java C# Delphi VB.Net وكل اللغات الحديثه العهد لم تهتم لفكرة الوراثه المتعددة ... وأنتقلت لفكرة الواجهات الأكثر أمناً ؟؟؟ )

إعادة الإستخدام ,, بالنسبة لكود موجود مسبقا تحصل C++/CLI على 10 نقاط من 10 هنا
C++/cLI تمكنك من عمل copy paste لكود سي++ مكتوب مسبقا ليتم تصريفه بشكل كامل 100 % بدون مشاكل  ,, لأن السي++ كما وضحت مدعومة كليا في C++/CLI ,,

دعك من إمكانية تصريف MC++ أيضا لكن في كود منفصل ولايمكن خلطها مع كود CLI في نفس المكان "هذه ميزة للمصرف وليست للغة"

جميل جدا , أنا أهتم كثيرا لموضوع التوافقيه الإرتجاعيه

وفي MC++ الحال كذلك كما في السي# وال  VB.NET ,,

بالنسبه لي , لم أجد معلومات تؤكد دعم VB.NET ل Operator Overloading بعد .

بالنسبة لل function overloading ,, فلست متأكدا من ذلك في ال VB.NET لكن كما فهمت من كلامكم أنها غير موجودة في الدوت نت !! هل هذا صحيح ,, هل يعقل عدم إضافة ال function overloading في VB.NET حتى الآن !؟

إليك هذا المقتطف من الهلب الخاص بدلفي :

Visual Basic .NET has many new and improved language features — such as inheritance, interfaces, and overloading — that make it a powerful object-oriented programming language.

ماهو المقصود بOverloading إذا .؟؟ أنها Method Overloading حسب ماورد في الشرح التالي .

الأخ العزيز Undo : شكرا لك مجددا ..

سأحاول تدارك الثغره في الحديث عن لغات .NET أكثر والتركيز عليها

لكن

لغة البيسك ايضاً كانت مبنية لكي تكون لغة المبتدئين و القريبة جداً للانجليزية حتى ان اسمها اختصار الى

Beginner's All-purpose Symbolic Instruction Code

BASIC

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

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

أظن أن مايكروسوفت تملك مثل هذا التفكير , وربما تسيطر عليهم فكرة انهم لايريدون بناء لغتي برمجه متشابهتين تماما , لذلك أظن أن الفارق بين C# و VB.Net سيتباعد مع الزمن , وهذا لايعني أبدا أن يكون لصالح C# .

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

ولكن أرجح أن تحاول مايكروسوفت إضافه التبسيط كصفه أساسيه لVB.NET . ورغم ذلك ومقارنه بالمكانه الجيده التي حققتها VB القديمه أظن ان ذلك لن يبعد VB عن لقب اللغه الأكثر شعبيه ..

لكن مرة ثانية نحن نتكلم عن المقرؤية و ليست قوة اللغة .. يعني قرار بناء الفيجوال بيسك على الC++ نابع من قوة الC++ و ليس لأن البيسك ذات مقروءية ضعيفة ..

صحيح ..

شكرا لكم أخواني HGB و Undo ,

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

ملاحظة لماذا يقتصر النقاش على فئه قليله ,

مع أني لاأجد تعصب في النقاشات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

راجع هذا الرابط للتأكد من دعم فيجوال بيسك 2005 للoperator overloading

http://msdn.microsoft.com/library/default....005_preview.asp

اعتقد ان العنوان يكفيك للتأكد ان شاء الله لأن المقال 15 صفحة :D

أظن أن مايكروسوفت تملك مثل هذا التفكير , وربما تسيطر عليهم فكرة انهم لايريدون بناء لغتي برمجه متشابهتين تماما , لذلك أظن أن الفارق بين C# و VB.Net سيتباعد مع الزمن

كنت حتى فترة قريبة أؤمن بأن الفوارق ستذوب بين لغات الدوت نت مع مرور الزمن لكني غيّرت رأيي بعد ان وجدت ان الفوارق ازادادت في فيجوال ستوديو 2005 ..

حالياً اتفق معك تماماً و هي استراتيجية مايكروسوفت المعلنة و ليست رأيي الشخصي..

فيجوال بيسك سيظل الأسهل

السي شارب ستظل قوية و سهلة (يعني القوة أولاً ثم السهولة و في بعض الاحيان يتعارضون)

C++/CLI ستظل قوية (بدون اهتمام بحكاية السهولة)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا على الكتاب سأقرأه وأعطيك رأيي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

[coute]

راجع هذا الرابط للتأكد من دعم فيجوال بيسك 2005 للoperator overloading

[/coute]

صحيح لقد تأكدت من ذلك ..

شكرا لهذه المعلومه , لن تكذب مايكروسوفت بخصوص منتجها على الأغلب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
أخالفك الرأي .. المرونه من وجهه نظري , هي التي تسمح لك أن تقوم بأكثر من شيء بطريقة واحدة , (وليس أن تقوم بالشيء نفسه بإكثر من طريقه ) أي أن نتعامل مع حالات مختلفه بنفس الطريقه (اللغه المرنه تريح المستخدم أكثر لإنها تتلائم مع شفرته حسب الطلب ولذلك نقول أنها مرنه ) . وبرأيي أن التعقيد يقلل المرونه لإنه يجبرك على إتباع طرق خاصه من أجل حل المشاكل التي تعترضك ,.

لا أعرف إذا كنت قد اوصلت الفكرة , بإختصار أستطيع أن أقول أن التعقيد يزيد من إحتياطي القوة التي تملكها اللغه نعم ذلك صحيح , ولكني لاأظن أنه يزيد المرونه لإن المرونه متنافيه مع التعقيد , وذلك حسب تعريف المرونه من وجهه نظري .. مارأيكم ؟ هل التعقيد يجر مرونه معه ؟؟؟؟

أولا:- مشكور أخوي على الكتاب ووجزاك الله عليه خير الجزاء والحقيقة كتاب أكثر من

رائع حتى تعريب المصطلحات كانت دقيقة جدا

ثانيا:- أضم صوتي مع أخيHGB ولا أتفق معك بخصوص أن التعقيد لا يجر مرونة

وأكبر دليل هو أن لغة c او ++c من أكثر اللغات تعقيدا وهي في الوقت نفسه من أكثر

اللغات مرونة وهذه المرونة لم تكتسبها الا من تعقيدها

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

العدد الآن 2 مقابل 1 (هزيمه .... ؟)

شكرا لك b.m.s ..

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

ولكني أختلف معك (عفوا معكم ... يبدو أنكم كثر ! ) ان C++ مرنه بمعنى أنها تقبل نفسها في حالات مختلفه بنفس الشكل .

حسنا دعنا نضرب مثلا الدراجه الناريه والبلدوزر

الدراجه الناريه اكثر مرونه بكثيرمن البلدوزر وتستطيع المراوغه بكل سهوله ,

أنا لا أقول ان البلدوزر ليس قوي , ولكني أتسائل هل سيستطيع فعلا المراوغه وهل سيناسبه شكله وقوته الخارقه على أن يتناسب مع الطريق ..

بالعكس لقد صمم أصلا ليشق الطرق وليس ليمشي عليها (أعرف دكتور جامعي يقول أن سي بلس بلس صممت لتبني نظم تشغيل النوافذ وليس لنبني عليها تطبيقات نوافذ ؟؟ )

صديقي أهنئك .... C++ لغة خارقه عندما نحترفها , دعني أطلق العنان لنفسي وأقول ... إن سي بلس بلس هي بلدوزر لغات البرمجة ..

ولكن حذار هذا لايعني أبدا أن هذه البلدوزر مناسبه للسير على الأوتوستراد , إنها تستخدم في بناء الأوتستراد ولكنها ليست الأفضل في السير عليه دائما ..

ولنفترض أنها كانت الأفضل , هل ستكون الأفضل على الطرقات الضيقه ؟؟؟

رأيي الشخصي لازال كما هو ... C++ ليست لغة مرنه ..

وهذه هي ضريبه الصلابه .

ولكني فخور بالنقاش الذي دار بيننا , وأحترم رأيكم تماما . وآظن أن الإختلاف بيننا هو إختلاف في تعريف المرونه ليس أكثر .

هل من مؤيد ؟؟

تم تعديل بواسطه ORWA
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

------- ||| رأيي الشخصي لازال كما هو ... C++ ليست لغة مرنه ..

وهذه هي ضريبه الصلابه .

هل من مؤيد ؟؟ ------- ||||

:) تسمحولى برد غريب شويه .. انا لا مع الرأى هذا ولا ذاك

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

--

يبدو أننى اول من قرأت الكتاب فى زمن قياسى جدا لم يسألنى احد عنه؟ فى الحقيقة الكتاب معظمه مشتق من مقالاتك اخى عروة :) وخصوصا لمست ذلك فى الدلفنة والstand alone exe وموضوع المقارنات للأخ (الاحتراف) وكذلك بيئة التطوير ... الخ تمام

بالنسبة للoop هى الجزء الذى لم اعتنى بقراءته لوجود كتاب John Wiley & Sons - Programming with Object-Oriented Programming الذى عقدنى فى الموضوع بمقارناته بين الجافا والسى :)

لكن بالنهاية الفكرة جميلة وكتاب جميل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

ولكنى اعترض عليها بشدة لسبب شخصى ليس اكثر ولا اقل

أنت متهم بمعاداة السامية .. أقصد الفيجوال بيسك و عقوبة ذلك البرمجة بالفجوال سي بلس بلس لمدة شهر (شوف القسوة بقى) :D :D

اعتقد ان هناك خلط بين المرونة و القوة ..

لغة السي بلس بلس قادرة على فعل كل ما تتخيله و هذه هي القوة و ليست المرونة..

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

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

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

ملحوظة:

لا تنسى أخي HGB انك محترف سي بلس و لست مبتدئ فيها و لكي تدرك مدى تعقيد السي بلس بلس اسأل المبتدئين الذين يخطون فيها خطواتهم الأولى (او حتى ال100 مش فارقة :D :D)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

بدأ الحوار يأخذ منحنى قوي يجعل مثلي كل تعليق له كالبضاعة المزجاة :) و لذلك سأكتفي بشكر الأخ الفاضل عروة على الكتاب و جزاه الله كل خير .

ملاحظة واحدة فقط: ظلمت لغة بايثون كثيراً أخي عروة في المقارنات و حتى في كتابة إسمها حيث كتبته مرة paython و أخرى poython و قليلاً python و هو الصحيح ، عدم تعليق الإخوة على بايثون يدل بشكل صريح على فكرة إهتمامنا باللغات ذات الحملات الإعلانية القوية ، و هذا ليس عيباً فالكل في الآخر بصورة أو بأخرى يبحث عن فرص العمل ، لكن في فترة إستحوذت علي فكرة تبني لغة برمجة عربياً (كما فعلت zend مع php) و بعد بحث و مقارنات بين معظم اللغات مفتوحة المصدر وصلت للبايثون و Tcl/Tk و وجدت الغلبة لبايثون لسهولة التكويد بها (غير ذلك فهما متشابهان جداً) و من مميزات بايثون:

-مفتوحة المصدر

-معممة الغرض (من السهل جداً عمل cgi بها كما يمكن تشغيلها كتطبيق ويب بإمتداد psp (python server pages)

-مستخدمة في الأوساط العلمية بشكل واسع (وهذه الأوساط لن تستخدم لغة ضعيفة البنية أو المستوى).

-تعتبر dynamic language و هذا ما يمكن إعتباره ميزة لصالحها "بإعتبار أن سرعة الحواسيب ستعوض بطئ التنفيذ" .

الفكرة أن لغة مثل بايثون لو تم تبنيها بواسطة مجتمع أو مؤسسة ستنسب لهذه المؤسسة أو المجتمع ، و نختصر دورة إنتاج لغة أو نظام تشغيل (و لا نضطر لإختراع العجلة مرة أخرى)

معذرة إذا كان هناك تعميم في كلامي أو أنه خارج السياق العلمي للمناقشة فأنا لست إلا ضيف عليكم في تخصصكم .

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

لقد أعجبت بنقدك عن للغه python وهو في مكانه , نعم لقد راجعت الكتاب ووجدت هذه الأخطاء الإملائيه التي تحدثت عنها مشكورا . وأنا أعتذر عنها , وأعد بتصحيحها .

ملاحظة واحدة فقط: ظلمت لغة بايثون كثيراً أخي عروة في المقارنات
لاأعرف إذا كنت ظلمتها بالمقارنات , ولكني أطلب منك تحديد أمور للنقاش فيها عن هذه اللغه فهذا يخدم المشروع من ناحيه ويساهم في نشر معلومات عربيه عن هذه اللغه (وهذا لم أجده عربيا بشكل كافي) وإضطلاع الأعضاء على لغه بهذه الأهميه .
عدم تعليق الإخوة على بايثون يدل بشكل صريح على فكرة إهتمامنا باللغات ذات الحملات الإعلانية القوية ، و هذا ليس عيباً فالكل في الآخر بصورة أو بأخرى يبحث عن فرص العمل ،

صحيح . وقد تحدثت عن ذلك :

خلال إضطلاعي على لغات مثل smalltalk أو python أو Power Builder أو أو ..

وجدت أنه في العالم الكثير من اللغات التي لانعرفها ولم نسمع بها , وغير منتشره في منطقتنا ومن الجدير بنا الاضطلاع على هذه اللغات القويه والمجهوله لا بل تعلمها أيضاَ .

فعلا خلال مشوار جمعي للمعلومات عن الإنترنت أصتدمت بالكثيرين الذين يعملون على هذه اللغات (لنقل Python مثلا ) مع أني كنت أظن المشروع لن يتناول سوى اللغات الشعبيه , ولكن تأثري بالكميه الكبيره من المستخدمين لهذه اللغات بالغرب جعلني أدرجها في الموضوع .

كنت أظن ان مجرد ذكري لمواصفات Python العامه وإدراجها بالحديث سيكون شيئا رائعا ومحاوله لتقديم هذه اللغات للقاريء العربي , ولكنك اليوم أثبت لي أني قصرت كثيرا في ذلك وسأحاول تدارك الأمر ما أستطعت , بالنسبه للغات Paython و SmallTalk و Perl و Lisp ساعدني صديقي علاء في جمع المعلومات عنها وربما أثر ذلك في عدم إحتكاكي المباشر لجميع تفاصيل هذه اللغات , مما قد يسبب الوقوع في أخطاء الحكم المتسرع أحيانا ,

ولكن رغم ذلك أرجو منك توسيع دائره النقاش بهم , وذكر النقاط التي لفتت إنتباهك كي لاتبقي خطأ نستطيع تداركه .

و من مميزات بايثون:

-مفتوحة المصدر

-معممة الغرض (من السهل جداً عمل cgi بها كما يمكن تشغيلها كتطبيق ويب بإمتداد psp (python server pages)

-مستخدمة في الأوساط العلمية بشكل واسع (وهذه الأوساط لن تستخدم لغة ضعيفة البنية أو المستوى).

-تعتبر dynamic language و هذا ما يمكن إعتباره ميزة لصالحها "بإعتبار أن سرعة الحواسيب ستعوض بطئ التنفيذ" .

الفكرة أن لغة مثل بايثون لو تم تبنيها بواسطة مجتمع أو مؤسسة ستنسب لهذه المؤسسة أو المجتمع ، و نختصر دورة إنتاج لغة أو نظام تشغيل (و لا نضطر لإختراع العجلة مرة أخرى)

نعم وكذلك المحموليه العاليه لها , حيث أصبحت تعمل على كل شيء تقريبا :

Python [comedy troupe Monty Python] is an open-source, interpreted object-oriented language developed for Unix and now available for everything from DOS to Mac OS to OS/2 to Windows to Unix-like systems. It shares many positive attributes with Ruby, and adds the ability to run it on any machine that supports Java. It's often criticised, however, for not being as purely object-oriented as other languages.

معذرة إذا كان هناك تعميم في كلامي أو أنه خارج السياق العلمي للمناقشة فأنا لست إلا ضيف عليكم في تخصصكم .

بالعكس أهلاوسهلا بك , يسعدني وجود مهتمين بلغات مهمة (ولكن غير شعبيه عربيا) وأتمنى منك أن لاتبخل علينا بوجودك بيننا .

أخوك عروة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .