نمایش نتایج 1 تا 9 از 9

نام تاپیک: چرا باید از qt استفاده کنیم

  1. #1

    چرا باید از qt استفاده کنیم

    سلام دوستان
    من تو این تالار واقعا در بین شما مهندسین احساس میکنم نمیتونم راجع به کیوت یا سی شارپ و .. کلا برنامه نویسی
    اظهار نظر کنم اما از شما اهل فن چند سوال دارم

    البته این رو هم بگم خودم خیلی کیوت رو دوس دارم
    چون مدتیه رفتم سمت ubuntu و برای لینوکس هم بهتر از کیوت پیدا نکردم

    بعد از این که کلی صحبت شنیدم راجع به اینکه مایا و چند نرم افزار بزرگ دیگه که با کیوت نوشته شده

    اما بعد

    توی یه تاپیک خوندم که مایا رو با سی پلاس پلاس نوشتن و فقط برای gui از کیوت اشتفاده شده
    و بعد از یه سری جستجو های دیگه فهمیدم که مکس هم وضعیت مشابه داره
    یعنی هسته اصلی 3d max رو با سی پلاس پلاس نوشتن و برای رابط کاربری از دات نت استفاده شده

    خب حالا چند سوال دارم

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

    با این توضیحات اولا انتخاب بین کیوت و سی ++ هست
    اگه قراره و لازمه هسته نرم افزار رو با سی ++ استاندارد نوشت
    و برای ui هم میشه از گزینه های دیگه مثل پایتون و یا دات نت استفاده کرد
    پس جای کیوت کجاست

    کتابخانه های دیگه هم هستن برای سی ++ که میشه برنامه برای لینوکس و مک و ویندوز استفاده بشه
    و در هر حال توی برنامه های بزرگ مواردی پیش میاد که مثلا کدی در لینوکس نوشته بشه که در مک قابل استفاده نباشه

    اصلا برای برنامه ای که ویندوزی هستش چرا از .net استفاده نکنیم و بیاییم سمت کیوت و سی پلاس پلاس
    آخرین ویرایش به وسیله beginner_1395 : شنبه 10 تیر 1396 در 20:14 عصر

  2. #2

    نقل قول: چرا باید از qt استفاده کنیم

    اگه قراره و لازمه هسته نرم افزار رو با سی ++ استاندارد نوشت
    و برای ui هم میشه از گزینه های دیگه مثل پایتون و یا دات نت استفاده کرد
    پس جای کیوت کجاست
    شما بستگی به کاربردتون می تونید هسته رو حتی با نرم افزارهای دیگه بنویسید و ui رو با C++‎ و یا برعکس. اما قبل از اون باید دانش کافی اتصال این دو به هم رو داشته باشید.

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

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

    من بودم بین گزینه های موجود به زبانهایی دیگه مثل C++‎ و جاوا و حتی پایتون فکر می کردم تا زبانهای مبتنی بر دات نت مثل سی شارپ و یا حتی C++‎ Managed. بحث فنی اینکه چرا باید از این زبانها استفاده کنیم (بجای سی شارپ) خیلی وقت گیر و پیچیده هست و توی یه تاپیک جا نمی شه ولی بطور خلاصه می شه به موارد زیر اشاره کرد:


    • سبک برنامه نویسی: دات نت فقط محدود به سبک خاصی به اسم شی گرایی هست در حالی که برخی از زبانها مثل C++‎ از انواع مدلهای دیگه مثل ساختاریافته، Aspect oriented و Data oriented پشتیبانی می کنند.
    • ابعاد برنامه نویسی: تقریبا شما هیچ برنامه بزرگی رو پیدا نمی کنید که با دات نت نوشته شده باشه (در سطح جهانی) و می شه گفت 90 درصد برنامه های بزرگ بسته به نوع اونها یا با C++‎ و یا جاوا نوشته می شن. دلیل این جریان خیلی پیچیده هست و برای درک درست اون باید مطالعات خیلی خیلی زیادی داشت. ولی خب مربوط به مدلهای برنامه نویسی هست که برای هر برنامه استفاده می شه.
    • سرعت: سرعت یه پارامتر خیلی مهم در اکثر برنامه هست. هرچند که در برنامه های مبتنی بر پایگاه داده سرعت UI و ... کمرنگ تر هست. سرعت واکشی داده از پایگاه داده و یا تحلیل درخواست، تراکنشها و ... معمولا اینقدر کم هست که می تونه مشکلات سرعت UI رو بپوشونه یا کمرنگ کنه. (اما خب من برنامه ایرانی دیدم که فرمش توی چند ثانیه ظاهر می شه و یا گزارش رو توی 20 دقیقه آماده می کنه - دیگه این شکلی هم نباید باشه).
    • کتابخونه ها: یکی از مزیتهای بارز C++‎ کتابخونه های اون هستند که تمومی ندارن. این زبان برای هرچیزی کتابخونه های معروف داره حتی برای ساخت برنامه های توزیع شده و ... (که دات نت عملا توی تعطیلات هست و حتی مدلهایی هم که براش وجود داره درست نیستن). و یا جاوا فریم ورکهای نسبتا کاملی داره.





    و کلی موارد دیگه که واقعا خارج از حوصله این تاپیک و تالار و خودم هست توضیح بدم. فقط اگر می خوایین با C++‎ کار کنید و نتیجه خوب بگیرید یه فرایند چندین ساله رو مد نظر داشته باشید (بزرگترین مشکل اینه). چون هنطور که بارها گفتم برنامه نویسهای این زبان یا حرفه ای هستن و یا مبتدی.

    و اگر واقعا می خوایید یه روز برنامه نویس حرفه ای باشید کلا سراغ تکنولوژی های مایکروسافتی نرید (فقط یاد بگیرید که بدونید چه خبره) این جریان که می گم شامل SQL Server و ... هم می شه. مثلا خیلی ها رو دیدم که می گن SQL Server بهتر از MySQL هست بدون اینکه بدونن داخل MySQL و یا بقیه دیتابیس سرورها چه خبره. (مثلا من اعتقاد دارم که SQL Server هم از نظر امکانات و هم نظر کارایی عقبتر MySQL هست.- مخصوصا ویرایشهای پولی-)

    من خودم مشکلی با مایکروسافت ندارم منتها این موارد معمولا برای برنامه نویسهای تا حداکثر سطح متوسط طراحی شده و برای کاربردهای حرفه ای تر نمی شه ازشون استفاده کرد. اولش به نظر می رسه همه چیز رو فراهم کرده و کارها پیش می ره. حتی ممکنه برنامه هم باهاش بیرون بدید که برنامه خوبی باشه. اما وقتی با یکی از مسائل زیر برخورد کردید کم میارید:



    • سازمان متوسط به بالا
    • داده زیاد
    • مشتری های متفاوت و نیازهای متفاوت و ...
    • سازمانهای پراکنده و ...
    • امکانات خاص


    البته اکثر اینها با اتخاذ مدلهای درست برنامه نویسی و دیزاین پترن های خوب (نه مواردی مثل MVC و سه لایه و یا موارد رایج ایرانی) می شه حلشون کرد. متاسفانه برخی از این دیزاین پترنهای خوب رو هم نمی شه کامل داخل سی شارپ پیاده سازی کرد.

    کلام آخر:

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

    تنها چیزی که باعث می شه شما به نتیجه درست برسید چندین سال تجربه و مطالعه خیلی خیلی زیاد و مداوم هست. من شخصا بعد از اینهمه مطالعه این ماه دارم دومین کتابم رو تموم می کنم و سراغ سومی میرم.

  3. #3

    نقل قول: چرا باید از qt استفاده کنیم

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

    زمانی‌ این حرف درست محسوب می‌شه که هدف از یادگیری زبان برنامه نویسی نوشتن برنامه‌های دیتا بیسی تحت ویندوز باشه و طرف نخواد زمان زیادی رو برای یادگیری بذاره که در این صورت برای این افراد دات نت گزینه مناسبی هست, اما برای کسی‌ که ++c بلد باشه دور از عقل که این پروژه رو با دات نت کار کنه وقتی‌ خروجی‌ ++c می‌تونه کراس پلتفرم باشه دلیلی‌ نداره برنامه نویس دات نت رو انتخاب کنه و خودش رو به ویندوز محدود کنه
    این موضوع هم که برنامه‌های نوشته شده با ++c زمان بیشتری رو میگیره کاملا به تبحر برنامه نویس بستگی داره


    توی یه تاپیک خوندم که مایا رو با سی پلاس پلاس نوشتن و فقط برای gui از کیوت اشتفاده شده
    و بعد از یه سری جستجو های دیگه فهمیدم که مکس هم وضعیت مشابه داره
    یعنی هسته اصلی 3d max رو با سی پلاس پلاس نوشتن و برای رابط کاربری از دات نت استفاده شده

    این کاملا منطقی‌ و درست هست و باید هم اینطور باشه همیشه لازم نیست همه قسمت‌های برنامه توسط کلاس‌های کیوت نوشته بشن نمی‌شه از کیوت انتظار داشت تو همه زمینه ها نیاز‌های برنامه نویس رو تامین کنه برای هر کاری باید از کتابخونه خودش استفاده کنید


    با این توضیحات اولا انتخاب بین کیوت و سی ++ هست



    بارها تو این انجمن گفته شده که Qt یک زبان نیست که شما اون رو از ++c جدا می‌دونید Qt فقط مجموعه ایی از کلاس‌ها و کتاب خونه‌های آماده برای رابط کاربری هست و برای اینکه بتونید با کیوت کار کنید اول باید ++c یاد بگیرید




    اگه قراره و لازمه هسته نرم افزار رو با سی ++ استاندارد نوشت
    و برای ui هم میشه از گزینه های دیگه مثل پایتون و یا دات نت استفاده کرد
    پس جای کیوت کجاست



    وقتی‌ همه این کارها رو می‌شه با ++c انجام داد چه دلیلی‌ داره از دات نت یا پایتون برای رابط کاربری استفاده کرد؟ از این گذشته اگر ui با پایتون یا دات ننت ساخته بشه در این صورت ui از هسته کاملا جدا می‌شه و امکان اینکه کسه دیگه از هسته استفاده کنه هم هست

  4. #4

    نقل قول: چرا باید از qt استفاده کنیم

    کلا توی برنامه نویسی باید آخرین گزینه تون دات نت باشه
    من نمیگم qt خوبه یا بده
    اما کلا تو تالارهایی مثل اینجا یا جاوا رسم شده
    برای اینکه بگن ما خیلی خوبیم دات نت رو میکوبن
    خداییش من دارم از WPF استفاده میکنم چیزی هم از qml شما کم نداره
    تازه ابزارهایی مثل Blend کار روهم خیلی ساده کرده
    خلاصش این که نکنید این کار رو خب فکر میکنید کیوت تون خوبه نقاط قوتش رو بگید
    دیگه با ما چیکار دارین

  5. #5

    نقل قول: چرا باید از qt استفاده کنیم

    نقل قول نوشته شده توسط Delphi XE2 مشاهده تاپیک
    من نمیگم qt خوبه یا بده
    اما کلا تو تالارهایی مثل اینجا یا جاوا رسم شده
    برای اینکه بگن ما خیلی خوبیم دات نت رو میکوبن
    خداییش من دارم از WPF استفاده میکنم چیزی هم از qml شما کم نداره
    تازه ابزارهایی مثل Blend کار روهم خیلی ساده کرده
    خلاصش این که نکنید این کار رو خب فکر میکنید کیوت تون خوبه نقاط قوتش رو بگید
    دیگه با ما چیکار دارین
    با توجه ب نوع کاربرد باید زبان برنامه نویسی انتخاب کرد. من .NET کارم. اما در مورد یه پروژه ارتباط با سخت افزار کتابخونه های خوب Qt باعث شد تا برنامه خیلی قویتر شه. و ارتباط با سخت افزار نمیدونم چرا ولی باورنکردنی سریغ شد. و بسیار زیبا و دلنشین من apk برنامه برنامه هم گرفتم و کاربر چ ذوقی کرد وقتی برنامه رو تو تبلت دید من هنوز .net دوست دارم ولی هر چیز جای خودش
    هنوز ی سری برنامه با دات نت مینویسم
    وب کار ک هستم و عشق م asp.net هست
    مطمینن نظر همهخ دوستان محترم و برای این هست ک رغبت بیشتری برای یادگیری داشته باشیم. همین طور من ک از تاپیک های استاد اسدزاده در همین انجمن شروع ب یادگیری کردم و ب نتیجه دلخواه م رسیدم

  6. #6

    نقل قول: چرا باید از qt استفاده کنیم

    خداییش من دارم از WPF استفاده میکنم چیزی هم از qml شما کم نداره
    مثل WPF ، کیو ام ال هم یک کتابخونه هست و انتخاب کتابخونه به عهده شماست که چجوری باشه. شما حتی می تونید کتابخونه خودتون رو بنویسید که از هر دوی اینها هم جلو باشه مثلا کتابخونه دوستمون سجاد (seganx) بهتر از هر دوی اینها می دونم (حداقل خروجیش بهتره و سرعت خوبی هم داره)

    منتها ویژگی های دیگه هم هستن که باید بهشون دقت کرد مثلا qml به صورت ذاتی reactive هست و می شه از جاوا اسکریپت توش استفاده کرد. اما تا اونجا که می دونم اینکارها با کد سی شارپ و الحاقی reactive توی دات نت انجام می گیره.


    اما کلا تو تالارهایی مثل اینجا یا جاوا رسم شده
    برای اینکه بگن ما خیلی خوبیم دات نت رو میکوبن
    بعد از تجربه C++‎ شما معنای کامل آزادی برنامه نویس رو متوجه می شید و اینکه با کامپیوتر می شه چه کارهایی کرد. و بعد از تجربه Java EE شما متوجه می شید که سی شارپ بیشتر یه تقلید کورکورانه از جاوا بوده. واقعا حیفه که جایی که می شه از C++‎ و یا Java EE استفاده کرد سراغ گزینه هایی مثل C#‎ رفت. (به نظر من نهایت آماتور بودن رو نشون می ده)

  7. #7

    نقل قول: چرا باید از qt استفاده کنیم

    نقل قول نوشته شده توسط pswin.pooya مشاهده تاپیک
    بعد از تجربه C++‎‎ شما معنای کامل آزادی برنامه نویس رو متوجه می شید و اینکه با کامپیوتر می شه چه کارهایی کرد.
    کاملادرسته



  8. #8

    نقل قول: چرا باید از qt استفاده کنیم

    نقل قول نوشته شده توسط negative60 مشاهده تاپیک
    بارها تو این انجمن گفته شده که Qt یک زبان نیست که شما اون رو از ++c جدا می‌دونید Qt فقط مجموعه ایی از کلاس‌ها و کتاب خونه‌های آماده برای رابط کاربری هست و برای اینکه بتونید با کیوت کار کنید اول باید ++c یاد بگیرید
    راستش مدتیه که هی میخوام این سوال رو بپرسم اما ...
    بلاخره گفتم نپرسیدن عیبه ...

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

  9. #9

    نقل قول: چرا باید از qt استفاده کنیم

    خوب منم میدونم که کیوت زبان نیس و مجموعه ای از کتاب خونه هاس مثلا مثل mfc که کتابخونه مایکروسافته دیگه
    تا اینجا درسته یا نه
    خب من وقتی از سی ++ استاندارد استفاده کنم
    یعنی کاری که این کتابخونه ها انجام میدن خودم انجام بدم
    خب دیگه از کیوت استفاده نکردم
    سوال اصلیم هم توی این تاپیک که متاسفانه پاسخ نگرفته همین بود
    مثلا چرا کسایی که فتوشاپ رو نوشته اند gui رو هم خودشون مینویسن و از کتابخونه هایی مثل کیوت یا حتی دات نت برای gui استفاده نکردن
    از طرف دیگه اگه نباید از این کتابخونه ها استفاده کنیم پس چرا مکس و مایا استفاده کردن
    خلاصه نمیدونم این بار منظورم خوب رسوندم یا نه
    کتابخونه‌ها برای آسونتر و ساده تر کردن برنامه نویسی و سریعتر نوشتن ساخته شدن بله شما میتونید با توابع بومی سیستم عامل هم رابط کاربری بسازید اما خیلی‌ خیلی‌ باید وقت و انرژی صرف این کار کنید این مساله فقط در مورد کیوت و رابط کاربری نیست تقریبا برای هر کاری در ++c یک کتاب خونه وجود داره (رمزنگاری، پردازش تصویر، شبکه، رابط کاربر و...) مثال شما میخواید یک الگوریتم رمزنگاری رو پیاده سازی کنید اول اینکه باید علمش رو داشته باشید و در مورد اون الگورینتم به صورت دقیقی‌ مطالعه کنید بعد باید اون الگوریتم رو با پرفورمنس بالایی بنویسید و اگر موفق بشید و اگر باگی وجود نداشته باشه میتونید ازش استفاده کنید خوب همین مساله زمان خیلی‌ خیلی‌ زیادی رو از شما میگیره! وقتی‌ کتاب خونه‌های زیادی برای همین کار قبلان ساخته شده اند و بعد از سالها امتحان خودشون رو پس داده‌اند دلیلی‌ نداره از صفر شروع کنید به نوشتن به جای اینکه وقت و انرژی تون رو صرف این کارها کنید میتونید همین زمان رو صرف ساختن پروژه‌ها و محقق کردن ایده‌هاتون کنید
    به نظر من زمانی‌ باید از صفر شروع کنید که یا بتونید همون کار کتابخونه رو ساده تر و با کارآیی بیشتر و بهتر انجام بدید یا اینکه اون کتابخونه نیازهای شما رو تامین نکنه, یا دلایل منطقی‌ دیگه که می‌تونه وجود داشته باشه.
    امیدوارم جوابی‌ که دنبالش بودی رو تونسته باشم بدم

