رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

پرچمداران

  1. کامبیز اسدزاده

    کامبیز اسدزاده

    بنیـــان گذار


    • امتیاز

      1

    • تعداد ارسال ها

      292


  2. سید محمد عباسی

    سید محمد عباسی

    کاربـــر عـــــادی


    • امتیاز

      1

    • تعداد ارسال ها

      17



مطالب محبوب

در حال نمایش مطالب دارای بیشترین امتیاز در دوشنبه, 6 خرداد 1398 در همه بخش ها

  1. 1 امتیاز
    آقای اسدزاده ممنونم ❤ ولی حِسم به مایکروسافت یه جوری شد ☺
  2. 1 امتیاز
    سلام، کتابخانه‌های Win32 و MFC هرچند کتابخانه‌های قدرتمندی هستند اما باید در نظر داشته باشید این‌ها مُختصِ پلفترم ویندوز بوده و بر اساس API های ویندوز ارائه شدن و مسلماً کاربرد‌های آن‌چنان به‌روز و چند منظوره‌ای مثل Qt رو ندارند. کتابخانه‌ی پیشنهادی خود مایکروسافت در قالب چهارچوب دات‌نت است که برای سی++ هم UWP قابل استفاده بوده و شما می‌تونید رابط کاربری مدرن رو هم با WPF توسعه دهید (اما انتظار نداشته باشید در حد Qt خارق‌العاده باشه). با توجه به اینکه شخصاً تعامل خوبی با دات‌نت و سی‌شارپ دارم و در مواقعی که صلاح می‌دونم ازش استفاده می‌کنم، نیاز هست تا شمارو در جریان یک واقعیت قرار بدم (که سوال بسیاری از دوستان بوده)! شما برای اینکه برنامه‌ای رو تحت هر زبانی اجرا کنید مسلماً نیاز به یک سری کتابخانه‌ها و پیش نیازاتی خواهید داشت! برای مثال در سی‌شارپ شما نیاز به دات‌نت دارید و در سی++ نیاز به STL، Qt، ‌Boost و غیره! حالا کتابخانه‌ی پیشفرض سی++ STL و پیشفرض سی‌شارپ Net. هست! حالا با توجه به اینکه شما یک برنامه‌ی ساده ز نوع "سلام دنیا!" بنویسید! چیزی که در سی++ ارائه خواهد شد حدود چند کیلوبایت است که برای اجرای اون تنها نیاز به فایل‌های msvcr و msvcp و یا vcruntime خواهید بود که جمعاً حدود ۱ تا ۲ مگابایت نیستند! اما برعکس در سی‌شارپ شما بخوای همین برنامه‌ی ساده رو بنویسی خبری از این سادگی نیست! نیازمند پکیج حجیمی از دات‌نت خواهی بود که باید نصبش کنی در ویندوز وقتی شما با سی‌شارپ برنامه‌نویسی می‌کنید به دلیل اینکه چهارچوب .Net و SDK‌های مربوط به دات‌نت بر روی سیستم‌عامل مستقر شده‌اند نیازی نیست تا کتابخانه‌های مربوط به دات‌نت رو در کنار برنامه‌ی خودتون قرار بدین (چون این‌ها در خود سیستم‌عامل نصب می‌شوند نه در کنار برنامه). دقت کنید آیا بدون نصب پکیج (Microsoft .NET Framework Redistributable) می‌تونید برنامه‌های مربوطه رو اجرا کنید؟ پاسخش مسلماً خیر خواهد بود! این پکیج حداقل بعد از نصب چیزی حدود ۲۰۰ تا ۷۰۰ مگابایت و حتی بیشتر کتابخانه‌ی دات‌نت استخراج خواهد کرد و این یعنی در کنار فایل اجرایی یک برنامه‌ی ساده از نوع "سلام‌ دنیا!" چنین حجم بزرگی از کتابخانه نیاز خواهد بود! اما شما متوجه این نمی‌شید چون به صورت پیشفرض موقع نصب برخی از ابزار‌های اختصاصی مایکروسافت مثل ویژوال استودیو، آفیس و غیره این پکیج نصب می‌شود! البته خارج از لطف هم نیست در برخی از نسخه‌های نهایی ویندوز مثل ویندوز ۱۰ بخش هسته‌ی کتابخانه همراه با هسته‌ی سیستم‌عامل ارائه میشه و آنچنان مثل قبل نیاز نصب بخش عظیم کتابخانه نیست. اما با این حال شما حتماً به پکیج مربوطه جهت اجرای تمامی قابلیت‌های برنامه‌ی خودتون نیاز خواهید داشت که اصلاً قابل مقایسه با یک برنامه‌ی ۱ تا ۲ مگابایتی تحت سی++ نیست. حالا با توجه به این آیا حجمی معادل ۸ تا ۲۰ مگابایت واقعاً مشکل محسوب می‌شود؟! شما فرض کن کتابخانه‌ی کیوت رو در قالب یک SDK روی هسته‌ی سیستم‌عامل خودت نصب کرده باشی! در این صورت همون فایل اجرایی چند کیلوبایتی نهایت حجم تولید شده از یک برنامه‌ی ساده است. تعداد فایل‌ها مربوط به همون کتابخانه‌ هستش! آیا می‌دونید تعداد فایل‌های دات‌نت بسیار بیشتر و در یک کلام چند برابر کتابخانه‌ی کیوت است!؟ برای اینکه متوجه واقعیتی (پنهان) شوید به این مسیر بروید: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework وحشتناکه نه؟! مایکروسافت به همین راحتی سر برنامه‌نویس‌ها شیره می‌ماله و اون‌ها رو توجیح کرده که اگر کمی زیرک و حرفه‌ای به این مسائل باشید خواهید فهمید که در پشت این مزیت خوب چه جهنمی ساخته شده! در شناخه‌تر بودن محیط VS شکی نیست، اما این محیط توسعه یک محیط انحصاری برای پلتفرم ویندوز است. محیط توسعه‌ی Qt در هماهنگی بالا با خود کتابخانه مخصوصاً پشتیبانی از سیستم‌عامل‌های دیگه بسیار بهتر عمل می‌کنه. در مورد شباهتش به Win32 هم به خاطر درگیری مستقیم شما با کتابخانه هست. در رابطه با اینکه رابط کاربری رو با سی‌شارپ بنویسید و بک‌اند رو با سی++ کاملاً مخالفم! چون دارین خودتون رو قول می‌زنید! اگه قرار هست این کارو بکنید خب با همون VS تحت دات‌نت و C++/CLR کد‌نویسی کنید که تحت دات‌نت خواهد بود. راه حل بهتر اینه که واقعیت رو بپذیرید و قبول کنید که هر کار خارق‌العاده‌ای نیاز به تعامل بیشتری خواهد داشت. اگر می‌خواهید در قالب سرعت، قدرت، دسترسی‌، تعامل و خارج از هرگونه محدودیت برنامه‌نویسی کنید سی++ رو باید با تمامی سختی‌هاش بپذیرید! در غیر این صورت هیچ روشی برای قانع کردن خودتون وجود نداره. درضمن پاسخ اصلی به عنوان سوال : به صورت پیشنهادی کتابخانه‌ی Qt هست. کتابخانه‌های دیگری هم هستند مثل Juce یا wxWidgets.
این صفحه از پرچمداران بر اساس منطقه زمانی تهران/GMT+04:30 می باشد
×