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

الفرق بين C# و VB.NET أثناء التنفيذ

مغلق
بدأه dragon87 في 30 مارس 2005 · 14 رد · 2,828 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذا السؤال يحيرني منذ مدة

مادامت جميع لغات دوت نت تتحول في مرحلة اولى الى لغة وسيطةMsil ثم يتم تشغيلها عبر اطار عمل دوت نت فكيف يمكن ان تكون لغة ما اقوى او اسرع من الثانية؟

في السابق كان يوجد فرق حقيقي بين compiler لغة ما و لغة اخرى اما الان فكل شيئ متماثل.

اذا اين تكمن قوة ال C# مثلا مقارنة بال VB.NET؟؟!

#2

حقيقيا لا يوجد فرق... وإن وجد فهو أقل من أن يدرس! الفرق هو في طريقة كتابة الشفرات... أضف إلى ذلك أن VB . Net لغة جديدة بالنسبة إلى VB وليست فقط تطوير بسيط لها. بمعنى آخر، كان من الممكن تسمية VB.Net بلغة Visiual Objects مثلا، لكن هذا الاسم لن يجر مبرمجو الVB إليها. لذلك أسمت مايكروسوفت هذه اللغة الجديدة VB.Net حتى ينتقل إليها مبرمجو VB على أنها تطوير للغة VB. كما تعرف الانتقال إلى لغة جديدة لا يحبه المبرمجون، لكنهم يحبون أن ينتقلوا إلى إصدار جديد للغة (لغة جديدة بتسميتها وكأنها إصدار جديد) لهذا تسمية هذه اللغة بذلك الاسم. وطبعا الأمر ليس فقط في VB بل في باسكال وفورتران أيضا،، فكلها أصبحت حسب علمي البسيط لغات شيئية التوجه! OOP.

حتى أني أفكر لماذا لا نصنع كوبايلر يترجم لغة نحن نبتكرها إلى Msil... أعتقد أنها سهلة. أضف إلى ذلك أن الملفات سيقرأها من يبرمج على أي لغة من .Net!! بمعنى آخر أنها لغة ملفاتها تشغل ببيئة .Net!! يعني برامجنا التي ستطور من لغتنا الجديدة ستنتشر انتشارا جبارا بدون جهد يذكر!!! ولو كانت البرامج ممتازة فسنقول أنها مبرمجة بلغة (الفريق) وهي لغة قوية OOP . ننصح الجميع بالنتقال إليها لا سيما وأنك تستطيع كتابة جملة ( إذا كان ) بدلا من جملة IF الشرطية!!!

أضف إلى ذلك أن الأمر هالة إعلامية وحركة تسويقية جبارة وذكية من مايكروسوفت. فقبل بروز VB.NET وأخواتها كانت المناظرة حول من أفضل Java أو C++ ، أو Java و C#. مما يوحي إلى أنك تتوجه إلى شركة سن وحلفائها أو مايكروسوفت! لكن مايكروسوفت قلبت الطاولة وغيرت موضوع المناقشة الذي يناقشه المبرمجون إلى من أفضل C# أو VB.Net مما يوحي إلى أنك تتوجه إما إلى مايكروسوفت أو إلى مايكروسوفت. موضوع المناقشة دائرة مفرغة يصب في مصلحة مايكروسوفت!

صابون لكس، زست، كامي، ولا أتذكر البقية، قد يراها البعض أنها منتجات منافسة لبعضها! لكنها حقيقة جميعها من شركة واحدة وهي Proctor and Gamble كما هو معلوم.

كل هذا يحتم علينا أن نستنتج أن الفرق الحقيقي بين اللغات ليس في طريقة الكتابة أو الآلية بل هي تسويقية تسويقية فلو طرحت مايكروسوفت C# فقط لأصبح لمبرمجو الVB خياران للانتقال إلى OOP لو أرادوا ذلك. إما إلى جافا وإما إلى C#. لكن بطرحها لغة VB.Net لأصبح أمام مبرمجو الVB خيار واحد أمامهم للانتقال إلى OOP وهو VB.Net. وهكذا تكسب مايكروسوفت كمية كبيرة من المبرمجين بجهد بسيط!

تم تعديل هذه المشاركة بواسطة أبومازن في 30 مارس 2005 في 22:26

