PDA

View Full Version : برسی اینده کیوتی



winner1
دوشنبه 30 فروردین 1395, 10:29 صبح
دوسان این همه بحث شد من عنوانی راجب اینکه اینده کیوتی رو چطور میبینین ندیدم لطفا نظر بدین من سی شارپ کار ممیکردم و مدتی کیوتی کار کردم و توانایی هاش رو دیدم ولی تا اینجا تنها چیزی که دیدم طاهر قوی بود که با wpf هم میشه ایجاد کرد

کامبیز اسدزاده
دوشنبه 30 فروردین 1395, 15:04 عصر
دوسان این همه بحث شد من عنوانی راجب اینکه اینده کیوتی رو چطور میبینین ندیدم لطفا نظر بدین من سی شارپ کار ممیکردم و مدتی کیوتی کار کردم و توانایی هاش رو دیدم ولی تا اینجا تنها چیزی که دیدم طاهر قوی بود که با wpf هم میشه ایجاد کرد

طبق این نتیجه گیری شما من پیشنهاد میکنم با همون سی شارپ و فناوری WPF کار کنید! WPF یه فناوری برای طراحی هست و Qt یه کتابخانه !!!



زبان برنامه نویسی ++C زمین تا آسمون با سی شارپ فرق میکنه و با یه تحقیق تو همین تالار ها به پاسخ خواهید رسید! نتیجه گیری شما مثله اینه که میگید تو ایران ماهم ماشین تولید میکنیم ۲۰۰ تا سرعت میره!!! خب تو آلمان هم پورشه، بنز بی ام دابلیو و ... تولید میکنن!!! صفر تا صد محصول نهایی بسیار متفاوت هست به قدری متفاوت هست که حسی که هنگام استفاده از اون بهتون دست میده قابل توصیف نیست.
مقایسه یک فناوری با یک کتابخانه کاملا اشتباه است، فناوری WPF در سی شارپ یه فناوری به زبان XAML هست که جایگزین اون Universal یا همون Metro هست در حالی که فناوری Qt Quick یک فناوری تحت زبان QML بر پایه JavaScript در چهارچوب Qt هست که در تمامی زمینه ها کاربرد داره.
کتابخانه Qt مجموعه ای از کلاس ها و توابعی هستش که به زبان سی++ نوشته شده و برای استفاده در اکثر موارد قرار میگیره که تنها بخشی از قابلیت هاش طراحی UI به چند روش مجزاست.
شما چه زود تونستید مقایسه کنید و تنها تفاوتشون رو متوجه بشید !!! تا جایی که من میدونم برای کار کردن با Qt باید به زبان ++C مسلط باشید که کار یکی دو روز نیست سالها تلاش و خوندن صدها کتاب از سی++ لازمه کاره چرا که گزینه اصلی طراحی نیست بک اند هم مهمه در غیر اینصورت نتیجه چیزی بدتر از یک Windows form ساده خواهد بود.


و اما پاسخ در مورد آینده کیوت:



کتابخانه Qt حدود ۲۰ سال هست مورد استفاده قرار میگیره حتی بیشتر از دات نت!!!
کتابخانه و زبان سی++ علاوه بر توسعه دهندگان و تیم های رسمی و اصلی توسط کمیته ها و سازمان های قدرتمندی مورد حمایت قرار میگیره و در حال حاضر این کتابخانه تحت حمایت Qt Company هست که بعد از نوکیا توسعه پروژه رو به عهده گرفت در حالی که دات نت توسط مایکروسافت حمایت میشه که هر سازی بزنه باید به همون ساز برقصید.
کیوت برای زبان سی ++ طراحی شده که خود ++C حدود ۳۰ سال عمر داره و بارها راجبش بحث شده که چرا ازش استفاده میشه و چه چیزی متمایزش کرده.
اگه فقط از بعد طراحی به کیوت نگاه کنید باید اشاره کنم که فناوری Qt Quick به قدری قدرتمند هست که تونسته طرح تمامی پلتفرم ها رو در نسخه ۵.۶ به عنوان نسل بعدی به صورت از پیش تعریف شده در اختیار توسعه دهندگان قرار بده یه چیزی خیلی قدرتمند تر از Universal و WPF که قادره با سرعت بسیار زیادی در تمامی پلتفرم ها مانور بده از ابعاد و اجسام تک بعدی بگیر برو تا ۳ بعدی و ...
طرح هایی که تحت Qt Quick پیاده سازی میشه بسیار سریعتر و جذابتر از حتی HTML5 هستن این به این معنی هست که شما میتونید حتی طرح هایی بزنید بسیار با کیفیت تر از وب.
و هزاران موارد دیگر که میشه بهشون اشاره کرد.

