تبلیغات
سایت تخصصی برنامه نویسی مهندس میثم حبیبی - VB.net بهتر است یا #C ؟
برای برگذاری دوره های مجازی از راه دور با تلفنهای 66641890 - 02166641008 (مجتمع برتر) تماس حاصل فرمایید
VB.net بهتر است یا #C ؟
یکشنبه 18 آبان 1393 ساعت 06:51 ب.ظ | نوشته ‌شده به دست میثم حبیبی | ( نظرات )

با سلام خدمت تمامی دوستان عزیز

من در این مقاله میخواهم تا با مقایسه فنی بین دو زبانVB.NET  و C# مشخص کنم کدامیک بهتر و کارآمد تر است.

این دو زبان از نظر معنایی و مفهومی هیچ تفاوت عمده ای با یکدیگر ندارند . در برخی از مقالات اینترنتی که بسیار کپی هم شده نوشته شده که C# از زبان قدیم C ارث بری می کند و بهره برده، که این گفته کاملا غلط است . دو زبان  و C# شاید به ظاهر ادبیات کد شبیه باشند اما در پایه برنامه نویسی مانند مغرب و مشرق هستند و اصلا هیچ ربطی به یکدیگر ندارند لذا این جمله باید به اینگونه اصلاح شوده که زبانهای VB.NET و C# هر دو با بهره گیری از Framework کار میکنند که زبانهای گذشته به هیچ عنوان این مورد را ندارند . دوم گفته شده که C# قادر است در حافظه دستکاری نماید که این عمل با VB.NET  نیز انجام میشده .

حال در اینجا باید گفت به چه دلیل ما باید در حافظه وارد شده و دستکاری نماییم در صورتی که امروزه از بانکهای اطلاعاتی برای همه امور ذخیره سازی استفاده می شود .در نتیجه این کار فقط برای کار با سخت افزار و مدیریت زیر بنایی سیستم و ساخت برنامه های میان افزار کاربرد دارد که برنامه نویسهای خیلی کمی در دنیا قادر به این کار میباشند. دستکاری حافظه فقط برای زمان کامپایل برنامه بوده که امروزه نیازی به این عمل نیست که جلوتر در مورد آن بحث خواهد شد.

دو زبان VB.NET و C# تنها یک پوسته برای زبان واسطی به نام  MSIL(Microsoft Intermediate Language) بوده و باید تمامی کدها قبل از تبدیل شدن به زبان ماشین (Native Code)  به آن تبدیل شوند. هنگام کامپایل شدن سورس کد برنامه ای که با یک زبان.NET  نوشته شده است تولید می شود. زبانهای پلاترم دات نت به طور یکسان از این زبان میانی پشتیبانی میکنند. در واقع این زبانها مجبورند که از استاندارد MSIL تبعیت کنند نه اینکه هر مقداری از آن که دلشان بخواهد را پشتیبانی کنند. بنابراین وقتی قرار باشد نتیجه کار هر دو زبان VB.NET و C# نهایتا به کد MSIL تبدیل شود ، دیگر چندان مهم نیست که مبدأ این کد به چه زبانی نوشته شده است. بنابراین هر دو زبان به یک ترتیب از قابلیتهای کلیدی چارچوب دات نت پشتیبانی می کنند.

مدیریت حافظه در VB.NET دقیقا به همان ترتیبی اتفاق می‌افتد که در C#   انجام می شود. در گذشته چنین نبود و یکی از دلایل گزینش زبان C به جای ویژال بیسیک ، برتری محسوس C نسبت به ویژوال بیسیک در زمینه مدیریت حافظه و راندمان برنامه بود. این تفاوت دیگر از بین رفته استمدیریت حافظه مستقیما توسط چارچوب .NET انجام می‌شود و نوع زبان برنامه‌نویسی تاثیری ندارد. حتی برتری ویژوال بیسیک در زمینه Rapid Application Development و معماری Windows forms نیز در پلاتفرم .NET از بین رفته است. برنامه سازی در سی شارپ دقیقا به همان سادگی ویژوال بیسیک دات‌نت است اما باید گفت شاید بهینه سازی و مدیریت حافظه در  بهتر از VB بوده ولی زمانی این میزان محسوس بوده که سیستمها کند بودند لذا امروزه که سخت افزارها چینین قوی شده است این اختلاف به هیچ عنوان حس نمی گردد.

