تالار گفتمان مانشت
مقایسه ی زبان های جاوا و c++ - نسخه‌ی قابل چاپ

صفحه‌ها: ۱ ۲
مقایسه ی زبان های جاوا و c++ - blackhalo1989 - 08 مرداد ۱۳۹۱ ۱۲:۲۰ ق.ظ

قابلیت حمل در جاوا گسترده تر از C++ هست. شما یه برنامه رو در با جاوا ۱ در سیستم عامل لینوکس مینوسید و همون برنامه رو بدون هیچ تغییری و حتی بدون نیاز به کامپایل دوباره روی ویندوز ۷ اجرا میکنید. قابلیت حمل در جاوا مستقل از CPU و سیستم عامل و حتی نسخه جاواست(چون backward comparability داره). کدهای C++ تا این اندازه قابل حمل نیستن.

RE: مقایسه ی زبان های جاوا و c++ - a.hooshmand - 08 مرداد ۱۳۹۱ ۱۲:۲۰ ق.ظ

(۰۷ مرداد ۱۳۹۱ ۰۸:۰۷ ب.ظ)blackhalo1989 نوشته شده توسط:  من یه تست ساده کردم چند وقت پیش، سرعت java و C++ تفاوت زیادی نداشت. یه مرتب سازی رو با Java (فکر کنم ورژن ۱/۷ بود) و visual c++(فکر کنم ۲۰۱۰) بود تست کردم. C++ تو ۲۲ ثانیه مرتب کرد و جاوا تو ۱۹ ثانیه. البته سعی کرده بودم کد تو دو زبان شبیه باشه و از قابلیت های زبان استفاده نکرده بودم.
Java برای اجرای سریعتر خیلی کارها انجام داده. همچنین جاوا خیلی سریعتر از C++ داره تغییر میکنه.
چنین تست هایی بدون دقت به جزئیات معمولا به نتیجه گیری اشتباهی منجر می شود.
گاهی سعی می شود نشان داده شود که سرعت جاوا نزدیک به سی هم می تواند برسد ولی این که بیشتر شود نشان می دهد یک جای کار مشکل بوده است.
ولی اگر حوصله دارید از IDE ، CodeBlocks استفاده کنید به همرا کمپایلر mingw خود IDE در پایان اجرا زمان اجرا شدن برنامه را به شما نشان می دهد.

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


موفق باشید.


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

مقایسه ی زبان های جاوا و c++ - alirezad - 11 مرداد ۱۳۹۱ ۰۸:۳۹ ب.ظ

دوستان سرعت مهمه ولی راحتی برنامه نویس هم خیلی خیلی مهمه.
اصلا شما توی برنامه تون مگه چندتا الگوریتم دارید که به سرعت c احتیاج داره ؟ ۱۰ تا ۲۰ تا ؟
خوب وقتی یک برنامه از این همه الگوریتم استفاده می کنه پس باید حجم زیادی هم داشته باشه. بهتره از قابلیت native code جاوا استفاده کنید. این طوری هم سرعت دارید و هم راحتید.
به نظر من خیلی از تفاوت سرعت ها به ضعف پیاده سازی بر می گرده و این هم به دلیل استفاده نامناسب از امکانات زبان برنامه نویسی هست.
به عنوان مثال بسیار کوچک در کار با رشته ها :‌توی c از آرایه ای از char ها استفاده می شه ولی برنامه نویس توی جاوا از کلاس string استفاده می کنه که به خاطر سربار نگه داری کلاس سرعت پایین میاد ولی اگر توی جاوا هم از آرایه ی char استفاده کنه مطمعنا سرباری وجود نخواهد داشت.
توی جاوا garbage collection هست. یعنی هر وقت حافظه کم اومد خودش حافظه های بلااستفاده رو پاک می کنه که این کار بسیار زمان بره. خوب این توی c وجود نداره ولی برای برنامه های بزرگ باید حتما خودتون پیاده سازیش کنید.
نکته ی بسیار مهمی که خیلی ها به خاطر اون به اشتباه فکر می کنند سرعت جاوا کمه اینه که jvm کاملا برنامه ی شما رو کنترل می کنه و یک سری محدودیت ها به اون اعمال می کنه. یکی از این محدودیت ها محدودیت حافظه ی stack و حافظه ی رم هست. هنگام آزمایش برنامه باید این محدودیت ها رو برداشت. زبان C هیچ محدودیتی اعمال نمی کنه.

RE: مقایسه ی زبان های جاوا و c++ - a.hooshmand - 11 مرداد ۱۳۹۱ ۱۰:۳۵ ب.ظ

(۱۱ مرداد ۱۳۹۱ ۰۸:۳۹ ب.ظ)alirezad نوشته شده توسط:  به عنوان مثال بسیار کوچک در کار با رشته ها :‌توی c از آرایه ای از char ها استفاده می شه ولی برنامه نویس توی جاوا از کلاس string استفاده می کنه که به خاطر سربار نگه داری کلاس سرعت پایین میاد ولی اگر توی جاوا هم از آرایه ی char استفاده کنه مطمعنا سرباری وجود نخواهد داشت.
زبان ++c هم کلاس string دازد

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: مقایسه ی زبان های جاوا و c++ - alirezad - 11 مرداد ۱۳۹۱ ۱۱:۰۴ ب.ظ