pswin.pooya
دوشنبه 30 فروردین 1395, 16:16 عصر
دوسان این همه بحث شد من عنوانی راجب اینکه اینده کیوتی رو چطور میبینین ندیدم لطفا نظر بدین من سی شارپ کار ممیکردم و مدتی کیوتی کار کردم و توانایی هاش رو دیدم ولی تا اینجا تنها چیزی که دیدم طاهر قوی بود که با wpf هم میشه ایجاد کرد

من یه متن طولانی نوشتم که توجیه کنم اما بد پاکش کردم. اینقدر توضیح دادم که خسته شدم. دیگه بیخیال شدم.

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

هر وقت دیدین محدود شدین کدی می خوایین بزنین که نمیشه و یا همچین حالتهایی می تونید بیاید سراغ سی پلاس پلاس و کیوت. من شخصا وقتی با سی شارپ کد می زنم از حالت عادی دو سه برابر بیشتر خسته می شم و هیچ وقت اون دیزاین توی ذهنم رو نمی تونم پیاده کنم و این برام خیلی نا امید کننده هست.

من واقعا سواله برام که Drag and drop برنامه نویسی هست و یا اینکه دیزاین و یا art هست. اصلا کدینگ حساب می شه و یا کسی که باهاش کار می کنه برنامه نویس حساب می شه یا هنرمند؟

winner1
دوشنبه 30 فروردین 1395, 19:34 عصر
طبق این نتیجه گیری شما من پیشنهاد میکنم با همون سی شارپ و فناوری WPF کار کنید! WPF یه فناوری برای طراحی هست و Qt یه کتابخانه !!!



زبان برنامه نویسی ++C زمین تا آسمون با سی شارپ فرق میکنه و با یه تحقیق تو همین تالار ها به پاسخ خواهید رسید! نتیجه گیری شما مثله اینه که میگید تو ایران ماهم ماشین تولید میکنیم ۲۰۰ تا سرعت میره!!! خب تو آلمان هم پورشه، بنز بی ام دابلیو و ... تولید میکنن!!! صفر تا صد محصول نهایی بسیار متفاوت هست به قدری متفاوت هست که حسی که هنگام استفاده از اون بهتون دست میده قابل توصیف نیست.
مقایسه یک فناوری با یک کتابخانه کاملا اشتباه است، فناوری WPF در سی شارپ یه فناوری به زبان XAML هست که جایگزین اون Universal یا همون Metro هست در حالی که فناوری Qt Quick یک فناوری تحت زبان QML بر پایه JavaScript در چهارچوب Qt هست که در تمامی زمینه ها کاربرد داره.
کتابخانه Qt مجموعه ای از کلاس ها و توابعی هستش که به زبان سی++ نوشته شده و برای استفاده در اکثر موارد قرار میگیره که تنها بخشی از قابلیت هاش طراحی UI به چند روش مجزاست.
شما چه زود تونستید مقایسه کنید و تنها تفاوتشون رو متوجه بشید !!! تا جایی که من میدونم برای کار کردن با Qt باید به زبان ++C مسلط باشید که کار یکی دو روز نیست سالها تلاش و خوندن صدها کتاب از سی++ لازمه کاره چرا که گزینه اصلی طراحی نیست بک اند هم مهمه در غیر اینصورت نتیجه چیزی بدتر از یک Windows form ساده خواهد بود.


و اما پاسخ در مورد آینده کیوت:



