جنگ سی شارپ و جاوا

آموزش سی شارپ یا آموزش جاوا؟ مقایسه کامل دو زبان برنامه نویسی

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

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

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

پیشنهاد مقاله: معرفی کامل انواع زبان‌های برنامه نویسی

ماجرای تولد زبان برنامه نویسی جاوا

لوگوی جاوا

ماجرای جاوا از کجا شروع شد؟ یک روز تیم مهندسی شرکت میکروسیستم سان نشسته‌بودند و داشتند قهوه می‌خوردند، که ناگهان یکی از اعضای تیم گفت:«ای بابا! خسته شدم انقدر با این همه عدد و علامت کلنجار رفتم و کد نوشتم، نمی‌شود به زبان آدمیزاد با این سیستم‌ها حرف زد؟» خلاصه اهالی شرکت سان هم یک‌صدا گفتند:«چرا نمی‌شود؟» و اینطوری بود که جاوا در حدود سال 1995 متولد شد.

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

پیشنهاد مقاله: شروع آموزش برنامه‌نویسی

چرا JAVA انقدر محبوب است؟

جاوا یک زبان شیء‌گرا است، یعنی اگر همان اول راه برای یک کد، چند ویژگی ساده تعریف کنید، جناب جاوا آن ویژگی‌ها را درخود ذخیره می‌کند و بعد کافی است اسم رمز را بگویید تا دستگاه متوجه منظورتان بشود و باز از همان ویژگی‌ها استفاده کند.

جاوای ماجرای ما زبان یک‌جا نشستن نیست، برای همین، از روز اول خودش را در مرزهای یک پلت‌فرم خاص محدود نکرد، بلکه یک ماشین ویژه برداشت و با آن، کدهایش را به سرزمین پلت‌فرم‌های مختلف برد. چطور؟ جاوا یک زبان کامپایلر است، یعنی کدها را اجرا می‌کند، اما این وسط یک کار کوچک دیگر هم می‌کند، جاوا کدها را به شکل یک‌جا تبدیل به بایت کد می‌کند، بعد بایت کدها را وارد ماشین جاوا می‌کند، ماشین جاوا هم یک چیزی مثل ماشین بتمن از نوع سخنگو است، java machine system بایت کدها را به زبانی که برای سیستم قابل فهم باشد، ترجمه می‌کند. حالا هر پلت‌فرمی که ماشین جاوا داشته‌باشد، می‌تواند به راحتی از همان بایت‌کدها استفاده کند.

مثلا اگر شما یک برنامه را برای سیستم سولاریس نوشتید، خیلی راحت می‌توانید بایت‌کدها را بردارید و بعد برنامه‌تان را در سیستم ویندوز اجرا کنید. به خاطر همین خاصیت جذاب است که جاوا همیشه می‌گوید: «یک‌بار بنویس و هرجایی اجرا کن.»

البته ماشین جاوا، فقط یک مترجم ساده نیست، این ماشین خیلی هم مقاوم است، در نتیجه برنامه‌هایی که با جاوا نوشته می‌شوند و تبدیل به بایت کد می‌شوند، خیلی سخت خراب یا crash می‌شوند، از طرف دیگر ماشین ما خیلی هم طرفدار فضای آزاد است، برای همین هم حسابی حواسش به فضای حافظه است و اگر بخشی از برنامه به شکل غیر ضروری فضای اضافه‌ای را اشغال کند و کاربردی نداشته‌باشد، خیلی راحت آن را پاک می‌کند.

جاوا خیلی زیاد با بچه‌های خانواده‌ی C بازی می‌کرد و برای همین شباهت زیادی به زبان‌های c  و c++ دارد، اما سطح شی گرایی جاوا از c++ بالاتر است و البته امنیت بیشتری هم دارد.

Java خیلی زود راه پیشرفت را در پیش گرفت، این وسط چون شرکت سان خیلی تنوع طلب بود تا توانست روی ورژن‌های مختلف جاوا، اسم‌های عجیب گذاشت. مرلین، موستانگ، tiger، دلفین اسم چند تا از نسخه‌های جاوا هستند که در چند سال اخیر به بازار عرضه شدند.

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

خوب است بدانید که بسیاری از این پلت‌فرم‌ها به شکل تجاری و اختصاصی هستند، اما خب از آن‌جایی که جاوا هوای همه را دارد در میان پلت‌فرم‌هایش، چند کتاب‌خانه‌ی منبع باز یا open source هم قرار داده، تا همه را راضی و خوشحال کند

جاوا همان‌طور که گفتیم حسابی حواسش به امنیت هست، برای همین بسیاری از شرکت‌های بزرگ و دولتی، برای نوشتن برنامه‌هایشان به سراغش می‌روند.

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

تفاوت سی شارپ و جاوا در چیست؟

تفاوت سی شارپ و جاوا

