اندر نکوهش ویژوال بیسیک ۲

در پست اندر نکوهش ویژوال بیسیک گفتم که به نظر من ویژوال بیسیک نه تنها زبان بدی است، بلکه بدترین زبان برای شروع و کسانی است که تاکنون برنامه نویسی نکرده اند.حال دلیل دیگر بر مدعای خود می آورم:

اریک ریموند از برنامه نویسان بسیار حرفه ای و یکی از پایه گذاران جنبش باز متن است. مقاله بسیار مفید و معروفی دارد با نام “چگونه هکر شویم؟” (هکر در اینجا به معنی برنامه نویس حرفه ای است) درباره برنامه نویسی و راه های حرفه ای شدن در آن. متن انگلیسی را در اینجا و ترجمه ای فارسی از آن را می توانید اینجا ببینید.

در انتهای متن در بخش پرسش های بسیار پرسیده شده به سوال ” آیا ویژوال بیسیک زبان برنامه‌نویسی خوبی برای شروع است؟ ” پاسخ می دهد که ترجمه آن را نقل می کنم. با توجه به این نکته که نسخه متن انگلیسی از نسخه ترجمه شده جدیدتر است، آنرا با اندکی تغییر بر اساس متن جدید اینجا می آورم:

پرسش: آیا ویژوال بیسیک زبان برنامه‌نویسی خوبی برای شروع است؟

پاسخ: اگر شما چنین سوالی را می‌پرسید، مطمئناً به این معنی است که شما قصد دارید که هکری را تحت ویندوز یاد بگیرید. این ایده به خودی خود بد است. هنگامی که من سعی برای هک کردن تحت ویندوز را با سعی برای یادگیری رقص هنگامی که داخل قالبی قرار دارید، مقایسه کردم، شوخی نمی‌کردم. به طرف ویندوز نروید چون خیلی بد است و هیچ‌وقت خوب نخواهد شد.

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

اگر شما کاملاً مراقب امکاناتی که از آنها استفاده می‌کنید -بیشتر از آنچه یک فرد مبتدی می‌تواند- نباشید، به طور قطع سرانجام در یکی از بسترهایی که مایکروسافت از آنها پشتیبانی می‌کند، محدود خواهید شد. اما اگر شما با یونیکس آغاز بکنید، زبانهای برنامه‌نویسی خیلی بهتری با کتابخانه‌های بهتری خواهید داشت. مثل پایتون.

مانند بیسیک‌های دیگر، ویژوال بیسیک زبانی است که طراحی بسیار ضعیفی دارد و شما را به روش‌های غلط در برنامه‌نویسی عادت می‌دهد. از من نخواهید که جزئیات آن را شرح دهم. این توضیحات یک کتاب را پر می‌کنند. به جای بیسیک یک زبان برنامه‌نویسی خوب طراحی شده را یاد بگیرید.

یکی از عادت‌های بد وابسته شدن به ابزار کتابخانه‌ای و ابزار توسعه‌ی یک شرکت خاص است. به طور کلی هر زبانی که به طور کامل حداقل توسط لینوکس یا یکی از BSD ها پشتیبانی نشود و یا حداقل تحت سیستم‌عامل‌های سه شرکت متفاوت کار نکند، یک زبان ضعیف برای هکری است.

اگر می خواهید بار دیگری که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید.

