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

هل السى C++/CLI اقوى من السى شارب ؟؟؟

بدأه belal.net في 2 سبتمبر 2004 · 37 رد · 12,956 مشاهدة · في C++.Net
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا علمت حديثا عن C++/CLI

ولكن لم اعرف عنها الكثير بمعنى هل هى سوف تبقى اقوى من السى شارب.؟

اكيد هى اقوى من السى ++ ولكن هى اقوى من السى شارب؟؟

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#2

السلام عليكم ,,

المشكلة أن معيار القوة نفسه غامض ,, يعني الانتاجية وسرعة كتابة الأكواد وتنفيذها لمهام نحتاجها في السي# أفضل من السي++ ,, لكنها كال C++/CLI تماما ,,

في الأداء السي++ تفعل كل ماتتخيله وبسرعة أكبر من السي# ولاتحتاج لمنصة دوت نت ولاغيره وتعمل فورا على أي وندوز ,, لذا تكتب بها الفيروسات غالبا ,,

ال C++/CLI أسرع من السي# أيضا ,, وبسرعة السي++ لو لم نستخدم GC Objects وتقل السرعة كل ماستخدمنا كائنات مدارة بال GC ,,

السي# ليس بها دعم للمؤشرات بشكل حقيقي ولديها مشاكل مع دوال ال API التي تمرر لها بارمترات من نوع مؤشر المؤشر ,,

ال C++/CLI ليس لديها مشكلة مع ذلك ,,

السي++ بالطبع أيضا ليس لديها مشكلة ,, لأن هذه الدوال أصلا كتبت بالسي++ !!

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

النتيجة C++/CLI =( قوة السي++ مع قوة السي# )

مارأيك !!

تم تعديل كلمة بشكل حقيقي التي باللون الأحمر في الموضوع ,, لتنبيه من الأخ elbasha :

تم تعديل هذه المشاركة بواسطة HGB في 7 سبتمبر 2004 في 04:05

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

فى البدايه احب ان اشكرك يا اخ HGB

فعلا شرحك فى منتهى السهوله والدقه وبالرغم من ذلك انا يوجد عندى سؤال وهو

انا الان باتعلم سى شارب فهل بعد ما اتقن هذه اللغه جيدا (السى شارب) سوف استطيع بسهوله دراسه ومعرفه هذه اللغه الجديده C++/CLI ام سوف ابدا من الاول كانها لغه جديده ام انها زى باقى لغات الدوت نت بنفس الفكر ؟؟؟؟؟؟؟

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#4

السلام عليكم ..

لا يوجد عندي اي تعليق على سؤالك اخي belal.net فقد و فى و كفى الاخ HGB كالعادة .. :)

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

و السلام ..

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#5
اقتباس
انا الان باتعلم سى شارب فهل بعد ما اتقن هذه اللغه جيدا (السى شارب) سوف استطيع بسهوله دراسه ومعرفه هذه اللغه الجديده C++/CLI ام سوف ابدا من الاول كانها لغه جديده ام انها زى باقى لغات الدوت نت بنفس الفكر

لأ هي نفس الفكرة ,, ومافي مشكلة بعد تعلم السي# باذن الله ,,

بس ال C++/CLI أقرب للسي++ في جملها من السي# ,, مع أن الفرق بين السي++ والسي# بسيط جدا أيضا ,,

توكل على الله وأتقن السي# فهي لغة المستقبل للتطوير السريع ,, واذا لم ترغب في خوض البرمجة المتقدمة جدا ,, فتأكد من أن السي# ستكفي تماما ,,

المهم اكمل مشوار السي# وبعدها ستستطيع أن تحدد بشكل أفضل ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#6

اولا اود ان اشكر الاخ الكريم HGB

وبارك الله فيك وبالتوفيق لنا جميعا ان شاء الله

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#7
اقتباس
حيث انك وضعت الآية على النحو "ان الله لا يضيع اجر من احسن عملا " و الصحيح هو "انا لا نضيع اجر من احسن عملاً " ... غفر الله لك و لنا

بارك الله فيكى يا اخت بنت اليمن واشكرك على هذا التعليق وجزاكى الله خير

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#8

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

وفوق كل ذي علم عليم

والله اعلم

الملك ------>محمد ابو تريكة

abutreika.jpg

على اسم مصر التاريخ يقدر يقول ما شاء

أنا مصر عندي أحب وأجمل الأشياء

باحبها وهي مالكه الأرض شرق وغرب

وباحبها وهي مرميه جريحة حرب

باحبها بعنف وبرقة وعلى استحياء

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

واسيبها واطفش في درب وتبقى هي ف درب

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

والنبض ينفض عروقي بألف نغمة وضرب

على اسم مصر

#9

فعلا يا اخ بامبو وهذا الى كان يقصده الاخ الكريم HGB