چند سال بعد از تولد جاوا، شرکت سان چند روزی جاوا را به مایکروسافت قرض داد. مایکروسافت از قابلیت‌های این زبان جدید خیلی خوشش آمد و بعد از کلی کش و قوس، سرانجام یک زبان شبیه به جاوا ساخت و اسمش را گذاشت باحال یا کول، اما از آن‌جایی که هر کاری کردند نتوانستند یک لوگوی درست و درمان با اسم کول بسازند، دست آخر اسم بچه‌ی باحالشان را c# گذاشتند.

C sharp مثل جاوا شی‌گرا است. و البته درست مثل جاوا، سطحش از زبان‌های c و c++ بالاتر است. ما در مقاله زبان برنامه نویسی سی شارپ همه چیز را درباره این زبان گفته ایم.

اما نکته‌ی اساسی در رابطه با سی‌شارپ، وابستگی زیادش به سیستم عامل است. C#  از همان بچگی اضطراب جدایی داشت و اصلا نمی‌خواست به شکل مستقل عمل کند. خلاصه انقدر گریه و زاری کرد تا مامان مایکروسافت برایش یک اتاق کار در همان خانه‌ی خودشان یعنی ویندوز ساخت، و اسمش را گذاشت محیط .net بعدها که کار و بار سی شارپ گرفت نسخه‌های دیگری از .net مثل .net core و asp.net هم ارائه شد، تا  برنامه‌نویس‌های سی شارپ برای توسعه‌ی بهتر برنامه‌ها بتوانند از آن‌ها استفاده کنند.

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

از آن‌جایی که سی شارپ خیلی حسود است، با خودش گفت نمی‌شود که جاوا بتواند در همه‌ی سیستم‌ها اجرا بشود، بعد من این‌جا فقط در ویندوز بمانم، برای همین به سراغ رفیقش .net رفت. محیط .net هم کم نگذاشت و با ایجاد زبان میانی، کاری کرد که برنامه‌های نوشته‌شده توسط c#  در سایر سیستم عامل‌ها هم بتوانند اجرا بشوند. مثلا اگر شما یک برنامه برای سیستم اندروید بنویسید، می‌توانید با ابزارهای موجود در .net و با کمی تغییر آن‌ برنامه‌را در سیستم عامل دیگری هم اجرا کنید، البته به شرطی که فریم‌ورک .net روی سیستم دوم هم نصب شده‌باشد.

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

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

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

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

پیشنهاد مقاله: آموزش برنامه نویسی سی شارپ #C پیشرفته

مقایسه C-sharp و java از نظر بازار کار 

سی شارپ یا جاوا

هیچ کدام از ما در خانه‌مان یک باغچه‌ی مخفی که از دل خاکش پول سبز بشود، نداریم. شغلی که هر کدام از ما داریم یک‌جورهایی مثل همین باغچه می‌ماند. یک باغچه‌ی سرسبز می‌خواهید؟ خب به سراغ یک شغل پردرآمد بروید.

در این قسمت ازمقاله‌ی بامداد، ما تلاش کردیم همه‌ی باغچه‌هایی که سی شارپ و جاوا در آن‌ها مشغول باغبانی هستند، نشان بدهیم، تا شما بتوانید برای رسیدن به درآمد مطلوب یک انتخاب خوب داشته‌باشید.

پیشنهاد مقاله: سی شارپ یا php

بازار کار سی شارپ

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

سرعت کار با سی شارپ هم کمی بالاتر از جاوا است و از آن‌جایی که استارتاپ جماعت همیشه به دنبال کاهش هزینه‌هاست، بنابراین خیلی طبیعی است که c#  با بیشتر استارتاپ‌ها دوست باشد.

 

توسعه‌ی وب و نرم‌افزارهای تحت وب هم یکی از تخصص‌های اصلی  c sharp است، بنابراین در شرکت‌های توسعه و ساخت وب هم صندلی‌های خالی زیادی در انتظار برنامه‌نویس‌های مسلط به زبان سی شارپ است.

برای بازی‌سازی هم بسیاری از شرکت‌ها ترجیح می‌دهند به سراغ سی شارپ بروند، چرا که با وجود UNITY 3D ساخت بازی باC# راحت‌تر است و البته در زمان و هزینه هم به مقدار قابل توجهی می‌توان صرفه‌جویی کرد.

یا این اوصاف اگر دوست دارید با یاد گرفتن یک‌ زبان به درآمد مطلوبی برسید و البته از کار با استارتاپ‌ها یا بازی‌سازی‌ در داخل کشور لذت می‌برید، می‌توانید با خیال راحت به سراغ سی شارپ بروید.

بازار کار جاوا

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

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

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

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

مقایسه سی شارپ و جاوا از نظر یادگیری