کتابخانه Qt حدود ۲۰ سال هست مورد استفاده قرار میگیره حتی بیشتر از دات نت!!!
کتابخانه و زبان سی++ علاوه بر توسعه دهندگان و تیم های رسمی و اصلی توسط کمیته ها و سازمان های قدرتمندی مورد حمایت قرار میگیره و در حال حاضر این کتابخانه تحت حمایت Qt Company هست که بعد از نوکیا توسعه پروژه رو به عهده گرفت در حالی که دات نت توسط مایکروسافت حمایت میشه که هر سازی بزنه باید به همون ساز برقصید.
کیوت برای زبان سی ++ طراحی شده که خود ++C حدود ۳۰ سال عمر داره و بارها راجبش بحث شده که چرا ازش استفاده میشه و چه چیزی متمایزش کرده.
اگه فقط از بعد طراحی به کیوت نگاه کنید باید اشاره کنم که فناوری Qt Quick به قدری قدرتمند هست که تونسته طرح تمامی پلتفرم ها رو در نسخه ۵.۶ به عنوان نسل بعدی به صورت از پیش تعریف شده در اختیار توسعه دهندگان قرار بده یه چیزی خیلی قدرتمند تر از Universal و WPF که قادره با سرعت بسیار زیادی در تمامی پلتفرم ها مانور بده از ابعاد و اجسام تک بعدی بگیر برو تا ۳ بعدی و ...
طرح هایی که تحت Qt Quick پیاده سازی میشه بسیار سریعتر و جذابتر از حتی HTML5 هستن این به این معنی هست که شما میتونید حتی طرح هایی بزنید بسیار با کیفیت تر از وب.
و هزاران موارد دیگر که میشه بهشون اشاره کرد.


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

winner1
دوشنبه 30 فروردین 1395, 19:46 عصر
من یه متن طولانی نوشتم که توجیه کنم اما بد پاکش کردم. اینقدر توضیح دادم که خسته شدم. دیگه بیخیال شدم.

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

هر وقت دیدین محدود شدین کدی می خوایین بزنین که نمیشه و یا همچین حالتهایی می تونید بیاید سراغ سی پلاس پلاس و کیوت. من شخصا وقتی با سی شارپ کد می زنم از حالت عادی دو سه برابر بیشتر خسته می شم و هیچ وقت اون دیزاین توی ذهنم رو نمی تونم پیاده کنم و این برام خیلی نا امید کننده هست.

من واقعا سواله برام که Drag and drop برنامه نویسی هست و یا اینکه دیزاین و یا art هست. اصلا کدینگ حساب می شه و یا کسی که باهاش کار می کنه برنامه نویس حساب می شه یا هنرمند؟
من پی نیجه گیری نیستم اقای به ظاهر فهمیده منها شما اول اطلاعات رو ببر بالا بعد بیا نظر بده درگ و دراپی بودن یه گزینست و حی امتیازه دوما اون طرحی که شما تو ذهنته تو wpf هم میشه پیدا سازی کرد منتها من اینجا نیومدم بگم چی خوبه چی بد من یکم سر در گم شدم که این همه کتابخونه برا توید گرافیک در سی پللاس هست و گیج شدم امروزم یکی از دوستان بهم گف که نباید تجربیاتم رو بریزم دور و از و برم سراغ زبان جدیدی چون ضرر میکنم و گفت که دیده کسایی که کیوتی کار میکردن شکست خوردن حرفی بود که بهم زد و خواستم تحقیق کنم این حقه منه شمام بدتون میاد از حرفم جواب ندین بهتره

pswin.pooya
سه شنبه 31 فروردین 1395, 09:33 صبح
من پی نیجه گیری نیستم اقای به ظاهر فهمیده منها شما اول اطلاعات رو ببر بالا بعد بیا نظر بده درگ و دراپی بودن یه گزینست و حی امتیازه دوما اون طرحی که شما تو ذهنته تو wpf هم میشه پیدا سازی کرد منتها من اینجا نیومدم بگم چی خوبه چی بد من یکم سر در گم شدم که این همه کتابخونه برا توید گرافیک در سی پللاس هست و گیج شدم امروزم یکی از دوستان بهم گف که نباید تجربیاتم رو بریزم دور و از و برم سراغ زبان جدیدی چون ضرر میکنم و گفت که دیده کسایی که کیوتی کار میکردن شکست خوردن حرفی بود که بهم زد و خواستم تحقیق کنم این حقه منه شمام بدتون میاد از حرفم جواب ندین بهتره

دوست شما کاملا حق داشته، خیلی ها شکست می خورن چون:

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

می گم اصلا سطح کار خیلی فرق داره و سی پلاس پلاس هم n تا کتابخونه داره چون:

1. رقابت برای بازار فشرده هست و این زبان منتخب شرکتهای بزرگ هست. تمام شرکتهای بزرگ کتابخونه های خودشون رو دارن مثلا
- اینتل: ICU، OpenCV و ... حتی کامپایلر خودش رو داره براش
- nvidia: بزرگترین حامی OpenGL هست. و بزرگترین کتابخونها محاسبات فیزیکی به اسم physix رو داره و ....
- AMD: کتابخونه گرافیکی خودش رو داره اسمش یادم نیست
- hp: این شرکت کتابخونه های زیادی مثل کتابخونه های تشخیص متن و ... داره و حامی پروژه های بزرگی مثل OpenGL هست.
- ....

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

2. میزان انتظارات فرق می کنه. مثلا اگر شما توی سی شارپ انتظار داری که فقط برنامه دسکتاپ بسازی برنامه نویس سی پلاس پلاس به موبایل و یا حتی دیوایس های دیگه هم فکر می کنه مثلا:
- OpenGL کتابخونه گرافیک سه بعدی برای دسکتاپ هست که برای کنسولهای متنوع مثل PS4 هم استفاده می شه
- OpenGL/ES: کتابخونه گرفیک سه بعدی برای سیستم های توکار مثل موبایل هست
- Vulkan: یه کتابخونه جدید گرافیک سه بعدی برای سیستم های توکار و دسکتاپ با مدیریت 100 درصد منابع به منظور افزایش کارایی هست.
- DirectX: یه مجموعه از کتابخونه ها برای بازی سازی هست که برای کنسول xbox هم استفاده می شه.
برای موازی سازی:
- pthread: یک کتابخونه موازی سازی در سطح ترد هست.
- OpenCL: یک کتابخونه موازی سازی برای سیستم های ناهمگن هست.
- OpenMP: یکتابخه استاندارد برای موازی سازی که سال 1998 معرفی شد. و می شه مولتی کور کار کرد.
- استفاده از دستورهای simd برای موازی سازی در سطح دستور. یه هدر داره که اسمش یادم نیست.

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

و 99 درصد برنامه های پرفروش دنیا با سی پلاس پلاس نوشته شدن. مثلا مایا، ویندوز و ...

winner1
سه شنبه 31 فروردین 1395, 09:53 صبح
دوست شما کاملا حق داشته، خیلی ها شکست می خورن چون:

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

می گم اصلا سطح کار خیلی فرق داره و سی پلاس پلاس هم n تا کتابخونه داره چون:

1. رقابت برای بازار فشرده هست و این زبان منتخب شرکتهای بزرگ هست. تمام شرکتهای بزرگ کتابخونه های خودشون رو دارن مثلا
- اینتل: ICU، OpenCV و ... حتی کامپایلر خودش رو داره براش
- nvidia: بزرگترین حامی OpenGL هست. و بزرگترین کتابخونها محاسبات فیزیکی به اسم physix رو داره و ....
- AMD: کتابخونه گرافیکی خودش رو داره اسمش یادم نیست
- hp: این شرکت کتابخونه های زیادی مثل کتابخونه های تشخیص متن و ... داره و حامی پروژه های بزرگی مثل OpenGL هست.
- ....

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

2. میزان انتظارات فرق می کنه. مثلا اگر شما توی سی شارپ انتظار داری که فقط برنامه دسکتاپ بسازی برنامه نویس سی پلاس پلاس به موبایل و یا حتی دیوایس های دیگه هم فکر می کنه مثلا:
- OpenGL کتابخونه گرافیک سه بعدی برای دسکتاپ هست که برای کنسولهای متنوع مثل PS4 هم استفاده می شه
- OpenGL/ES: کتابخونه گرفیک سه بعدی برای سیستم های توکار مثل موبایل هست
- Vulkan: یه کتابخونه جدید گرافیک سه بعدی برای سیستم های توکار و دسکتاپ با مدیریت 100 درصد منابع به منظور افزایش کارایی هست.
- DirectX: یه مجموعه از کتابخونه ها برای بازی سازی هست که برای کنسول xbox هم استفاده می شه.
برای موازی سازی:
- pthread: یک کتابخونه موازی سازی در سطح ترد هست.
- OpenCL: یک کتابخونه موازی سازی برای سیستم های ناهمگن هست.
- OpenMP: یکتابخه استاندارد برای موازی سازی که سال 1998 معرفی شد. و می شه مولتی کور کار کرد.
- استفاده از دستورهای simd برای موازی سازی در سطح دستور. یه هدر داره که اسمش یادم نیست.

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

و 99 درصد برنامه های پرفروش دنیا با سی پلاس پلاس نوشته شدن. مثلا مایا، ویندوز و ...
اوکی این شد جواب فقط ممنون

pswin.pooya
چهارشنبه 01 اردیبهشت 1395, 07:34 صبح
اوکی این شد جواب فقط ممنون
توی تالار بگردید که هیچ فقط اعلانهای بخشها رو بخونید چند برابر این جوابها رو پیدا می کنید.

SirErfan
پنج شنبه 09 اردیبهشت 1395, 06:58 صبح
دوسان این همه بحث شد من عنوانی راجب اینکه اینده کیوتی رو چطور میبینین ندیدم لطفا نظر بدین من سی شارپ کار ممیکردم و مدتی کیوتی کار کردم و توانایی هاش رو دیدم ولی تا اینجا تنها چیزی که دیدم طاهر قوی بود که با wpf هم میشه ایجاد کرد

تنها ظاهر قوی ؟؟؟ دوست عزیز طراحی UI/UX که تو کیوت بشه طراحی کرد رو تو همون WPF هم میشه طراحی کرد اما سرعت و کیفیت و از همه مهمتر کراس پلتفرم بودن خروجی کیوت اصلا با خروجی سی شارپ قابل وصف نیست .

++Hadi++
شنبه 11 اردیبهشت 1395, 03:22 صبح
با اجازه بزرگان(بنده ادعایی ندارم)
البته همه زبونها در مکان خودشون قدرت دارند و نمیشه نظر مطلق داد...بلکه همه چیز نسبی هست...
c++ زبون سطح میانی هست و بر خلاف جاوا و سی شارپ(زبونهای سطح بالا) هم از قابلیت های نسبی زبونهای سطح پایین مثل سرعت و پرفرمنس بالا و محدودیت پایین برخورداره و هم از سادگی نسبی زبونهای سطح بالا...یکی از مزایای c++ به c اینه که از oop ساپورت می کنه و در مجموع، برای هر کاری حتی ساخت محتواها و یا انجین های جدید VR و یا برای کارای شبکه مثل اسنیف شبکه و ثبت وقایع شبکه و ... بالاخره اولین توابع و با فریم ورکاش به ++C نوشته می شه و در ++c هم چنتا فریم ورک مهم وجود دارند که عبارتند از boost و stl , qtl (qt) , KDE و ...
در همه این فریم ورکها، کیوت خیلی خوب داره پیش می ره و در بازار کراس پلتفرم ها به بهترین صورت داره پیش می ره و اگه قرار باشه ++c از این هم رو سفید تر و پر استفاده تر بشه، کیوت می تونه بهترین گزینه برای این کار باشه...
یه جایی می خوندم که جالب بود، گوگل با اندروید، جاوا رو در صدر جدول زنده نگه داشت ولی همین جاوا، اندروید رو به زمین خواهد کوبید!
اینم که الان جاوا در زبانهای برنامه نویسی خیلی محبوب شده بیشترش (نمی دونم چند در صد) به خاطر جاوا هست... البته نباید به هر چیزی مطلق نگاه کرد...جاوا در جای خود محاسنی داره...سی شارپ در جای خود... php در وب خیلی عالی هست و ... و ... و
در ضمن جایی هم استادی می فرمودند، رشد اصلی سخت افزار تا حدی امکانپذیر خواهد بود که مواد و آلیاژهای زمینی اجازه ساختار های بهتر رو بده وگرنه در آینده، یکی از تنها گزینه های ارتقای سخت افزار ها،روش چیدمان و تیریک های خاص خواهد بود، و این یعنی اینکه سخت افزار ها شاید در آینده به اندازه چند سال پیش، رشد چشم گیری نداشته باشند و با توجه به نیازهای آینده که بسیار بیشتر از الان خواهد بود(پرفمنس +قدرت +..) ، مردم مجبورند همواره c , c++ رو به عنوان بهترین گزینه برگزینند... شاید حتی بیشتر از امروز(با توجه به نیازهای بالای ایندگان به سیستم های قویتر و حرفه ای تر)
ممنون... این فقط به عنوان نظر شخصی و تجربی بنده بود که فقط خواستم بگم تا شاید کمکی باشه...به هر حال ممنون...

pswin.pooya
شنبه 11 اردیبهشت 1395, 09:49 صبح
C++‎‎‎‎ زبون سطح میانی هست

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

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


از مزایای C++‎‎‎‎ به c اینه که از oop ساپورت می کنه

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

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


class vector
{
vector() { x = 0, y = 0; }
int x;
int y;
}


و شما دقیقا بعد از ایجاد کلاس بخوایین x و y رو مقدار دهی کنید. برای یک آرایه مثلا ده هزار تایی از بردارهاتون کلی کد بیخود توی سازنده اجرا کردین. یا مشکلاتی هم با مخربها هست.

یکی از بهترین مزیتهای زبانهای سی و C++‎‎‎ اینه که شما محدود به شی گرایی نیستید و می تونید روشهای دیگه مثل داده گرایی و یا Aspect oriented رو انتخاب کنید و یا حتی ساختار یافته ملعون رو. هرچند که شاید کسی ادعا کنه که من می تونم اینها رو توی سی شارپ و جاوا هم استفاده کنم اما باید تذکر بدم که یا با یه کامپایلر مخصوص اینکار می تونه و یا اینکه توی دل شی گرایی اینکار رو می کنه.


یه جایی می خوندم که جالب بود، گوگل با اندروید، جاوا رو در صدر جدول زنده نگه داشت ولی همین جاوا، اندروید رو به زمین خواهد کوبید!

ما فقط آمار پروژه های متن باز رو می تونیم بصورت دقیق ارائه بدیم و اگر پروژه های متن باز رو نگاه کنید بیشتر اونها به زبان C و یا C++‎‎‎ و یا ترکیبی از این دو نوشته شدن.

منبع: openhub.net


رشد اصلی سخت افزار تا حدی امکانپذیر خواهد بود که مواد و آلیاژهای زمینی اجازه ساختار های بهتر رو بده وگرنه در آینده، یکی از تنها گزینه های ارتقای سخت افزار ها،روش چیدمان و تیریک های خاص خواهد بود،

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

pswin.pooya
شنبه 11 اردیبهشت 1395, 09:58 صبح
یه موضوع دیگه:

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

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

مثلا من دیدم یکسری از دوستان کار پایگاه داده دارن با این زبان می کنن بدون اینکه بدونن این زبان با اعداد چه شکلی برخورد می کنه. و یا اینکه ایرادات IEEE 754 که برای اعداد اعشاری هست چیه و چه شکلی باید حلش کنند. و یا حتی انواع دیگه داده و استانداردهای دیگه و ...

++Hadi++
شنبه 11 اردیبهشت 1395, 14:25 عصر
پویا جان...احسنت به شما...
بله... سی به صورت نسبی Oop رو ساپورت می کنه و البته struct و ... داره ولی مثلا متد ها رو ساپورت نمی کنه(متد روی استراکت) در این مورد ++C به صورت نسبی oop رو تا حد قابل قبولی ساپورت می کنه...
در مورد OOP بسیاری از اساتید بزرگ رو OOP حساسند و اصلا قبولش ندارند...به خاطر سرعت و موارد زاید و ... اش..ولی چه کنیم که در بسیاری از موارد تجاری، کار رو بسیار ساده کرده...برای مثال بنده در کار گیم هستم و می بینم چقدر کار رو ساده کرده...اگر اغراق نکرده باشم، شاید هشت دهم برنامه نویسان ایران یا شاید دنیا، برنامه نویس تجاریند (نه سیستمی) و البته oop می تونه خیلی خیلی کارشون رو ساده تر کنه و راه بندازتشون...
در مورد زبانهای سطح میانی، شاید بهترین و استثنا ترین مورد همین ++C هست که چند لول از C فاصله گرفته تا کار رو ساده تر کنه و مزایای سطوح پایین و بالا رو داشته باشه...بنده هم اینو در کتاب دیتل اند دیتل خونده بودم(البته فکر می کنم چاپ و ترجمه قلزم بود-سال 85 شمسی)
منظور اینه که با وجود فریم ورکهایی از جمله کیوت در ++C هم کار برا سیستمی ها بهتر شده و هم برا تجاری ها... اینطور نیست؟

IMAN4k
شنبه 11 اردیبهشت 1395, 16:29 عصر
یک عضو خیلی کوچیک از دنیای Qt :
برتری های Qt نیازی به گفتن نداره و به نظر بنده حقیر دفاع از هر تکنولوژی (فرم ورک،زبان برنامه نویسی،برند و ... ) کار درستی نیست.هر ابزاری برای کاری ساخته شده.
اما در مورد عنوان تاپیک.طبق گفته ها ظاهرا توسعه دهنده ها QtWidgets رو به بلوغ کامل رسوندن و تقریبا پیشرفت خودش رو کرده و پرفورمنسش هم به بهترین شکل ممکن در هر پلتفرم بهینه هست مگر در مواردی مثل High-DPI (http://blog.qt.io/blog/2016/01/26/high-dpi-support-in-qt-5-6/) بهینه سازی بشه (موردی که تلگرام دسکتاپ در صفحه نمایش های 4K و چند صفحه نمایش مشکل داره)
و الان بیشتر تمرکز خودشون رو بروی QtQuick گذاشتن تا اون رو هم بهینه کنن.به نظر من که QtQuick هنوز در زمینه پرفورمنس واقعا کار داره و اصلا با QtWidgets قابل قیاس نیست.
امیدوارم راه خودتون رو در Qt ادامه بدید و از سختی هاش + نتیجه هاش لذت ببرید!
و فراموش نکنید که Qt واقعا فرم ورک بزرگی هست!!
در مورد سردرگم شدن هم فقط و فقط از Qt Documentation استفاده کنیدکه همه چیز رو به بهترین شکل ممکن توضیح داده

pswin.pooya
شنبه 11 اردیبهشت 1395, 16:41 عصر
بله... سی به صورت نسبی Oop رو ساپورت می کنه و البته struct و ... داره ولی مثلا متد ها رو ساپورت نمی کنه(متد روی استراکت) در این مورد ++C به صورت نسبی oop رو تا حد قابل قبولی ساپورت می کنه...

برای متدها pointer to function بزار.
برای وراثت هم یه نمونه از کلاس پدر.


کار گیم هستم و می بینم چقدر کار رو ساده کرده

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


شاید هشت دهم برنامه نویسان ایران یا شاید دنیا، برنامه نویس تجاریند (نه سیستمی) و البته oop می تونه خیلی خیلی کارشون رو ساده تر کنه و راه بندازتشون...

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

1. برنامه های توکار (برنامه های مثل برنامه های ماشین ها ... )
2. برنامه های گرافیکی ( مثل مایا و مکس و فتوشاپ)
3. برنامه های پرکاربرد روزمره (فایرفاکس، تلگرام، کروم و ... )
4. برنامه های عملی مورد قبول سازمانهای بزرگ (مثل NS و سیمیکس)
5. بازهای کامپیوتری
6. سیستم عامل ها
7. داریورها
8. برنامه های سیستمی دیگه
9. برنامه های اداری مثل آفیس و ...
10. به قول انگلیسی ها Just name it

یعنی باید برنامه نویسهای سی شارپ و جاوا دعا کنن که چیزی به اسم پایگاه داده وجود داره. یا اصلا همین اندروید نبود تکلیف جاوا هم مشخص بود. در نهایت در مورد اندروید هم خود گوگل به نتیجه رسید که اشتباه کرده و NDK رو داد اما کار از کار گذشته بود.


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

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

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



منظور اینه که با وجود فریم ورکهایی از جمله کیوت در ++C هم کار برا سیستمی ها بهتر شده و هم برا تجاری ها... اینطور نیست؟
باهاتون موافقم اما باید یادمون نره که ریزه کارها زیاده و باید بخوبی بتونید کنترل کنید

++Hadi++
شنبه 11 اردیبهشت 1395, 16:58 عصر
بله حرف شما صادق هست... بنده همون سال 85 استارت زدم و اتفاقا به این جهت سراغ سی شارپ و جاوا نرفتم، چون دیدم ++C بهترین هست..بیشتر دنبال بهترین گزینه برا طراحی گیم یا برا نوشتن اپلیکیشن هایی مثل مایا بودم(نه اینکه بتونم بنویسم، بلکه بدونم این خیلی خفنه که می شه توش شنا کرد)... تو خارج خیلی خوب به ++C و Qt توجه می شه...ولی متاسفانه در ایران بهش بسیار ظلم شده... استاد شریف که مدیر کامپیوتر دانشگاه شمسی پور بود، توسط من کیوت رو شناخت و جالب برام بود این همه سال نمی دونست کیوت چیه؟!!!! اونم استادی که هر ترم تو کلاساش باید دانشجوهاش یه پروژه و یه کنفرانس برگزار می کردن تا 4 نمره رو بگیرن تا نمره 16 برگه باهاش جمع شه و بیست شه...!

shahin bahari
شنبه 11 اردیبهشت 1395, 19:49 عصر
بحث آموزنده ای بود ولی چند تا مورد رو مخالف هستم!
یکی بحث اینکه جاوا فقط از oop پشتیبانی میکنه! اگر با جاوا کار کرده باشید و با فریم ورک spring آشنا باشید، حتما می دونید که از aop پشتیبانی میشه و دست برنامه نویس باز هست!
مورد دیگه NDK هست و انتشار اون به دلیل بد بودن جاوا نبود . NDK به تنهایی نمی تونه برای اندروید خروجی بده و باز هم به جاوا نیاز داره. کاربردش برای جایی هست که بشه کتابخونه های خوبی که حتما می شناسید و به زبون سی یا سی پلاس پلاس هست رو داخل اندروید استفاده کرد. این قابلیت که از کد های کامپایل شده ی سی( .so )داخل جاوا استفاده کرد از قدیم بوده و NDK اون رو به دنیای اندروید آورد.
خود من برای میکرو کنترلر هایی که فقط چند کیلو رم داشتند و سرعت پردازنده هاشون خنده دار به نظر می رسید برنامه نوشتم و اهمیت بهینه بودن و استفاده درست از منابع رو می دونم ولی داستان اینجاست که برای هر کاری نیاز به ابزار درست هست. درست هست که سی خیلی خروجی بهینه ای داره ولی آیا نوشتن یه برنامه ی بزرگ با اون توجیه داره؟! منظورم از برنامه بزرگ برنامه های دسکتاپ مثل مایا و فوتوشاپ و.. نیست .(چند نفر از ما توی تیمی بودیم که برنامه ای حتی شبیه به اونا رو نوشته باشه ) همین که به مراتب سریعتر میشه یه محصول رو ارایه داد خیلی از موارد و هزینه ها رو کم می کنه! همیشه نمیشه انتظار داشت که انسان بهترین کد رو بنویسه و این که بدونه زبون برنامه نویسی سعی در اصلاح اون ها داره خیلی امید بخش هست! نمی خوام بحث garbage collector و این چیزا رو راه بندازم. می خوام به پروفایلر کد که موقع اجرا کد اجرا میشه برسم!
خلاصه این ها رو گفتم که بعضی از دوستان خیلی متعصبانه جواب ندن! بی دلیل نیست که جاوا اینقدر پرطرفدار هست و روی سرور ها و برنامه های سازمانی واقعا حرفی برای گفتن داره. سعی کردم همه چیز رو خیلی خلاصه بگم که بحث طولانی نشه و از موضوع تاپیک دور نشیم و فقط تاکیدم روی این باشه که هر چیزی رو باید در جای خودش استفاده کرد.....

حالا من هم چند تا سوال دارم! به نظر من برای دسکتاپ Qt امکانات خیلی خوبی ارایه داده و منتظر فرصت هستم که شروعش کنم. ولی دو تا سوال! اولیش اینکه یکی داستان لایسنس Qt رو یکم توضیح بده. میدونم نسخه ی رایگانش تحت LGPL هست و باید برنامه ما آزاد باشه و کد هاش در دسترس بقیه. این به این معنی هست که سورس برنامه باید رایگان در کنار برنامه ارائه بشه و یا میشه با یه قیمتی اون رو ارایه کرد؟ (فرض من بر این هست که کد Qt رو تغییر ندادیم و داینامیک بهش دسترسی داریم)
سوال دومم در مورد یه App store برای برنامه هست. میتونیم قابلیت فروش برنامه یا IAB رو توی برنامه پیاده کنیم و به طور مثال اون رو روی فروشگاه خود ماکروسافت بزاریم؟! من برای این مورد چیزی پیدا نکردم و همه چیز برای برنامه های یونیوسال ماکروسافت بود که بحثش جداست...
مرسی از دوستان