عندما قال هى نفس الفكره وما فى مشكله تعلم السى شارب باذن الله ان شاء الله الفكر واحد ولن تفرق الا فى ال syntax

وربنا يوفقنا جميعا

عفوا عن الاخطاء الاملائيه

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

إِنَّ الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلاً

صدق الله العظيم

=================

Belal Mahmoud Younes

Solution Developer

Link Development a LINKdotNET subsidiary

Mobile : 010 89 69 772

E-mail : belalyounes@hotmail.com

#10

اخى HGB

هل انت متاكد ان السي شارب لا تدعم المؤشرات ؟

انا قرات اكثر من مرة انها تتدعم المؤشرات كاملة!!

وهذة واحدة من الى قراتها:

http://www.dev4arabs.com/forums/ShowThread.aspx?tid=446

تم تعديل هذه المشاركة بواسطة elbasha في 6 سبتمبر 2004 في 23:14

Ahmed Elbasha

E-mail:ah_elbasha@yahoo.com

#11

السلام عليكم ,,

أخطأت التعبير ,, السي# لاتدعم المؤشرات بشكل كامل ,, وسبق أن قلتها بنفس هذا اللفظ سابقا في أكثر من مرة ,, عموما :

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

هذه مشكلة ,, المشكلة الثانية هي انه لاتوجد كلمة اساسية اسمها delete ,, يعني لايمكن تحرير الذاكرة المحجوزة يدويا أبدا ,,

الأمر الثالث أن الذاكرة التي تحجز بالأمر new كما أعرف تكون في ال GC Heap وليست في ال Heap العادي ,, يعني مدارة بال GC ,, وبذلك تكون بدون قوة المؤشرات أيضا ,,

الأمر الرابع : أنه لايوجد شيء يسمى ** في السي# أبدا ,,

يعني لايمكن أن تنشيء مؤشر لمؤشر ,, وهي احدى الركائز الأساسية في المؤشرات والتي هي غير موجودة مطلقا في السي# ,, هذه تحد من قوة المؤشرات في السي# ,,

لكن هناك ماهو أكثر !! لايمكن أن تستدعي دالة من دوال ال API بها بارمتر ل ** الا بعد انجاز عمليات سمكرة بشعة للغاية ,,

يعني دالة ك CoCreateInstance لانشاء تواجد لكائن من مكون كوم مسجل في النظام ,, ستحتاج لتمرير البارمتر الأخير لهذه الدالة ك

LPVOID *

و LPVOID معرفة أصلا ك :

typedef void* LPVOID

يعني تصبح وكأنها ,,

 
void **

الان قل لي كيف ستمرر هذا البارمتر من السي# والسي# أصلا لاتدعم الا علامة مؤشر واحدة ؟!!

يوجد حل طبعا لكنه التفاف طويل ومرهق ,, وكان من الاسهل منه أن نكتب فئة بال C++/CLI تغلف دالة ال CoCreateInstance ,, لتستقبل البارمتر الأخير بطريقة أكثر ودية وتعيده للمستدعي ,, ونستدعيها من السي# بدل كل وجع الرأس !!

أعتقد أن كل ذلك كافي لاثبات ان السي# لاتدعم أكثر من 50% من المؤشرات التي في السي++ ,, دعك من مؤشرات ال C++/CLI المتقدمة ,,

تم تعديل هذه المشاركة بواسطة HGB في 7 سبتمبر 2004 في 04:00

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#12

هل C++/cli بنفس صعوبة C++ ؟

وهل الاختلاف بينهما كبير ؟

وشكرا اخى HGB

Ahmed Elbasha

E-mail:ah_elbasha@yahoo.com

#13

omarfive2003@yahoo.frتحية طيبة للأخ: HGB, وبعد:

هل من يتقن إستعمال لغة VC++6 لحد ما, يمكنه الإنتقال بسرعة

وببساطة إلى اللغة الحديثة C++/CLI.

وهل هناك تباين شديد وحساس بين الإثنين.

وشكراً جزيلاً.

#14

سأجيب على السؤال الأول قبلا :

اقتباس
هل C++/cli بنفس صعوبة C++ ؟

ال C++/CLI أصعب لتضمنها المزيد فوق السي++ ,, نفي سؤالك أن تقول أيهما أصعب السي أم السي++ ؟ سأقول لك السي++ لأن السي++ تضم كل السي ,, وعليها المزيد ,,

اقتباس
هل من يتقن إستعمال لغة VC++6 لحد ما, يمكنه الإنتقال بسرعة

وببساطة إلى اللغة الحديثة C++/CLI.

اذا أتقنت ال Visual C++ 6 أنا متأكد من أنك تستطيع ان تنتقل لأي لغة وبسرعة , لأنك دربت نفسك على التعلم في أقسى الحلات لذي أأكد لك أنه يمكنك الدخول في ال C++/CLI وبسرعة ,, لكن :