تفاوت‌های اصلی میان دو زبان بیشتر در گرامر و Syntax زبان‌ است. در مقاله مفصلی که از اینجا قابل دریافت است ، مایکروسافت تمام کلیدواژه‌ها و syntax دو زبان را نظیر به نظیر بررسی کرده است و شما پس از مطالعه دقیقا مقاله فوق متوجه خواهید شد که این دو زبان تفاوت اندکی از نظر قابلیت ها و مزیتها دارند و هیچ کدام از نظر راندمان برنامه تولید شده و مدیریت حافظه به دیگری رجحان ندارند. تنها چیزی که می توانم بگویم اینست که زبان  C# زبان خلاصه‌تری است. به عبارت دیگر برای پیاده سازی یک قطعه کد در زبان سی شارپ به حجم برنامه‌نویسی کمتری نیاز است. اما به دلیل اینکه بیشتر ادبیات به صورت علائم می باشد و مانند VB.NET محاوره ای نیست آزار دهنده تربوده حتی اگر به آن عادت کرده باشید. البته باید بگویم آنهایی که بر روی زبان C# تعصب دارند به هیچ عنوان این حرف را نمی پذیرند پس بهتر است هر دو کد را به یک تازه کار نشان داده تا او قضاوت نماید. سالهاست که هر دو زبان را تدریس میکنم و رفتارهای مختلف شاگردان تازه کار را مشاهده نموده ام .

در برخی از نسخه های قدیمی .NET اختلافاتی وجود داشت مانند در زبان C# می‌توانستید سندهایی از نوع XML ایجاد کنید که با سورس کد برنامه شما پیوند خورده باشد. به این ترتیب به موازات پیشرفت پروژه برنامه نویسی می‌توانید خیلی راحتDocumentation  آن را نیز آماده نمود. چنین قابلیتی در VB.NET وجود نداشت که از نسخه 2005 به آن اضافه گردید.

بنابراین دقت کنید که برتر بودن زبان سی شارپ نسبت به VB.NET چیزی جز یک شایعه و افسانه نیست. حال باید گفت اگر سی شارپ و VB.NET از نظر قدرت و توانایی با هم تفاوتی ندارند پس مایکروسافت چرا این دوزبان را درست کرد؟ دلیلش اینست که مایکروسافت نمی توانست برنامه نویسان هریک از این دو گروه را وادار به پذیرش syntax زبان دیگر کند. بهتر بود که آنهایی که بهsyntax زبان C عادت دارند با همان روش ادامه بدهند و آنهایی که به ویژوال بیسیک علاقه دارند به همان منوال ادامه دهند. البته کار کسانی که از VB6 به VB.NET می آیند خیلی مشکل است زیرا VB.NET یک زبان OOP  پیشرفته است و این موضوع کار برنامه نویسان ویژوال بیسیک را که به راحت طلبی عادت کرده بودند سخت می کند. ولی برنامه نویسان C کار چندان مشکلی ندارند و می توانند از دانش خود در زمینه برنامه نویسی شیء گرا کماکان بهره بگیرند.

حال در اینجا میخواهم چند نکته دیگر را بیان نمایم که قابل تفکر و بررسی است.

  • در زبان VB.NET بخشی با نام Module وجود دارد که در C# وجود ندارد.

  • در زبان VB.NET دسترسی به بخش رویدادها بسیار ساده تر شده است.
  • در زبان VB.NET ادبیات کد راحتتر بوده که خودش باعث میگردد تا برنامه نویس تمرکز بیشتری را روی الگریتم برنامه اش داشته باشد نه آنکه مراقب حروف کوچک و بزرگ ،  ; و .. باشد که باعث پایین آمدن راندمان برنامه میشود .
  • خطا یابی در VB.NET سریعتر از C# که باعث میگردد زودتر خطاها کشف شود شما پس از اصلاح کد در C# میبینید خط خطا زیرش دیرتر از VB.NET حذف میشود.
  • تفاوتهای عمده دیگری وجود دارد که کفیست به زبان انگلیسی در سایت ماکروسافت بخش MSDN جستجو نمایید.

