واضح آرشیو وب فارسی:سایت ریسک: t=33833">C# يا Vb.net ؟ Mikhak 16 تير 1384, 23:08هدف من از گذاشتن اين مقاله مقايسه برتري زبانهاي برنامه نويسي نميباشد چراكه هيچ وقت نميشود گفت يك زبان برنامه نويسي نسبت به ديگري برتر است هدف ، بررسي تفاوتهاي اين دو زبان و برطرف كردن بعضي افكار اشتباه و نسنجيده ميباشد . واقعيت اينست که اين دو زبان از نظر قابليتها و تواناييها هيچ تفاوت عمدهاي ندارند ، جز اينکه زبان سيشارپ به دليل ارث بردن پاره اي خصوصيات از زبان پيشکسوت خود ، ++C ، هنوز به برنامه نويس اجازه ميدهد که مستقيما حافظه را دستکاري و مديريت کند. با اين وجود هنوز هم بسياري از برنامهنويسان و کارشناسان چه در ايران و چه در ساير نقاط دنيا بر اين تصور اشتباه هستند که #C از VB.NET قويتر است. چنين نيست. دليل اين ادعا بسيار ساده است : هر دو زبان چيزي نيستند جز يک پوشش ظاهري براي زبان MSIL که هنگام كامپايل شدن سورس كد برنامه اي كه با يك زبان دات نتي نوشته شده است توليد مي شود. تمام برنامه هايي كه براي پلاتفرم دات نت نوشته مي شوند پيش از اينكه به كد زبان ماشين (Native Code) تبديل شود به يك زبان مياني به نام Microsoft Intermediate Language تبديل مي شوند. زبانهاي پلاترم دات نت به طور يكسان از اين زبان مياني پشتيباني مي كنند. در واقع اين زبانها مجبورند كه از استاندارد MSIL تبعيت كنند نه اينكه هر مقداري از آن كه دلشان بخواهد را پشتيباني كنند. بنابراين وقتي قرار باشد نتيجه کار هر دو زبان ويژوال بيسيك دات نت و سي شارپ نهايتا به کد MSIL تبديل شود ، ديگر چندان مهم نيست که مبدا اين کد به چه زباني نوشته شده است. بنابراين هر دو زبان به يك ترتيب از قابليتهاي كليدي چارچوب دات نت پشتيباني مي كنند. مثلا مديريت حافظه در VB.NET دقيقا به همان ترتيبي اتفاق ميافتد که در سي شارپ. در گذشته چنين نبود و يکي از دلايل گزينش زبان ++C به جاي ويژال بيسيک ، برتري محسوس ++C نسبت به ويژوال بيسيک در زمينه مديريت حافظه و راندمان برنامه بود. اين تفاوت ديگر از بين رفته است. مديريت حافظه مستقيما توسط چارچوب داتنت انجام ميشود و نوع زبان برنامهنويسي تاثيري ندارد. حتي برتري ويژوال بيسيک در زمينه Rapid Application Development و معماري Windows forms نيز در پلاتفرم داتنت از بين رفته است. برنامه سازي در سي شارپ دقيقا به همان سادگي ويژوال بيسيک داتنت است. تفاوتهاي اصلي ميان دو زبان بيشتر در گرامر و Syntax زبان است. تنها چيزي كه مي توانم بگويم اينست كه زبان سي شارپ زبان خلاصهتر و موجزتري است. اين شايد بهترين توصيف براي سي شارپ باشد. به عبارت ديگر براي پياده سازي يک قطعه کد در زبان سي شارپ به حجم برنامهنويسي کمتري نياز است. اين مشابه تفاوت برخي زبانهاي تکلم در دنياست. مثلا خيلي از جملات در زبان ژاپني ممکن است تنها به دو کلمه احتياج داشته باشند در حالي که در برخي زبانها مثل فارسي شايد نتوان اغلب جملات را با تنها دو کلمه بيان کرد. يکي از تفاوتهاي شناخته شده ميان دو زبان ، امکان تعريف سندهاي مربوط به سورس برنامه است. در زبان سي شارپ ميتوانيد سندهايي از نوع XML ايجاد کنيد که با سورس کد برنامه شما پيوند خورده است. به اين ترتيب به موازات پيشرفت پروژه برنامه نويسي ميتوانيد خيلي راحت Documentation آن را نيز آماده کنيد. چنين قابليتي در VB.NET وجود ندارد اما خبر خوب اينست که در نسخه بعدي پلاتفرم داتنت (موسوم به Whidbey) اين قابليت به VB.NET افزوده شده است. يک تفاوت ديگر بين دو زبان آن است که در سيشارپ ميتوانيد عملگرها يا Operator هاي سفارشي بسازيد. مثلا علامت > را طوري تعريف کنيد که عبارت Today > Yesterday معنا پيدا کند و عملگرهاي رياضي بزرگتر و کوچکتر تنها محدود به اعداد نباشد. البته اين قابليت نيز در نسخه بعدي VB.NET افزوده شده است. در حقيقت همين چند درصد تفاوت فعلي ميان قابليتهاي گرامر دو زبان ويژوال بيسيک داتنت و سيشارپ ، در نسخه شماره دو چارچوب داتنت ناپديد شده است. بنابراين دقت كنيد كه برتر بودن زبان سي شارپ نسبت به VB.NET چيزي جز يك شايعه و افسانه نيست. اين دو زبان حدود فقط ۵ درصد با يكديگر اختلاف دارند. حتي پيشرفته ترين مفاهيم برنامه نويسي OOP نيز در VB.NET وجود دارند (مثل مفهوم Delegates). كساني كه چنين اظهار نظرهايي مي كنند يا هنوز فكر مي كنند كه همان تفاوت ميان ++C و VB كماكان در مورد VB.NET و #C نيز وجود دارد يا اينكه شناخت صحيحي از پلاتفرم دات نت ندارند. در واقع خيلي رك بگويم : كساني كه (بخصوص مديران و كارشناسان ارشد شركت هاي نرم افزاري) به اين توهم دچارند كمترين آشنايي فني با چارچوب دات نت ندارند. من به اين افراد و نيز به نوآموزان فناوري دات نت اكيدا توصيه مي كنم پيش از انتخاب يك زبان مبتني بر دات نت ، حتما با اصول و مباني NET Framework آشنا شوند. ------------------------- سينا
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2054]