#3

حتى لم اجد جوابا شافيا

اين يكمن اذا الفرق بين لغات الدوت نت؟

لماذا يقال ان احدها اقوى من الاخرى؟

انا مبرمج ادوات تحكم عن بعد بلغة الVB

و أرغب بالانتقال الى بيئة الدوت نت

هل من نصيحة؟أي لغة هي الافضل لمثل مجال عملي؟

#4

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

كل هذا لا دخل له بلغة البرمجه بقدر ما يعتمد على المبرمج

Technical Lead Developer

My LinkedIn Profile

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

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

#5

شكرا لجميع الاخوة على اجاباتهم

بقي سؤال أخير

أي من لغات دوت نت تساعدني أكثر من غيرها على انشاء ادوات التحكم عن بعد؟

#6

اى لغه من لغات الدوت نيت تساعدك فى هذا لاننها تستخدم فضاء الاسماء NameSpace المسمى

system.net

شخصياً ارى ان ال Network Programming داخل الدوت نيت اصبحت اعقد و اكثر قوة من ذى قبل لاعتمادها على بيئه غنية مثل الدوت نيت بما تحويه من ادوات و فئات مساعده

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

Network Programming for the Microsoft .NET Framework book, for both C# and VB.Net

كتاب Network programming in .NET With C# and VBNet, حمل الكتاب

Technical Lead Developer

My LinkedIn Profile

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

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

#7

شكرا جزيلا لك استاذ طارق على نصائحك القيمة و على الكتب

بالمناسبة لقد قررت الانتقال الى ال VB.NET

شكرا مجددا

#9

اخي الكريم

بالنسبة لمنصة عمل الدوت نت فاساسا هي تتكون من جزأين هما :-

Common Language Runtime و هو المسؤول عن تنفيذ النصوص البرمجية التي يتم عملها عن طريق لغات البرمجة حيث يتم تحويل الكود بواسطة الكومبايلر إلى Intermediate Language(IL) إضافة إلى MetaData و هي المسؤولة عن تحديد Attribute الخاصة بالبرنامج.

الجزء الثاني و هي .NET Framework Class Liaberary و هي التي تحتوي على المكتبات الاساسية التي يستطيع المستخدم استخدامها في البرمجة.لاحظ هنا اهمية الفصل بين شيئين مهمين هما اولا لغة البرمجة التي يستخدمها المبرمج و الشيء الثاني هو سلوك لغة البرمجة من حيث استخدام المكتبات و ما إلى ذلك.

توفر بيئة الدوت نت الدعم لعديد من لغات البرمجة و لكن هل جميعها متساوية؟؟؟ بالتأكيد لا فعلى سبيل المثال بعض اللغات التي يتم دعمها من قبل الدوت نت تعتبر حساسة لحالة الاحرف و بعضها لا, و لكن لكي تتوافق لغة البرمجة مع منصة الدوت نت لا بد ان يتوفر في الكومبايلر الخاص بها مستوى ادنى من المتطلبات تعرفها بيئة الدوت نت ب Common Specification Language.

اخي العزيز

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

#10

السلام عليكم

كلام الاخوان كله صحيح ولكن بقي اضافة صغيره هي ان

C#.NET هي افضل من vb.net بالقوة فهي تستطيع الوصول والتعامل المباشر من الذاكرة ك ++C وهذا يتم عبر الشفرة غير الآمنة unsafe code وهي تنقية برمجية متقدمة وخطيرة بنفس الوقت ولا ننسى ان #C صممت من الصفر خصيصاً لإطار عمل NET وبعض المزايا التي نقول بحق انC#.NET هي الآن افضل ولكن بقي ان نضيف نقطة ل VB.NET وهي الشعبية العارمه لها والكتب المنتشره لها وايضاً انظر الى المنتديات فهي لها اسم ساحر غريب ولكن تاكد انك بعد سنوات ستجد انهم متسويين تمام

وتقبلو تحياتي

رفيق لا خسرته خسرت العمر كله ورفيق لا خسرته سلمت من الخساره

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

افضل محاضراته بالنسبه لي هي الأقصى والخونة

#11

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