۱۸ Responses to “اندر نکوهش ویژوال بیسیک ۲”

  1. البته حرفهای شما کاملا متینه جناب غانم زاده ولی توجه هم دارین که برای بچه های نرم افزار گذروندن وی بی یک اجباره و اون چیزیه که دانشگاه از ما میخواد. به نظر شما ایا راهی هست که وی بی رو یاد گرفت ولی اونطوری که شما فرمودید به عادات غلطی که بوجود میاره دچار نشد ؟

  2. – برای بچه های نرم افزار گذروندن VB‌ اجباری نیست. این کاملا بستگی به دانشگاه داره.
    – یاد گرفتن VB که وقت خیلی کمی هم میبره، از یاد نگرفتنش بهتره. مثال میزنم‌: من خیلی از ابزارهای دمِ دستی ام رو با VB مینویسم. چون بجای ۴۰۰ خط (مثلا توی سی.شارپ)، از مجموعه امکانات خودِ VB استفاده میکنم و فقط ۴۰ خط کد مینویسم. معامله‌ی خوبی نیست ؟
    – قبول دارم که مایکروسافت سعی داره “زورکی” VB رو سرِپا نگه داره،‌ اون هم با روشهای مزورانه !!!

    پرسش: آیا ویژوال بیسیک زبان برنامه‌نویسی خوبی برای شروع است:
    بنظر من: ابداً‌ !

  3. اما جدیداً گذروندن VB در همه ی دانشگاه ها و هنرستان ها اجباری شده.حتی در کنکور کاردانی به کارشناسی هم ازش سئوال میاد.
    درسته برای شروع بیسیک اصلاً توصیه نمیشه ولی الان VB.NET چیزی از زبان های دیگه کم نداره و به نظر من زبان خیلی خوبیه. هر چند خودم حاضر نیستم تا C# مونده برنامه ای به این زبان بنویسم. اما به قول مهرداد میشه خیلی از برنامه های دم دستی و کم دردسر رو با ویژوال بیسیک به راحتی نوشت.

  4. ای خدا
    چی بگم؟؟؟؟؟

    امید تو میای این متنا رو می نویسی
    بعد ما میاییم بهت می گیم بیا یه پروژه با VB واسه یه بنده خدایی بنویس
    دیگه روت نمی شه بگی می نویسم

    این حرفا رو نیا اینجا بزن
    دست مارو هم تو حنا نگذار!!!!!

    ***::..(دوستان عزیز امید به من می گه نیا تو وبلاگم چرت و پرت بگو – از اون طرف هی دم از آزادی بیان می زنه)..::***

  5. با عرض سلام:
    میخواستم خدمت این آقای صاحب بلاگ و استاد برنامه نویس عرض کنم اصل مطلب درک برنامه نویسی نه زبان. اگه بتونی با یکی از زبانها به راحتی برنامه بنویسی .مطمین باش با اون یکی زیانها هم میتونی برنامه نویسی کنی.و هرگز python رو با vb مقایسه نکن.

  6. Nasser Ghanemzadeh

    دوست عزیز بابکو
    حرف شما کاملا درست است و اصل “درک برنامه نویسی” است. اما پرسشی دارم:
    برنامه نویسی چگونه درک میشود؟
    فرآیند یادگیری برنامه نویسی چیست؟

    آیا در دنیا کسی را می شناسید که “بدون اینکه با زبانی کار کرده باشد، برنامه نویسی بلد باشد!؟”
    برنامه نویسی یک فرآیند تجربی نیز هست و افراد توانایی های برنامه نویسی خود را در عمل افزایش داده و تقویت می کنند.
    روشن است برای آغاز باید از یک زبان باید استفاده شود، و سخن من آن است که این زبان زیانی باشد که “درک درستی” از برنامه نویسی دست دهد.
    در ضمن VB زبان برنامه نویسی نیست، ترکیبی از یک زبان، یک IDE و یک بستر (پلتفرم) است.

  7. خدایی راست گفتی ناصر جان!
    VB هم شد زبان برنامه نویسی؟!؟!؟!؟!؟!؟!

    البته دوستانی که از این حرفا ناراحت می‌شن حق دارن!
    چون وقتی می شنون که VB زبان بدیه، (هیچ کلمه‌ای برای توصیفش نمیابم! 😀 )
    احساس می‌کنن به اونا، و علمشون در این زمینه توهین شده! به این مسئله که زمانی وقت گذاشتن و اونو یاد گرفتن، وقتی که حالا می‌فهمن بر باد دادن!

    ولی بچه ها ناراحت نباشین، گذشته ها گذشته و ماهی رو هر وقت از آب بگیری تازه است!!!!

    بابکوی عزیز وقتی می‌گی «هرگز پایتون رو با vb مقایسه نکن» اینطور احساس می‌شه که نمی‌دونی پایتون چیه!!!

  8. مخالف ام !
    اولا که زبان در برنامه نویسی اصلا مهم نیست. چون شما سینتکس رو تحت هر زبانی میتونید تولید کنید و آنچه مهم است یادگرفتن خود روش های برنامه نویسی است . حالا پیاده سازی اون با هر زبانی میتونه باشه
    دوم اینکه : VB برای تازه کارها خیلی راحت است و ابزارهای برنامه نویسی خیلی زیادی داره . در ایران هم که همه ویندوز کار هستند . پس نیازی نیست الکی خودمونو اسیر یه زبان سخت کنیم .
    این حرف مث حرف افرادی است که در ایرانن و خودشون از ویندوز استفاده میکنند و بعد میگن به لینوکس مهاجرت کنید… مثل یک جک می مونه بیشتر .

  9. در ضمن در دات نت ، کتابخانه های تمام زبان های دات نا با هم مشترکه . یعنی کتابخانه vb با کتابخانه c# یکی است. بنابراین دیگه ایراداتی که به vb 6 میگرفتن بر vb.net وارد نیست .
    ————

  10. هیچ وقت چنین نظراتی و حرفهایی بستر علمی نداشته و ندارد. من یک عمره دارم با vb و الان با vb.net که خیلی بهتره کار میکنم. نیازی نیست باور کنید ولی نه تو ایران بلکه تو خارج برای شرکت های بزرگ برنامه نویسی میکنم آنهم با vb.net اگر از اونها سوال کنید که مثل ما ایرانیا از روی معده حرف نمیزنند میگن که هر چیزی جایی داره. اگر فلانی گفت که vb خوب نیست منافع خودشو که کار کثیف هکری است رو سنجیده و فکرش محدوه و نمی تونه حتی یک ذره به بشر خدمت کنه. ولی مایکروسافت وقتی vb رو برای کارهای کوچیک و متوسط در حالیکه همه مسخرش می کردند آفرید و خدمت بزرگی کرد همه اونا تحسینش کردند و شرمسار شدند . vb ادعای هکری نداره. گرچه یک vb کار حرفه ای هم میتونه دست به یه کارهایی بزنه. شایدم ماها ایرانیا وقتی نو بیاد به بازار کهنه دلمونو می آزره. مثل لینوکس که وقتی از ویندوز تقلید کرد و گرافیک بسیار مشابه ویندوز رو ارائه داد همه گفتند این چه خوبه ولی خبر نداشتند که صدای تبل از دور خوشه. اون موقع که مایکروسافت تو اون دوره که کسی از کامپوتر چیزی نمیدونست اومد و خدمت بزرگی به بشر کرد و سیستم عامل بسیار بسیار پیچیده یونیکس ، ویندوز ساده رو ارائه داد ، لینوکس کجا بود و چی کار کرد؟ حال الان اومده با شعار مسخره اپن سورس می خواد از صفت نو که اومد به بازار کهنه شده دل آزار مردم استفاده کنه و بگه منم بعد این همه سال اومدم اونم با هزار تا باگ و ایراد و تقلید از ویندوز تا شاید جایی برسه ولی نمیدونه که با اینمه دبدش هنوزم ۹۳% کامپوتر های خانگی دنیار رو ویندوز محبون و بشر دوست تصاحب کرده . من هیچ وقت زحمت های مایکروسافت رو نادیده نمی گیرم و همیشه تحسین میکنم و همیشه باعث پیشرفتم بوده و خواهد بود.

  11. سلام
    دوستان لطفا من و راهنمایی کنین
    من می خوام شروع به یاد گیری یه زبان برنامه نویسی بکنم
    و با هیچ کدام از اینها آشنایی ندارم
    با چه برنامه ای شروع کنم بهتره ؟

  12. در پست دیدگاه از طرف اکبر ، ایشان همه حرفها رو زدن. و تنها من میخوام نکاتی چند رو به کلام ایشون اضافه کنم. باید به آقای اریک ریموند گفت که بابا قرار نیست همه به یک ابزار نویس یا به قول شما هکر تبدیل بشن و از طرفی دیگه هیچ دیوانه ای با کامیون نمی ره پیک نیک. هیچ شکی نیست که برای مثال زبان سی پلاس پلاس بسیار بسیار قدرتمند و کاراست اما نوشتن یک برنامه حسابداری با همان ویژوال بیسیک راحت تر است یا با سی. تکلیف من که مثل آقای آرتور توروالز نمی خواد کرنل سیستم عاملی مثل لینوکس رو بنویسه چیه. کدام آدم احمقی به قصد دیدن یک فیلم سینمایی کلی از عمرش رو صرف این میکنه لامپ تصویر تلویزیون چطور عمل میکنه. خود آقای ریموند هم راغبند ریموت رو بردارند و خیلی راحت با فشار دادن دکمه پاور در حالی که قهوشون رو میل میکنند به تلویزیون خیره بشن و برنامه مورد علاقشون رو ببینن نه آن که برای این کار مجبور بشن کلی از علم الکترونیک سر در بیارن.
    در ضمن برای یک نو آموز که تا به حال برنامه نویسی نکرده چطور می توان قوانین آبجکت اورینتد رو شرح داد. آن نو آموز چطور میتونه بین برنامه های ماژولار و آبجکت اورینتد فرقی قائل بشه.
    این قبول که انحصار طلبی آقای بیل گیتس همه رو شدیداً عصبانی کرده اما نباید کینه و نفرت خودمان نسخه ای باشد که برای همه علاقمندان به کامپیوتر می پیچیم.
    آقای ریموند اگر خیلی دلسوز علاقمندان هستند باید این نکته رو هم اضافه می کردند که برنامه نویسان مورد علاقه ایشان تا زبان اسمبلی رو یاد نگیرن حتی از زبان سی هم درک درستی نخواهند داشت.
    کسی بخواد روح برنامه نویسی رو درک کنه حداقل باید مقدمات این زبان رو بدونه و بعد می تونه بره سراغ زبان های سطح بالاتر مثل چیزهایی که آقای ریموند میگن.
    من اگر بخوام برای سخت افزار برنامه بنویسم دیوانه نیستم که از زبانی مثل بیسیک استفاده کنم. و همینطور اگر بخوام یک برنامه کاربردی نه چندان پیچیده بنویسم باز صرفه اقتصادی رو در استفاده از زبان های سطح بالایی مثل سی شارپ و یا بیسیک می بینم.
    اگر بخوام به یک علاقمند ۱۴ و یا ۱۵ ساله توصیه کنم میگم اول بیسیک رو یاد بگیره با بفهمه به چی میگن برنامه نویسی بعد که مسلط شد اسمبلی رو یاد بگیره تا بفهمه تو دل روده این دستگاه مرموز چی میگذره و بعد بره سراغ سی پلاس پلاس تا همه قدرت واقعی برنامه نویسی رو پیدا کنه و بعد برای نوشتن برنامه های صرفاً کاربردی جاوا و سی شارپ رو بخونه و در آخر برای اینکه حرف آقای اریک ریموند زمین نیفته در این میان نگاهی هم به پایتون داشته. والسلام

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>