لاعلاقة بين برمجة ال MFC وبرمجة ال C++/CLI ,, حيث أن ال C++/CLI تبرمج باستخدام منصة الدوت نت ,, وبرمجتها بالنسبة للدوال والفئات والتجمعات أقرب الى ال C# والى VB.NET ,, لكن الأوامر الأساسية مختلفة بشكل كبير طبعا لأنها سي++ عادية مع بعض الأضافات تضيف المزيد من المرونة على اللغة ,,

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

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#15

كيف نجمع بين القولين:

اقتباس
لكنها كال C++/CLI تماما ,,

في الأداء السي++ تفعل كل ماتتخيله وبسرعة أكبر من السي# ولاتحتاج لمنصة دوت نت ولاغيره وتعمل فورا على أي وندوز ,, لذا تكتب بها الفيروسات غالبا ,,

و

اقتباس
حيث أن ال C++/CLI تبرمج باستخدام منصة الدوت نت

كيف يمكنها العمل بدون الدوت نت

#16

قصدي الأول أن مايبرمج بدون منصة الدوت نت , هي السي++ العادية ,,

ومايبرمج بإستخدام منصة الدوت نت هي ل C++/CLI

سيظهر أول كتاب ل C++/CLI في Amazon.com قريبا جدا ...

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#17
LEFT TO RIGHT

I would like to add the following point:
The C++ compiler has an optimization backend which doesn't exist for C#. This means that if you write only pure .NET code on C++ it will be faster than C#.
#18

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

ما شاء الله عليك استاذ HGB

انك تحوى من المعلومات قدر بحر

ولكن اية رايك لو قلت ان كل لغات الدوت نت مفيش بينهم اى اختلاف

غير فى الطريقة الكتابة

وبعض الحجات الى ما تعتبرش تغيير

يعنى بمعنى اصح كل اللغات تستخدم مكتبات الفريم ورك

اية الفرق الفعلى

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

ومتهيالى ان الانتاج القادم من لغات الدوت نيت هاتكون فى المجالين دول اكتر او بس

وبعدين مشابهت اى لغة من لغات من لغات الدوت نيت بالسى ++ يبقى تقليل من شانها

وانا اقصد السى ++ الى تكتب على الفيجوال استيديو 6

وحاسس ان ميكروسفت عملت الغات دى علشان يبعدو الناس عن عمل

اى فكرة نظام تشغيل

او برامج قوية مثل 3dsmax

او العاب

لان متهيالى لو عملت برنامج زى 3dsmax بالدوت نيت هايبقى تقيل جدا جدا

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

يبقى هما الصانع الوحيد ههههههههههههههههههههههههه

انا بعد مدة سنتين فى السى شارب حسيت انى مش قادر اعمل اى حاجة غير برامج الداتا بيز

او اتعلم asp.net

وراجع تانى اتعلم السى بلس بلس

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

الا لما الكل يسطب الفريم ورك ودة هايبقى احد الحلول لما يظهر فيرس معمول على الدوت نيت

وارجو انى ما اكون اطلت عليكم

وشكرا

محارب بلا زمان

.................................................................................................................................................................................................

untitled6yk.png
#19
اقتباس
ولكن اية رايك لو قلت ان كل لغات الدوت نت مفيش بينهم اى اختلاف

الكلام ده صح بالنسبة للغات العادية و ليس C++/CLI لأنك لو قرأت عنها جيدا ستلاحظ أنها اللغة الوحيدة التي تستطيع بها كتابة Native Code أي أنك تستطيع المزج بين ال Native و ال Managed معا

اقتباس
وانا اقصد السى ++ الى تكتب على الفيجوال استيديو 6

وحاسس ان ميكروسفت عملت الغات دى علشان يبعدو الناس عن عمل

اى فكرة نظام تشغيل

او برامج قوية مثل 3dsmax

او العاب

فيجوال ستوديو مازال يحتوي على الكومبيلر الخاص بسي بلس بلس أي أنك لست مضطر لإستخدام الدوت نيت بل تسطيع إستخدام سي بلس بلس مع ال ًWindows APIs بدون دوت نيت أو فرامورك

#20

السلام عليكم

يعنى حضرتك موافقنى فى الراى عن عدم وجود فرق جوهرى بين لغات الدوت نيت

وحسوا انهم انكشفوا

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

ستلاحظ أنها اللغة الوحيدة التي تستطيع بها كتابة Native Code أي أنك تستطيع المزج بين ال Native و ال Managed معا

على الرغم انى مش فاهم يعنى اية الاختلاف دة وهل هايتحس اصلا ولا لا

وشكرا

محارب بلا زمان

.................................................................................................................................................................................................

untitled6yk.png
#21

بالعكس ده إختلاف كبير و مهم جدا