بعد از این همه بحث و حرف، حالا دیگر وقتش است به سراغ یادگیری زبان سی شارپ یا جاوا برویم، اما یادگیری کدام‌یک از این دو زبان، آسان‌تر است و ما را سریع‌تر به مقصد می‌رساند؟

یادگیری سی شارپیادتان هست که گفتیم سی شارپ به محیط .NET محدود است؟ خب این محدودیت موقع یادگیری یک مزیت بزرگ محسوب می‌شود، چون شما می‌توانید به راحتی و با صرف زمانی به مراتب کمتر، سر از کار همه‌ی ابزارهای .NET دربیاورید، و خیلی زودتر راهتان را در این فریم‌ورک پیدا کنید، از طرف دیگر به خاطر استقبال بسیاری از برنامه‌نویس‌های داخلی از سی شارپ، تقریبا روزی نیست که یک ویدیوی آموزشی برای بهتر کار کردن با این زبان، تولید نشود.

 

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

 

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

 

پیشنهاد مقاله: بوت کمپ آموزش برنامه نویسی

جمع بندی

 سی شارپ یک زبان وابسته به سیستم است، هر چند با ارائه ورژن‌های جدید .NET تقریبا این مشکل هم برطرف شده‌است، اما محیط .NET هنوز هم طبق سیاست‌های مایکروسافت چندان OPEN SOURCE نیست.

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

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

آموزش برنامه نویسی سی شارپ

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

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

 

با تمام این حرف‌ها هیچ کس نمی‌تواند از میان C# یا جاوا یکی را به عنوان زبان بهتر برای آموزش برنامه‌نویسی انتخاب کند، هر کدام از این زبان‌ها ویژگی‌ها و قابلیت‌های خودشان را دارند، و بر همان اساس می‌توانند در برخی فعالیت‌ها مفیدتر باشند، در نهایت این شما هستید که باید بر اساس رشته‌ی کاری مورد علاقه‌تان یکی از این دو زبان را انتخاب کنید و تا آخر کار همراهش شوید.

 

نظرات

  1. مبینا 11/02/1398 در 15:38- پاسخ دادن

    سلام بابت نحوه توضیحات اگه اموزشهاتونم همینطوری باشه عالیه
    چندتا سوال دارم
    اول اینکه اگه بخوام برای لینوکس ویندوز و مکينتاش نرم افزار بنویسم از نظر گرافیک اون نرم افزار به نظر شما با کدوم زبان برنامه نویسی (c# یا java) میشه نرم افزار زیباتری ساخت؟
    دوم اینکه برای طراحی سات از php استفاده میکنم ،حالا اگه از mvc استفاده بکنم سرعت اجرا از php بهتره؟ آیا سورس کد در mvc مخفی هست؟ چون مشکلی که با php دارم اوپن سورس بودنشه.
    در mvc از سی شاید استفاده میشه دیگه درسته؟

    • b@mdad@dmin 11/04/1398 در 11:52- پاسخ دادن

      سلام
      برای پاسخ به سوال اول باید گفت که هر دو زبان c# و java این قابلیت را به توسعه دهنده می دهند. اما باید به این نکته توجه داشت که برای طراحی و تولید نرم افزار های حرفه ای و تخصصی بر اساس اصول مهندسی نرم افزار، تولید کننده می بایست با توجه به ماهیت، ویژگی ها،خدمات و طول عمر نرم افزاری که خواهان تولید آن است اقدام به انتخاب زبان برنامه نویسی خود می کند و چه بسا برای ارائه نرم افزار خود بازای سیستم عامل های مختلف از چندین زبان برنامه نویسی درقالب چندین پروژه مجزا استفاده نماید. بنابراین می توان این سوال را این گونه جمع بندی نمود که هر دو زبان برنامه نویسی این قابلیت را دارند اما در برخی جهات زبان c# امکانات بیشتر و راحت تری ارائه می کند و در برخی جهات java .
      درخصوص سوال دوم باید گفت mvc یکی از مدل های معماری نرم افزار است که برای طراحی و تولید نرم افزار مورد استفاده قرار می گیرد و مخفف کلمات model , view, controller می باشد و ارتباطی با زبان برنامه نویسی ندارد. شما با هر زبانی مثل php و c# هم می توانید نرم افزاری را با مدل mvc طراحی و تولید نمایید.

  2. Fariba 01/15/1399 در 11:34- پاسخ دادن

    سلام. مقاله خیلی خوبی بود.

    • b@mdad@dmin 01/15/1399 در 17:32- پاسخ دادن

      سلام ممنون از نظر که دادید

  3. رایان 01/26/1399 در 19:46- پاسخ دادن

    خخخ، خبلی بامزه گفتید
    مرسی

    • b@mdad@dmin 01/31/1399 در 12:05- پاسخ دادن

      امیدواریم مورد پسند بقیه دوستان هم باشد

  4. نسیم 10/07/1399 در 20:10- پاسخ دادن

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

ثبت ديدگاه