(۱۱ مرداد ۱۳۹۱ ۱۰:۳۵ ب.ظ)a.hooshmand نوشته شده توسط:  
(11 مرداد ۱۳۹۱ ۰۸:۳۹ ب.ظ)alirezad نوشته شده توسط:  به عنوان مثال بسیار کوچک در کار با رشته ها :‌توی c از آرایه ای از char ها استفاده می شه ولی برنامه نویس توی جاوا از کلاس string استفاده می کنه که به خاطر سربار نگه داری کلاس سرعت پایین میاد ولی اگر توی جاوا هم از آرایه ی char استفاده کنه مطمعنا سرباری وجود نخواهد داشت.
زبان ++c هم کلاس string دازد

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

RE: مقایسه ی زبان های جاوا و c++ - a.hooshmand - 11 مرداد ۱۳۹۱ ۱۱:۰۹ ب.ظ

(۱۱ مرداد ۱۳۹۱ ۰۸:۳۹ ب.ظ)alirezad نوشته شده توسط:  یکی از این محدودیت ها محدودیت حافظه ی stack و حافظه ی رم هست. هنگام آزمایش برنامه باید این محدودیت ها رو برداشت. زبان C هیچ محدودیتی اعمال نمی کنه.
کمپایلرهایی مثل بورلند سی دلفی و ...امکاناتی مثل کنترل محدوده متغیر و حد ارایه را با تنظیمات کمپایلر فراهم می سازند که البته به صورت پیش فرض برای افزایش سرعت غیر فعال هستند در صورت فعال کردن هم راندمان را خیلی پایین نمی آورند و این نشان می دهد که کندی سرعت جاوا بیشتر به خاطر ماشین مجازی بودن آن است. البته با کمپایل کد به صورت native این شکل را تا حدودی می توان حل کرد.



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


بسیاری از افراد وقتی اسم سی می آید به یاد visual studio و VC می افتند که به نظر من یکی از بد ترین کمپایلر زبان سی می باشد.

من کمپایلر gcc را پیشنهاد می کنم که تقریبا بر روی همه سیستم عامل ها وجود دارد البته یک نسخه کوچک شده آن MinGw است برای ویندوز که به علت عدم پشتیبانی از posix توسط ویندوز به کاملی نسخه های سیستم عاملهای دیگر نیست.


به نظر من اگر در ویندوز می خواهید برنامه نویسی، سی انجام دهید (مثلا پروژه های دانشجویی) از Code Black که همرا با کمپایلر MinGw ارئه می شود استفاده کنید- لینک دانلود آنرا در نوشته قبلی قرار دادم و اگر به دنبال یک محیط ویژوالی هستید از QT creator استفاده کنید.

این کتاب برای شروع می تواند مناسب باشد
C++ GUI Programming with Qt 4, Second Edition

مخصوصا ضمیمه d این کتاب برای کسایی هست که از زبانهای جاوا و #C می خواهند به ++C و QT بروند
D. Introduction to C++ for Java and C# Programmers


موفق باشید

RE: مقایسه ی زبان های جاوا و c++ - alirezad - 11 مرداد ۱۳۹۱ ۱۱:۲۸ ب.ظ

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

RE: مقایسه ی زبان های جاوا و c++ - a.hooshmand - 12 مرداد ۱۳۹۱ ۱۲:۱۰ ق.ظ

(۱۱ مرداد ۱۳۹۱ ۱۱:۲۸ ب.ظ)alirezad نوشته شده توسط:  
نقل قول: زبان سی قابل حمل ترین زبان قبل از کمپایل کردن بین ماشینهای مختلف هست و زبان جاوا بعد از کمپایل کردن.
آقا این یعنی چه ؟
ذر مورد جاوا که فکر نکم مشکلی داشته باشید.

در سی:منظورم این است که اگر شما کد خود را وابسطه به ماشین یا سیستم عامل خاصی ننوشته باشید می توانید با کمپایلر مثلا ویندوزی نسخه ویندوزی و با کمپایلر لینوکسی نسخه لینوکسی از برنامه تهیه کنید (یا گاها با تقییر اندکی)و .... کاری که خیلی از تولید کنندگان نرم افزار انجام می دهند مثلا تولید نسخه های ویندوزی و لینوکسی VLC player و firefox و ....


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

نرم‌افزارهای نوشته شده با ابزار کیوت قادرند تا با استفاده از یک کامپایلر زبان سی‌پلاس‌پلاس برای طیف وسیعی از سیستم‌عامل‌ها از جمله گنو/لینوکس (نسخه‌های رومیزی و وسیله‌های قابل حمل)، ویندوز، ویندوز CE، مک‌اواس و ... همگردانی شوند. بدین ترتیب حمل نرم‌افزار نوشته شده بدون تغییر در متن کد نوشته شده امکان‌پذیر است.

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: مقایسه ی زبان های جاوا و c++ - sa128 - 07 آذر ۱۳۹۴ ۱۰:۰۸ ب.ظ

سلام.

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