إنت تقدر تنظر للغات الدوت نيت الأخرى على إنها تعمل تحت الدوت نيت

لكن ال C++/CLI أحسن تبصلها عل إنها سي بلس بلس عادية تقدر تستخدم الدوت نيت

مثلا يعني إستدعاء دوال ال API في الدوت نيت بطيء نسبيا بالنسبة للأسمبلي و السي و السي بلس بلس

لكن مع C++/CLI تقدر تستدعيها تقريبا بنفس السرعة

يعني C++/CLI تقدر تقول إنها تجمع بين مميزات سي بلس بلس و قوتها و بين إنتاجية الدوت نيت

بإختصار لن تستطيع أن تعرف قوة C++/CLI مالم تحترف السي بلس بلس و الدوت نيت

#22
اقتباس
ولكن اية رايك لو قلت ان كل لغات الدوت نت مفيش بينهم اى اختلاف

نعم, ولكن Microsoft ذكرت ذلك قبلك ولم تخفه بالنسبة إلى لغات VB.Net و C#.Net حيث أن ترجمتها يعني وصولها إلى لغة ML والتي تفسر من قبل dotNetFramework ولكن بطريقة لو قرأت القليل عنها لعرفت أنها من القوة والسرعة والوثوقية «الركيزة لبيئة dotNetFramework» ما يكفي بأن يطيح بلغات البرمجة السابقة VB و Delphi «مع العلم أني مبرمج Delphi أساسا»

اقتباس
ولما الكل يبعد عن الغات القوية وعن عمل برامج قوية, يبقى هما الصانع الوحيد

لا أعتقد أن هذا الكلام قريب من الصحة أبدا

ولكن تبقى فكرة واحدة وهي أن برمجة win32 تبقى هوس العديد من المبرمجين «مثلي أنا» والمعارضين لأفكار المحمولية مقابل الأداء وبالتالي معارضي أي Framework ومنه تجد أن Microsoft لم تلغي برمجة win32 «ولن تستطيع على كل حال أن تلغيها, لا أقول أبدا فهناك حديث عن لغات برمجة خاصة مع نظام التشغيل القادم Vista»

وربما ذلك ما دفعها لكسب هؤلاء المبرمجين عن طريق طرح C++/CLI

ولكن تساؤلي عن اللغة مع أني أعجبت بالفكرة بعد قرائتي لها هو أن برمجيات هذه اللغة إذا ما استدعت Native API فلن تتميز بصفة المحمولية وبالتالي أصبحت لا win32 ولا dotNetFramework

#23

C++/CLI أقوى من C++ العادية على ماأظن

و مايكروسوفت تقوم بإنتاج برامج جديدة أغلبها ب C++/CLI و C #

أي أنها لا تريد الإستفراد ب WIN 32

عموما WIN 32 في طريق الإنقراض

وهم أنتجوا كرنل ب C#

أما أنك تقول أنها تريد أن تنزل بمبرمجي إلى مستوى المبرمجين الأخرين فلا حول و لا قوة إلا بالله

#24

الأخوة الأفاضل كلامكم جميل من البداية لكن برأيي أن مايكروسوفت قللت من السنوات السابقة من أهمية WIN32 و السي بلس بلس العادي لأنه على طريق الإنقراض قكلنا يعلم بأن الوين 32 خلاص إنتهي تقريباً و يكفي أن مايكروسوفت SQL سيرفر 2005 معمول كاملا بالدوت نت و بالنسبة للأداء فبحسب أقوال ماكيروسوفت يعود الأداء البطيء إلا أنه عند التحويل من الفرام وورك إلى النيتف كود تكمن هنا المشكلة حيث أن الإكس بي و الويندوز الذي فبله لا يمتلك أي خواص إضافية للتعرف على الدوت نت و بالتالي سيتكون لدينا طبقة تحويل ثالثة بين نظام التشغيل و البرنامج و هي IL و لكن لا تنسوا أن بإمكاننا إستخدام NGEN الأداة التي تأتي مع الدوت نت و تجعلنا نحول البرنامج كاملاً إلى نايتف كود من غير ان تحوله JIT عند التنفيذ إلى ذلك و بهذا تكون قد تخلصت من مشاكل الأداء و البطى المصاحب لها 90% تقريباً و لا تنسوا أن الماكينتوشس يعتمد بشكل كامل على الجافا و ما الدوت نت إلا تقليد من مايكروسوفت لصن في الجافا و هو المستقبل و الله أعلم...

#25

نسيت موضوع السرعة في ردي

الدوت نت بطئ في win xp لأن xp غير داعم للدوت نت كاملا

ولكن شوف سرعة الدوت نت على windows vista

أما نظام التشغيل الذي ستصدره مايكروسوفت بعد فيستا فإنه لن يدعم win 32 و هذا حسب مايكروسوفت

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