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

تساؤلات وخواطر أتمنى الإجابة عليها

مغلق
بدأه الوريد الحاسوبي في 15 يونيو 2005 · 5 رد · 863 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قرأت في أحد المنتديات في قسم للسي شارب أن أحد أكبر أساتذة العالم العربي أعتبر السي بلس بلس لا تدعـم البرمجـة الكائنيـة .. وللأسف لم يذكر صاحب درس السي شارب . لماذا؟

الذي أريده من هذا السؤال هـو الإجابـة عـن سؤال يطرح نفسه دائماً ولا يلقى أي إجابة.

ما هـي أقوى لغات البرمجـة.

صحيح بإمكـان أي شخص أن يفعل ويبرمج أي برنامج بأي لغـة برمجـة .. أعلم أنه بإمكـان مبرمجي البيسك برمجـة ويندوز متكامل .. لكن الذي أريد الإجابة عليه ليس هذا السؤال..

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

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

دعـوني أوضح موضوعـي وسؤالي قليلاً فلقد تاهت كتابتي وأنا أكتب.

أول سؤال

ما هـي لغـة البرمجـة التي تعـطي أقوى دعـم للبرمجـة الكائنيـة ؛ هل هي حسبما قرأت السي بلس بلس أم السي شارب أم الجافا أم ماذا؟

ثاني سؤال

ربما هذا السؤال بديهـي لكن أتـمنى الإجابة عليه

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

إيضاح

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

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

وشكراً لكم

وأتـمنى الإجابة سريعا على هذه التساؤلات

صحبح هل تقنية الدوت نت ؛ هي التي ستدمر السي بلس بلس؟‍‍‍‍‍‍‍‍‍

#2

مبدئيا ال ++C تدعم كلا من البرمجة بال OOP او بدون الOOP فهي تعطي للمبرمج حرية اكثر احيانا

كما ان ال++C هي اللغة الام لمعظم اللغات الحديثة تقريبا

اسرع برامج هي التي تكتب بلغة الالة او التي تكتب بالاسمبلي تليها برامج ال C و الPascal ثم تليها ال++C و الDelphi و تأتي بقية اللغات بعد ذلك

الBasic لغة بسيطة و قد تك تطويرها للاهداف التعليمية فهي لا تصلح لبناء تطبيقات قوية مثل الC التي ظهرت اصلا لكتابة نظم التشغيل و كان اول نظام كتب بها هو الUNIX

ايضا لكل لغة حدود فلا يمكنك تصميم برامج تعمل على الMicrocontrollers باستخدام ال#C او الJava و ايضا لا يمكنك تصميم نظام تشغيل بالBasic و هكذا فانك كلما ارتفعت بمستوى لغة البرمجة فانك تدفع في المقابل بعض القوة و السرعة و لهذا فمقارنة ال ++C و ال Java من حيث الاداء ستأتي في صالح ال++C بلاشك و لكن سرعة انجاز البرامج Productivity في ال Java لا تقارن بال ++C و هكذا فأن العملية كلها مجرد اللغة المناسبة للتطبيق المناسب و التي توفر ماتحتاجه من امكانيات.

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3

السي بلص بلص تدعم الـ oop و لكن البعض (او الكثير) لا يحبون برمجة الـ oop بواسطة السي بلص بلص .. و السبب في ذلك ان الـ oop تم ابتكارها لعدة اسباب, احدها هو تسريع وقت الانتاج .. و لكن في السي بلص بلص فهذا لا يحدث فرقا يذكر!

يعني اللي يريد ان يبرمج بطريقة oop حقيقية فعلى الاغلب سيستخدم لغة مثل جافا ..

يعني الـ oop مجموعة مفاهيم عالية المستوى, بينما السي بلص بلص تعتبر لغة منخفضة المستوى بعض الشيء ...

اقتباس
الذي أريده من هذا السؤال هـو الإجابـة عـن سؤال يطرح نفسه دائماً ولا يلقى أي إجابة.

ما هـي أقوى لغات البرمجـة.