تاپیک های مشابه

  1. سوال: چرا باید از MVVM استفاده کنیم؟!
    نوشته شده توسط armsoftpc در بخش WPF
    پاسخ: 6
    آخرین پست: شنبه 28 دی 1392, 16:33 عصر
  2. سوال: چرا باید از OpenGL استفاده کنیم
    نوشته شده توسط mortex3000 در بخش طراحی و ساخت بازی‌های کامپیوتری
    پاسخ: 1
    آخرین پست: یک شنبه 01 اردیبهشت 1392, 20:25 عصر
  3. سوال: چرا باید از Bindingsource استفاده کرد؟
    نوشته شده توسط r. salehi در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: پنج شنبه 02 شهریور 1391, 17:04 عصر
  4. چرا باید از شیرپوینت استفاده کنیم؟
    نوشته شده توسط ghameshloe در بخش مدیریت در شیرپوینت (Sharepoint Administration)
    پاسخ: 19
    آخرین پست: شنبه 19 فروردین 1391, 17:29 عصر
  5. مقاله: توضیحاتی در مورد اینکه چرا باید از index استفاده کنیم
    نوشته شده توسط vahid4134 در بخش MySQL
    پاسخ: 0
    آخرین پست: پنج شنبه 16 خرداد 1387, 13:22 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •