View Full Version : سوال: کدام یک از این زبان ها رو انتخاب بکنم ؟
arta.nasiri
دوشنبه 03 اسفند 1388, 20:31 عصر
سلام
دوستان عزیز پیشنهاد شما کدامیک از زبان های c - c++ برای یادگیری می باشد
البته بحث من در مورد کدوم خوبه کدوم بده نیست، بحث من سر این هست که با کدوم میشه راحت برنامه سیستمی نوشت ؟
و یک سوال دیگه تو کدنویسی ویندوز از c استفاده شده یا c++ ؟
visual c++ چطور ؟
آیا با c یا c++ میشه مثل c# گرافیکی هم کار کرد ؟
با تشکر
codelover
دوشنبه 03 اسفند 1388, 21:25 عصر
دوستان عزیز پیشنهاد شما کدامیک از زبان های c - C++ برای یادگیری می باشد
خوب معلومه c++ بهتره ولی خوب اول باید C یاد بگیری(زیاد سخت نیست)
و یک سوال دیگه تو کدنویسی ویندوز از c استفاده شده یا C++ ؟
ویندوز یه سیستم عامل لایه ای پس به همین دلیل حتما باید با کلاس ها نوشته بشه پس نتیجه میگیریم که با C++ نوشته شده
موفق باشی
simul8or
دوشنبه 03 اسفند 1388, 22:33 عصر
C++ ارتقا یافته زبان C می باشد که برخی از خواص مانند برنامه نویسی شی گرا به آن افزوده شده.
کتاب C++ How to Program, 7 Edition نوشته Deitel یکی از بهترین کتابها برای یادگیری زبان C++ است.
آیا با c یا C++ میشه مثل C# گرافیکی هم کار کرد ؟البته که می توان.
Negative_Se7en
دوشنبه 03 اسفند 1388, 23:21 عصر
سلام.
دوستان عزیز پیشنهاد شما کدامیک از زبان های c - C++ برای یادگیری می باشد
البته بحث من در مورد کدوم خوبه کدوم بده نیست، بحث من سر این هست که با کدوم میشه راحت برنامه سیستمی نوشت ؟
خیلی جاها بحث شده که C بهتره یا ++C ؟
ولی نمیشه این دوتا رو باهم مقایسه کرد.
ولی ++C به خاطر شی گرا بودنش مزایای خیلی زیادی داره.
البته C هم خاصیت شی گرایی داره ولی نه در حد ++C .
ولی این دلیل نمیشه که ++C از C بهتر باشه .
ولی شما وقتی ++C رو یاد بگیری تقریبا میشه گفت که C رو هم بلدی.
هنوز که هنوز ، خیلی از برنامه نویسان بزرگ با C برنامه نویسی میکنن.
بخش های اصلی ویندوز هم با C نوشتند ، در راقع بیشترشو با C نوشتند.و همینطور Linux.
ولی در کل مقایسه بین این دو فایده نداره.
و انتخاب زبان بستگی به این داره که قصد چه کاری رو داشته باشید.
مرتضی پیروزی
سه شنبه 04 اسفند 1388, 00:08 صبح
سلام
دوستان عزیز پیشنهاد شما کدامیک از زبان های c - C++ برای یادگیری می باشد
البته بحث من در مورد کدوم خوبه کدوم بده نیست، بحث من سر این هست که با کدوم میشه راحت برنامه سیستمی نوشت ؟
و یک سوال دیگه تو کدنویسی ویندوز از c استفاده شده یا C++ ؟
visual C++ چطور ؟
آیا با c یا C++ میشه مثل C# گرافیکی هم کار کرد ؟
با تشکر
سلام دوست من
ببین سی پلاس پلاس شامل سی هم هست.ولی با امکانات بیشتر.و همچنین سی پلاس پلاس الان داره با تکنولوژی های جدید پیش میره ولی سی نه.
در مورد کارهای سیستمی باید بگم شما با سی پلاس پلاس میتونید یه سیستم عامل رو
شخم بزنید.هر کاری تو سیستم را تا حدودی میشه گقت تواناییش رو داره.
ولی اگه دوست داشتی میتونی سی رو هم یاد بگیری ولی نه به جای سی پلاس پلاس. چون هم حیفه هم اینکه در برابر سی پلاس پلاس میشه گفت عددی نیست.(در حالت کلی)
ویژوال سی پلاس پلاس یه کامپایلر مایکروسافتی برای سی پلاس پلاس هستش که الحق
قدرت و امکانات فوق العاده بالایی داره.
در مورد کارهای گرافیکی باید عرض کنم پرچم دار گرافیک سی پلاس پلاس هستش.
روی هم رفته سی پلاس پلاس یه زبون به تمام معنا قدرتمند ولی متاسفانه تو ایران منزوی.
و همچنین اگه میخوای تو لینوکس کار کنی باید سی رو آشنا باشی ولی نه اینکه سراغ سی پلاس پلاس نری.
البته C هم خاصیت شی گرایی داره
نه دوست من سی هیچ شناختی از شی نداره.اگه داشت سی پلاس پلاس به وجود نمیومد.
هنوز که هنوز ، خیلی از برنامه نویسان بزرگ با C برنامه نویسی میکنن.
این دلیل بر برتری نیست.در قریب به اتفاق موارد مجبورن این کارو بکنن.که دلایل زیادی داره
یکیش اینه که هنوز خیلی از پروژه های نوشته شده با سی باقی موندن و برای توسعه اون
با همون سی مینویسن
موفق باشید
Negative_Se7en
سه شنبه 04 اسفند 1388, 01:34 صبح
ولی اگه دوست داشتی میتونی سی رو هم یاد بگیری ولی نه به جای سی پلاس پلاس. چون هم حیفه هم اینکه در برابر سی پلاس پلاس میشه گفت عددی نیست.(در حالت کلی)
من خودم همیشه با ++C کار میکنم ، خیلیم دوسش دارم ، ولی این حرف و قبول ندارم که C عددی نیست.
ویژوال سی پلاس پلاس یه کامپایلر مایکروسافتی برای سی پلاس پلاس هستش که الحق
قدرت و امکانات فوق العاده بالایی داره.
بهترین کامپایلر GCC , ++G هستش. از لحاظ اینکه تمام استاندارها رو رعایت کرده و Portable هست.
در مورد کارهای گرافیکی باید عرض کنم پرچم دار گرافیک سی پلاس پلاس هستش.
تاره API که شما داری ازش استفاده میکنی (OpenGl,GDI,...) با C نوشته شده.
نه دوست من سی هیچ شناختی از شی نداره.اگه داشت سی پلاس پلاس به وجود نمیومد.
درواقع وقتی شما 1 نمونه از Structure درست میکنی ، یعنی 1 Object درست کردی.
در مورد( ارث بری و چند ریختی و .....) اینها فقط چیزهایی هستند که کار برنامه نویس رو آسون میکنند و پروژه های بزرگ رو از حالت گنگی در میآوردند و وجود واقعی ندارند.
چون که همه ی این کدها به زبان ماشین خطم میشه ، و شی و ارث بری و ..... ، در زبان ماشین معنی نداره و فقط شما فکر میکنی که یه شی به وجود اوردی.
من نگفتم که C برتر از ++C هست.وهمین طور برعکس.
و شما هم خیلی روی ++C تعصب داری.
این دلیل بر برتری نیست.در قریب به اتفاق موارد مجبورن این کارو بکنن.که دلایل زیادی داره
یکیش اینه که هنوز خیلی از پروژه های نوشته شده با سی باقی موندن و برای توسعه اون
با همون سی مینویسن
همیشه میشه ادامه ی پروژه های C رو به ++C بیاری.
و شما باید بگی ++C رو نمیشه به داخل C بیاری.
و درکل ++C فقط کارها رو آسون کرده.
درآخر ....
C جای خود ، ++C هم جای خود.
Salar Ashgi
سه شنبه 04 اسفند 1388, 19:17 عصر
البته C هم خاصیت شی گرایی داره ولی نه در حد ++C
دوست عزیز نمیشه بحث OOP وسط بیاد و اثری از Class
Operator overloading,Inheritance,Ploymorphism نباشه ، تو سی ما اصلا مفهومی بنام کلاس
نداریم و میشه گفت سی از شی گرایی ساقط است و struct یک مدل بسیار ساده یک کلاس است
با محدودیت های خاص .
مرتضی پیروزی
سه شنبه 04 اسفند 1388, 20:15 عصر
سلام
بهترین کامپایلر GCC , ++G هستش
دوستمون پرسید ++ visual c چطوره؟؟من هم گفتم خوبه.شما چرا پای GCC رو میکشی وسط؟؟همچنین GCC مال لینوکس هستش نه ویندوز, نسخه ویندوزی اون minGW هستش.
VC کجا و GCC کجا؟؟
درواقع وقتی شما 1 نمونه از Structure درست میکنی ، یعنی 1 Object درست کردی
جدی؟؟دوستمون salar_cpp_cs جواب این گفته را دادند.
در مورد( ارث بری و چند ریختی و .....) اینها فقط چیزهایی هستند که کار برنامه نویس رو آسون میکنند و پروژه های بزرگ رو از حالت گنگی در میآوردند و وجود واقعی ندارند
نتیجه؟؟؟:متفکر:پس C بهتره!!
چون که همه ی این کدها به زبان ماشین خطم میشه ، و شی و ارث بری و ..... ، در زبان ماشین معنی نداره و فقط شما فکر میکنی که یه شی به وجود اوردی
من چنین فکری نمیکنم!!!
و شما هم خیلی روی ++C تعصب داری
این واقعیت که سی پلاس پلاس کامل تره اسمش تعصبه؟؟
همیشه میشه ادامه ی پروژه های C رو به ++C بیاری
همیشه؟؟؟پس چرا کسی این کار رو نمیکنه؟؟هزینه بالایی داره.نمی صرفه.
Cجای خود ، ++C هم جای خود
بله ولی وقتی قرار باشه یکیش رو یاد بگیری طبیعتا حرف اول رو سی پلاس پلاس میزنه.نه سی.
موفق باشی
arta.nasiri
سه شنبه 04 اسفند 1388, 20:18 عصر
سلام
ممنون از همه دوستان که نظراتشون رو دادند.
حالا چندتا کامپایلر خوب اگه میشه معرفی کنید واسه کار با این دو تا زبون.
در ضمن آیا برای کار با c++ محیط visual studio 2008 رو پیشنهاد میکنید یا نه ؟
با تشکر
مرتضی پیروزی
سه شنبه 04 اسفند 1388, 20:31 عصر
حالا چندتا کامپایلر خوب اگه میشه معرفی کنید واسه کار با این دو تا زبون
http://barnamenevis.org/forum/showthread.php?t=115240
در ضمن آیا برای کار با C++ محیط visual studio 2008 رو پیشنهاد میکنید یا نه ؟
بستگی به خودت داره اول لینکی که دادم مطالعه کن.
ویژوال یه IDE مایکروسافتی هستش.اگه دوست داری انتخاب کن.,مزایای زیادی داره ولی
معایب هم زیاد داره.یکیش اینه که نسخه تیمش کامل ترینه ولی قیمتش سر به فلک میکشه.
ولی اگه الان که تو ایران ارزونه و خودت میخوای اتنخاب کنی هیچ دلیلی بر منعش نیست..
در کل شما سی پلاس پلاس رو یاد بگیر IDE رو خودت میتونی بر حسب علاقت انتخاب کنی
موفق باشی
Negative_Se7en
سه شنبه 04 اسفند 1388, 22:37 عصر
پس که این طور.........:متفکر:
جناب salar_cpp_cs من منظورم اینه که (...Inheritance,Ploymorphism) درواقع وجود ندارند.
و مطما باشید که با C هم میشه این کارها رو کرد.ولی خیلی سخت تر و به روش های دیگه. و C هم از شی گرایی ساقط نیست.
دوستمون پرسید ++ visual c چطوره؟؟من هم گفتم خوبه.شما چرا پای GCC رو میکشی وسط؟؟همچنین GCC مال لینوکس هستش نه ویندوز, نسخه ویندوزی اون minGW هستش.
VC کجا و GCC کجا؟؟
درسته اینجا اشتباه کردم ، به خاطر اینکه نوشته های قبل رو سریع خوندم.
نتیجه؟؟؟:متفکر:پس C بهتره!!
برداشتتون اشباه بوده.
من چنین فکری نمیکنم!!!
پس سعی کن اول تحقیق کنی بعد فکر کنی.
این واقعیت که سی پلاس پلاس کامل تره اسمش تعصبه؟؟
اگه نوشته هات رو نگاه کنی (البته از دید یک نفر دیگه) میفهمی.
همیشه؟؟؟پس چرا کسی این کار رو نمیکنه؟؟هزینه بالایی داره.نمی صرفه.
این همون چیزیه که ما داریم دربارش صحبت میکنم.
در کل به منم چیزی نمیرسه تا از C طرفداری کنم.
اگه یه نگاه هم بندازی میبینی که من نگفتم C بهتره.
و اینم بگم که ++C شاید بهترین زبان برنامه نویسی باشه ولی نمیشه گفت که قدرتمند ترین هست.
اگه تا اینجا هم بحث کردم ، فقط به خاطر این بوده که گفتید :
چون هم حیفه هم اینکه در برابر سی پلاس پلاس میشه گفت عددی نیست.(در حالت کلی)
من خودم Linus Torvalds رو خیلی قبول دارم.
اینم دوتا از حرفاش :
C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it.
Torvalds, Linus (2007-09-06). Message to gmane.comp.version-control.git mailing list (http://article.gmane.org/gmane.comp.version-control.git/57918). Retrieved on 2007 (http://en.wikiquote.org/wiki/2007)-09-22 (http://en.wikiquote.org/wiki/September_22).
C++ is in that inconvenient spot where it doesn't help make things simple enough to be truly usable for prototyping or simple GUI programming, and yet isn't the lean system programming language that C is that actively encourages you to use simple and direct constructs.
حالا به این برنامه دقت کنید :
#include <stdio.h>
class Foo {
public:
void doStuff() {
printf("hi from Foo!\n");
}
};
int main(int argc, char *argv[]) {
Foo *f = NULL;
f->doStuff();
return 0;
}
درنگاه اول به نظر میاد که این برنامه هنگام اجرا با خطا روبرو میشه . ولی نه اینطوری نیست.
اینم یه مثال بود که بگم شی گرایی وجود واقعی نداره.
مرتضی پیروزی
چهارشنبه 05 اسفند 1388, 00:44 صبح
و مطما باشید که با C هم میشه این کارها رو کرد.ولی خیلی سخت تر و به روش های دیگه. و C هم از شی گرایی ساقط نیست
آقا قبول سی شی گراست.ببخشید.:اشتباه:
پس سعی کن اول تحقیق کنی بعد فکر کنی
ببخشید, شما هم سعی کن اول طرفت رو بشناسی بعد به تحقیق دعوتش کنی.
اگه تا اینجا هم بحث کردم ، فقط به خاطر این بوده که گفتید....
ببین دوست من هر چی سی داره سی پلاس پلاس هم داره به اضافه چیزهایی که سی خوابشم ندیده.این یعنی چی؟؟؟
چند تا تفاوت اساسی سی و سی پلاس پلاس:
سی یک زبان از بالا به پایین هستش ولی سی پلاس پلاس از پایین به بالا.
تو سی چیزی به اسم کلاس و شی و... نداریم.
سی فضای نام نداره.نسبت به سی پلاس پلاس ضعف بزرگی محسوب میشه.
ورودی و خروجی تو سی و سی پلاس پلاس زمین تا آسمون تفاوت داره.
شما نمیتونی یه تابع رو تو سی overload کنی یعنی تو سی چند تا تابع نمیتونن نام های یکسانی داشته باشند.(یکی از مزایای بزرگ سی پلاس پلاس).
مدیریت حافظه پویا در سی پلاس پلاس به مراتب بهتر از سی هستش.
در سی شما متغیر های ارجاع نداری.در سی پلاس پلاس داری اونم خوبشو!!!
در سی ثابت ها به عنوان ماکرو تعریف میشن.
Inline functions در سی فراهم نیست.
ما در سی پلاس پلاس templates داریم ولی در سی نه.
در سی پلاس پلاس اطلاعات امن هستند ولی در سی نه.
سی رو رویه ها تاکید داره ولی سی پلاس پلاس رو داده ها.
در سی برنامه درون توابع پخش شده ولی در سی پلاس پلاس درون اشیا.
سی پلاس پلاس unoins و enums داره ولی سی نه.
سی پلاس پلاس آرگومان های پیش فرض رو فراهم میکنه ولی سی نه.
در سی داده ها نسبت به دنیای بیرون محافظت شده اند ولی در سی نه.
سی پلاس پلاس برنامه های سی رو پشتیبانی میکنه ولی سی نه.
سی مجموعه ای از توابع هستش ولی سی پلاس پلاس مجموعه ای از توابع و کلاسها هستش.
سی پلاس پلاس یک زبان object oriented هستش ولی سی یک زبان object based
سرعت سی پلاس پلاس به نسبت پایین تره.ضعفش.
اگه شما هم دلایلی داشتی که نشان از برتری سی نسبت به سی پلاس پلاس بود خوشحال میشم بهم بگی.
موفق باشی
Negative_Se7en
چهارشنبه 05 اسفند 1388, 01:24 صبح
آقا من نمیدونم به چی زبونی بگم که "من نمیگم C بهتر از ++C هست":عصبانی++:
شما هم هی میای مقایسه میکنی.
من میگم این چیزا (template,Inheritance,Ploymorphism) وجود خارجی نداره و کاری نیست که بشه با ++C کرد با C نشه.
و بحثشم طولانیه (یا حداقل تایپ فارسیه من ضعیفه).
simul8or
چهارشنبه 05 اسفند 1388, 01:45 صبح
درنگاه اول به نظر میاد که این برنامه هنگام اجرا با خطا روبرو میشه . ولی نه اینطوری نیست.
اتفاقا در نگاه اول برنامه هیج مشکلی ندارد! در این نمونه کد، تابع doStuff از اشاره گر this استفاده نکرده است، بنابر این مقدار f مطرح نیست.
اشاره گر this در توابع مجازی و توابع برای دستیابی به متغیر های عضو غیر استاتیک به کار می رود. در غیر این دو اشاره گر this در توابع استفاده نشده ( مانند مثال شما) و بنا بر این f میتواند bat Pointer نیز باشد.(چون دیگر مقدار f مطرح نیست.)
کاری نیست که بشه با ++C کرد با C نشه
یک سوال اساسی از شما دارم: چرا زبان C++ به وجود آمد؟؟ جواب این سوال حتما شما قانع خواهد کرد.
Negative_Se7en
چهارشنبه 05 اسفند 1388, 04:25 صبح
اول یه چیزی.
نقل قول:
چون که همه ی این کدها به زبان ماشین خطم میشه ، و شی و ارث بری و ..... ، در زبان ماشین معنی نداره و فقط شما فکر میکنی که یه شی به وجود اوردی
من چنین فکری نمیکنم!!!
نقل قول:
پس سعی کن اول تحقیق کنی بعد فکر کنی
ببخشید, شما هم سعی کن اول طرفت رو بشناسی بعد به تحقیق دعوتش کنی.منظور من اینه که اول درباره ی زبان ماشین تحقیق کن.
اتفاقا در نگاه اول برنامه هیج مشکلی ندارد! در این نمونه کد، تابع doStuff از اشاره گر this استفاده نکرده است، بنابر این مقدار f مطرح نیست.
اشاره گر this در توابع مجازی و توابع برای دستیابی به متغیر های عضو غیر استاتیک به کار می رود. در غیر این دو اشاره گر this در توابع استفاده نشده ( مانند مثال شما) و بنا بر این f میتواند bat Pointer نیز باشد.(چون دیگر مقدار f مطرح نیست.)و منظور من از این کد این بود که شی گرایی وجود نداره و این متدها هم وجود ندارند.
نمونه ی این کلاس در C :
#include <windows.h>
#include <stdio.h>
struct Foo
{
int a;
};
void Foo_doStuff(struct Foo* par)
{
printf("hi from Foo!\n");
}
int main(int argc, char *argv[])
{
struct Foo *f = NULL;
Foo_doStuff(f);
return 0;
}
یک سوال اساسی از شما دارم: چرا زبان C++ به وجود آمد؟؟ جواب این سوال حتما شما قانع خواهد کرد.
بازم میگم من نگفتم که C بهتره و ++C بی مصرفه (100 بار اینو گفتم)
و این حرفام به خاطر اینه که از C بد یاد شده.
و میخوام بگم که C هنوز زندست.
یک سوال اساسی از شما دارم: چرا زبان C++ به وجود آمد؟؟ جواب این سوال حتما شما قانع خواهد کرد.به همون دلیلی که C بوجود اومد.
به همون دلیلی که زبان های دیگر به وجود اومدند.
و اینم درنظر بگیرید که تمام کدها در آخر به کد ماشین تبدیل میشن ، که نه تنها شی گرایی و .... وجود واقعی نداره ، بلکه While و if و struct و .... خیلی چیزای دیگه وجود واقعی نداره و این کامپایلر است که این دستورات رو به زبان ماشین تبدیل میکنه و دستورای این زبانها در پشت پرده طور دیگه ای عمل میکنن.
و یه سوالی از جناب simul8or (http://www.barnamenevis.org/forum/member.php?u=54911) .
چرا زبان های Objective-C و D و .... بوجود آمده؟
Salar Ashgi
چهارشنبه 05 اسفند 1388, 09:34 صبح
دیدم چون دوباره بحث داره به دفاع و تعصب هر شخص از زبان مورد علاقش تبدیل میشه ، تاپیک قفل شد .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.