صادقانه بگویم که زبان سی شارپ در اصل برای رقابت با جاوا خلق شده است و مزیت خاص دیگری نسبت به VB.NET  ندارند. در واقع چون ادبیاتC#  خیلی شبیه جاوا و C است، این ویژگی می تواند برخی از برنامه نویسان  جاوا را قانع کند . واقعا زبان سی شارپ هیچ مزیت استراتژیک دیگری نسبت به ویژوال بیسیک دات نت ندارد. من خود با هر دو زبان کار کرده ام و از هر دو زبان خوشم میآید و هیچ تفاوت خاصی بین این دو نمی بینم.

 

امید وارم از این مقاله استفاده لازم را ببرید





مرتبط با: VB.NET , #C , برنامه نویسی ,




می توانید دیدگاه خود را بنویسید
salar یکشنبه 19 دی 1395 03:59 ب.ظ
دوستان برای استفاده از کد های vb در سی شارپ فضای نامی
using Microsoft.VisualBasic
رو اضافه کنید در زمن این رو بگم که #C خیلی خیلی قوی تره و تنها مزیت vb اسون بودنشه
میثم حبیبی پاسخ داد:
با سلام

دوست گرامی شما مثل اینکه از مهندسین ارشد میکروسافت بیشتر روی این زبانها تسلط دارید و من از طرف این دوستان از شما پوزش می طلبم که نسنجیده گفتن که این دو زبان یکی هستن و هیچ تفاوت از نظر مبنایی ندارد. متأسفانه شما هم دقیقاً به جای تحقیق همون حرف اساتید دانشگاه رو میزنید و معلوم میشود مقاله ابنجانب را اصلاً نخوانده اید.حال اگر #C قویتر است فقط بگویید در چه زمینه تا این اطلاعات مهم رو برای همه منتشر کنیم

درضمن اگر قرار باشد که در #C کدهای VB بنویسید بنظرتون به کمی توهین به زبان #C نکرده ایم.

با تشکر از دوستان
امین یکشنبه 30 خرداد 1395 11:46 ب.ظ
در کل سی شارپ یکم مرتب تر از بیسیکه
میثم حبیبی پاسخ داد:
به هیچ عنوان اینطور نیست

دو پروژه VB و #C رو با هم باز کنید و روی Form دوبار کیلیک نمایید و کدها رو مشاهده کنید
و بعد خودتون قضاوت کنید. کدهای VB به دلیل نزدیکتر بودن به زبان محاوره ای انسان خیلی مرتب تر و دسته بندی تر می باشد و فهم و درکش راحت تره
محمد یکشنبه 15 فروردین 1395 11:49 ب.ظ
سلام
ممنون، بابت اطلاعات خوبی که دادید.
م . ع چهارشنبه 18 آذر 1394 03:29 ق.ظ
ممنون فقط یک سوال دارم اگه کسی بخواهد یکی از این زبانها را یاد بگیرد کدامیک مدرن تر و ارجع تر هست؟
میثم حبیبی پاسخ داد:
در جواب این دوست عزیز باید بگویم که امروزه برنامه نویسان حرفه ای به زبان برنامه نویسی خود آیتم های جدیدی اضافه می کنند که در حالت پیشفرض درون نرم افزار وجود ندارد حال اگر به این قدرت از برنامه نویسی برسید دیگر مهم نیست کدام زبان.
در پابان باید بگویم این برنامه نویس است که برنامه با می نویسد نه برنامه ی برنامه نویسی . امیدوارم این متن را درک نمایید و به دنبال برنامه نویس شده باشید نه آنکه به دنبال برنامه خاصی باشید
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
نظرات پس از تایید نشان داده خواهند شد.
 
گفتمان مدیر
نویسندگان
نظر سنجی
آیا از مطالب سایت راضی هستید




دیگر موارد
بازدید کل :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد مطالب :
تعداد نویسندگان :
آخرین بروز رسانی :
آخرین بازدید :