أخي الكريم أنا بجد مخنوق من الموضوع ده جدا لأننا تعبين نفسنا علي الفاضي و من غير لزوم !!!

ما معني أن ال C# قد كتبت بالكامل عن طريق .net أو ل .net و أمال ال vb.net يعني شوية ocx و dll من الأصدارة القديمة ؟

أعتقد أن كل من يعرف ال .net يعلم أن هذا غير صحيح الكل متساوي تقريبا ما دامت ال C# قد كتبت لل .net فهي تستخدم ال .net

أيضا معني هذا أن كل هذا يمكن عمله في ال VB.net.

ولكن الأسلوب و التكنيك يختلف , لا ننسي أن مايكروسوفت قد أستهدفت بال C# مبرمجي صن في المقام الأول و هذا ما جعلها تضع Convert لمشروعات Jave و من شركة أخري كمان لا أعلم أزي كانت ملك لمايكروسوفت أو لا ???

وكمان لا ننسي أن مايكرسوفت قد و عدت بدعم ال .net علي الأنظمه الأخري و هو تصريح لم يسبق في تاريخ مايكرسوفت سوي ل Mac

كما هو معروف , وفيه شيء كمان لا ننسي الحرب الضارية بين بورلند و مايكروسوفت و معني دعم ال .net في الأنظمه ضربة قاضية لنظم بورلند في دعم مبرمجي ال C++ فهذا معناه أن الكل سوف يتجه لمايكروسوفت

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

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

وطرق التعامل معها نعرفها جميعا ............ .

عموما ما يهمني أني أقوم بما يطلب مني بواسطة اللغة التي أتقنها و التحويل بين لغات ال .net ليس صعبا لأنها كل تنصب من أصول واحده

عموما أنا بجد مخنوق من ضياع الوقت في الفاضي عشان نقعد نقول أنا بشتغل بلغة أحسن من اللغة بتاعتك

هو ده يا جماعة إلي هيخلينه نتقدم و نبقه شيء أعتقد أن الأجابة لا و ألف لالالالالالالالالالالالالا

سلام معلش أنا عارف أني طولت

أخوكم عمرو عيسي

#12

عندي سؤال ربما أنه على نفس الموضوع تقريباً

ما هو ال SOAP

Simple Object Access Protocol

ما ذا يعني هذا ؟

وشكراً

اللهم طهر أرض فلسطين من العملاء والخونة

#13

الـSOAP هو البروتوكول القياسي المستخدم لتباديل البيانات بين ما يسمى بـ"خدمات الويب" Web Services أو اسمها الطويل XML Web Services. هذه التقنية تسمح للأنظمة (باختلاف أنواعها و لغاتها) بالتخاطب مع بعضها البعض بشكل قياسي و موحد.

#14

بشكل عام كما ذكر الأخوة بعد هذه الخطوة فالكود سوف يتحول إلى MSIL وهي واحدة في كل لغات ال .NET.. حتى أن ال Runtime JITter يقوم بعملية optimization عندما تقوم بتحويل الكود إلى لغة الآلة وهي بالذاكرة من أجل تسريع عمل البرنامج ..

قد تفرق بعض اللغات عن الأخرى هنا في ال compile time optimization ، فبعض المترجمات قد يتم بنائها بطريقة أذكى عن الأخرى ويتم انتاج كود msil اقصر وأفضل عن الأخرى.

تم تعديل هذه المشاركة بواسطة هاني الأتاسي في 29 سبتمبر 2005 في 07:44

Coding on the Cloud and for the Cloud!

My Blog

#15
اقتباس
قد تفرق بعض اللغات عن الأخرى هنا في ال compile time optimization ، فبعض المترجمات قد يتم بنائها بطريقة أذكى عن الأخرى ويتم انتاج كود msil اقصر وأفضل عن الأخرى.

كلام الأخ هاني 100% و إكمالا له إعتمادا على قراءة سابقة فإن هذا يرجح كفة ال #C مقابل ال VB.NET من ناحية السرعة (طبعا نحن لا نحس بهذا الفارق البسيط) و السبب هو أن مرحلة تحويل ال syntax الخاص بلغة السي شارب للأسمبلي في ال MSIL أسرع من تحويل ال VB.NET و هذا هو الفارق الوحيد

You can fly while you can touch the sky

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

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