جاوا یا سی شارپ
نویسنده : علی بجنوردی | زمان انتشار : 09 اسفند 1399 ساعت 22:01
جهت انجام پروژه های دانشجویی و یا تمرینهای برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید
@AlirezaSepand
قبل از سی شارپ ، داستانهای هری پاتر را خواندهاید؟ خب زبانهای برنامهنویسی هم مثل من و شما عاشق خواندن داستانهای جالب و فانتزی هستند، برای همین بعد از خواندن کتابهای هریپاتر تصمیم گرفتند با نوشتن یکی دو تا کد، برای خودشان چند چوب جارو بسازند و با هم مسابقه بدهند.
این وسط در یک مسابقهی نهایی، سی شارپ و جاوا همزمان به خط پایان رسیدهاند، اما مشکلی که وجود داشت اینبود که هیچ کدام قبول نمیکرد به نفع دیگری کنار برود، برنامهنویسها هم ماندهاند که با وجود این همه توانایی که هر کدام از این زبانها دارند، کدامشان بهتر است و یادگیریاش برای تازهواردها مفیدتر است؟
از آنجایی که ما در بامداد عاشق عدالت هستیم، تصمیم گرفتیم در یک مقالهی جمع و جور، تمام نقاط ضعف و قوت زبانهای برنامه نویسی سی شارپ و جاوا را بررسی کنیم، تا هم برنده معلوم بشود و هم شما بتوانید برای شروع مسیر، بهترین آموزش برنامهنویسی را انتخاب کنید.
پیشنهاد مقاله: معرفی کامل انواع زبانهای برنامه نویسی
ماجرای تولد زبان برنامه نویسی جاوا
ماجرای جاوا از کجا شروع شد؟ یک روز تیم مهندسی شرکت میکروسیستم سان نشستهبودند و داشتند قهوه میخوردند، که ناگهان یکی از اعضای تیم گفت:«ای بابا! خسته شدم انقدر با این همه عدد و علامت کلنجار رفتم و کد نوشتم، نمیشود به زبان آدمیزاد با این سیستمها حرف زد؟» خلاصه اهالی شرکت سان هم یکصدا گفتند:«چرا نمیشود؟» و اینطوری بود که جاوا در حدود سال 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# یا جاوا یکی را به عنوان زبان بهتر برای آموزش برنامهنویسی انتخاب کند، هر کدام از این زبانها ویژگیها و قابلیتهای خودشان را دارند، و بر همان اساس میتوانند در برخی فعالیتها مفیدتر باشند، در نهایت این شما هستید که باید بر اساس رشتهی کاری مورد علاقهتان یکی از این دو زبان را انتخاب کنید و تا آخر کار همراهش شوید.
منبع: www.bamdad.co