(.......)

الذي أريد الإجابة عليه.... ماهـي لغـة البرمجـة التي تطبيقاتها أسرع تطبيق .. ماهي لغـة البرمجـة التي تطبيقاتها أو برامجهـا أقوى أداء.. ماهي لغـة البرمجـة التي تمنح أقوى دعـم كامل للبرمجـة الكائنيـة

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

السي و السي بلص بلص سريعة, و لكن الجافا تمكنك من انجاز برامجك في وقت اقصر ..

على فكرة, اكثر لغة تطبق oop هي حسب ما اظن smalltalk .. لكن برامجها بطيئة!!

اقتباس
ربما هذا السؤال بديهـي لكن أتـمنى الإجابة عليه

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

ليس المهم معرفة المباديء فهي مجرد مصطلحات يتم اطلاقها على افكار عامة .. المهم ان تعرف فوائد الـ oop.

ساستخدم المصطلحات الانجليزية ..

الـ inheritance و الـ polymorphism هي من المبادئ المتعلقة بلغة البرمجة .. يعني اللذي يعمل لغة برمجة تدعم oop فعليه ان يدخل هذه الخصائص الى لغته.

الـ abstraction هي تطبيق لهذه الخصائص. يعني المبرمج يستخدم الـ inheritance و الـ polymorphism لكي يطبق مبدأ الـ abstraction على تصميم البرنامج.

بالنسبة للـ encapsulation فهي مفهوم اساسي للـ class و هو جزء من تعريف الكلاس, و هو مسألة يطبقها المبرمج و ليست جزء من لغة البرمجة.

الـ information hiding مسألة تافهة يعطيها الناس اكبر من حجمها ..

هناك مباديء اخرى مهمة .. للاسف لا احد يتحدث عنها:

cohesion (لا ادري كيف نترجمها؟ صلابة؟ متانة؟ تماسك؟) تعني تخصص كل وحدة برمجية (بما فيها الـ classes) بمهمة محددة جدا .. كلما زاد الـ cohesion في الكود فهذا امر جيد. و هو مبدأ يمكن تطبقه في الـ oop او حتى من دون oop .. و لكن الـ oop تعطيك امكانية قوية لتطبيقه .. و لو كتب احدهم برنامجا بطريقة oop دون ان يكون هناك cohesion, فكأنه لم يكتب oop.

coupling تعني مقدار التداخل بين وحدات البرنامج المختلفة, كلما زاد التداخل فهذا امر سيء (عمرك شايف كود 300 سطر كل حاجة فيه داخلة في بعضها و محدش عارف يفهم حاجة منها؟)

هدف الـ encapsulation هو زيادة الـ cohesion و تقليل الـ coupling بحيث كل مجموعة اشياء تكون موضوعة لوحدها في وحدة خاصة, و هذه الوحدة (الـ class) هي فقط المسئولة عن هذه المعلومات.

انا اخذت كورس oop في الجامعة, و الاشياء اللتي تم الحديث عنها هي:

cohesion

coupling

abstraction

inheritance

polymorphism

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

#4

cohesion

اعتقد هذه اهم شي .. عرفت فائدتها وهي من اجمل ما في البرمجة الكائنية ... هي مجرد طريقة ...

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#5

cohesion

المصطلح غريب علي ولا أدري مامعناه

قد أكون اعرفه ولكن لاأعرفه بالانقليزيه

فلو سمحتوا ممكن مثال يحتوي على cohesion

#6

شوف هذا:

http://pages.cpsc.ucalgary.ca/~schock/cour...lides/cohesion/

في proc1 كل شي داخل في بعضه ..

في بقية الـ proc2 و 3 و 4 الخ يتم ترتيب الاشياء شيئا فشيئا ..

في proc7 يتم التوصل الى افضل cohesion ممكن, و لا يزال الحل procedural

في مجلد oo1 تتم كتابة البرنامج بشكل object oriented (باستخدام جافا), و ملاحظة, فإن ملفات class ليست اكواد, فقط ملفات .java

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…