تا به حال فکر کردهاید که سر و کلهی اولین زبان برنامه نویسی از کجا پیدا شد؟ ماجرا از جایی شروع شد که یک دستگاه غولپیکر را جلوی اولین برنامهنویس دنیا گذاشتند و از او خواستند تا با این ابردستگاه ارتباط برقرار کند. برنامهنویس محترم هم که حس میکرد چشم یک دنیا به او خیره شدهاست، اول سعی کرد مثل انسانهای نخستین با دود یکی دو تا علامت بفرستد، بعد کمی روی شانهی کامپیوتر زد و …. سرانجام هر طور بود اولین زبان برنامهنویسی به وجود آمد.
مقالهی امروز ما راجع به یکی از پرطرفدارترین زبانهای برنامهنویسی به نام سی شارپ #C است. سی شارپ یک زبان کلاس بالای شیگرا است که… راستش الان خودمان هم حس میکنیم در حال صحبت به زبان یک بیگانهی فضایی هستیم، ولی واقعیت این است که زبانهای برنامهنویسیای مثل #C گاهی به همین پیچیدگی هستند. خبر خوب این که ما قرار است در این مقالهی بامداد، یکبار برای همیشه این کلاف پیچیده را باز کنیم.
زبان برنامه نویسی سی شارپ (#C)
کودکی که خیلی زود از پلههای پیشرفت بالا رفت
داستان تولد سی شارپ از یک دعوای ساده شروع شد. شرکت مایکروسافت از شرکت سان اجازه گرفت تا از زبان جاوا استفاده کند. اما جناب مایکروسافت کمی انحصارطلب بود و دوست داشت همهی زبانها در زمین خودش بازی کنند. بنابراین کلی به جاوا محبت کرد و کم کم قابلیت استقلال از سیستم عامل را از جاوا گرفت.
این وسط شرکت سان که همان بابای جاوا بود چندان از این کار خوشش نیامد و از مایکروسافت شکایت کرد. مایکروسافت هم مجبور شد با کمک چند برنامهنویس مثل آندرس هلزبرگ، یک زبان جدید خلق کند.
این زبان جدید یکجورهایی فرزند ارتقا یافتهی زبان ++C بود. اوایل سی شارپ را در خانه، کول صدا میکردند. اما بعد دیدند cool خیلی هم با حال نیست، بنابراین سری به ثبت احوال زدند و در نهایت یک شناسنامهی جدید به نام سی شارپ و با علامت تجاری #C تهیه کردند.
C sharp علاوه بر ویژگیهایی که از خانوادهی C به ارث برده است، تا حد زیادی هم شبیه به جاوا است و همین حد وسط بودن باعث شده است کلی طرفدار پیدا کند. زبان برنامهنویسی قصهی ما البته کلی مزیت جالب دیگر هم دارد که در بخش بعد راجع به آنها صحبت میکنیم.
مزایای زبان برنامه نویسی سی شارپ (C-sharp)
مجموعهی اشیای با کلاس
C Sharp یک زبان شیء گرا است، این جمله را حتما تا به حال هزار بار در مقالههای مختلف خواندید. اما شیگرایی به چه معناست؟ فرض کنید شما قرار است یک بازی کامپیوتری با شخصیتهای مختلف خلق کنید. مثلا یک دایناسور قرار است نقش شرور بازی شما را ایفا کند. این دایناسور چه رنگی است؟ چطور راه میرود؟ غذا چه میخورد؟ تمام این ویژگیها باعث میشوند دایناسور شما جان بگیرد و تبدیل به یک شخصیت واقعی بشود.
شی یا object هم در برنامهنویسی درست مثل همین دایناسور است. شما برای یک مجموعه کد، ویژگیهایی را تعریف میکنید و بعد به جای اینکه در تمام مراحل کدنویسی، مجبور بشوید دوباره ویژگیها را تکرار کنید، فقط مینویسید دایناسور و برنامه میفهمد منظور شما همان موجود دو متری سبزرنگی است که اول ماجرا تعریفش کردی.، اما این اشیا در کدام چارچوبها استفاده میشوند؟ برای فهمیدن جواب سری به بخش بعد بزنید.
زمین بازی بزرگ
مایکروسافت برای اینکه خیال خودش را راحت کند، همان زمان یک فریمورک یا یک زمین بازی تحت اختیار خودش ایجاد کرد به نام Net. و از همهی زبانهای خانوادهی C خواست در همین زمین بازی کنند. این فریمورک چیست و چرا انقدر مهم است؟ فریمورک، بهشت برنامهنویسها است، جاییکه در آن کافی است چشمهایشان را ببندند و به یک کد فکر کنند و بعد وقتی چشمشان را باز کردند، کد موردنظر کف دستشان است.
زیادی فانتزی شد؟ بگذارید کمی به واقعیت نزدیکش کنیم. دایناسور مثال قبل را خاطرتان هست؟ فریم ورک یکجورهایی مثل یک پارک ژوراسیک بزرگ است که پر از دایناسورهای رنگارنگ است. دایناسورهایی که قبلا توسط برنامهنویسهای کاربلد خلق شدهاند و حالا منتظرند تا با کمی تغییر یا به همان شکل در یک برنامهی دیگر مورد استفاده قرار بگیرند. این روزها فریمورکها حسابی پر و بال گرفتند و ممکن است شما اسمشان را به عنوان کتابخانه شنیده باشید.
فریم ورک Net.
شعبدههای زیادی در آستین دارد. مثلا به تازگی متن باز یا Open Source شده است و این بعنی برنامهنویسهای زیادی میتوانند از منابع آن استفاده کنند و یا کدهایی را به کتابخانهاش اضافه کنند. تمام این ویژگیها باعث شدهاند تا زبان #C به همراه فریمورک Net. تبدیل به دو یار جدانشدنی بشوند و تقریبا هر غیرممکنی را ممکن کنند.
معلم سختگیر
فرض کنید یک ربات کوچولوی قشنگ اختراع کردهاید و انقدر درگیر ساخت و ظاهرش بودهاید که یادتان رفته وسط راه یکی دو تا از پیچ و مهرههایش را چک کنید. درست روز مسابقهی رباتیک متوجه میشوید که یک جای کار ربات قشنگتان حسابی مشکل دارد. حالا چه کار باید بکنید؟
از آنجایی که سی شارپ حسابی به ضربالمثل «علاج واقعه قبل از وقوع باید کرد» اعتقاد دارد. در همان زمان کدنویسی، کدها را چک میکند و اگر کدی مشکل داشته باشد، خوب اجرا نشود یا امکان آسیب به سیستم عامل وجود داشته باشد، سریع اخطار میدهد و به کاربر اجازه نمیدهد کد را بنویسد. C# به همین راحتی از تلف شدن وقت خودش و کاربر جلوگیری میکند و مثل یک نقشهخوان حرفهای درمسابقهی رالی، قبل از ورود به پیچهای خطرناک هشدار میدهد.
وسواس تمیزی
دوستی عمیق فریمورک Net. و سی شارپ را که هنوز از یاد نبردهاید؟ معلوم شد این دو کلی وجه اشتراک دارند که باعث میشود دوستیشان عمیقتر بشود. مثلا هر دو عاشق نظم و ترتیب هستند. برای همین، هر چند وقت یکبار یک نگاه به محیط برنامه میکنند و کدهای اضافهای که هیچوقت استفادهنمیشوند، پاک میکنند.
شما به عنوان یک برنامهنویس، یک متد ساده را تعریف میکنید، اما هیچکجا از آن استفاده نمیکنید. سی شارپ هم که حوصلهی شلوغی ندارد و میبیند شما آن متد را همینجوری در انبار گذاشتید. دست متد محترم را میگیرد و راس ساعت 9 آن را دم در میگذارد. این ویژگی باعث میشود برنامهها حجم کمتری بگیرند و حتما میدانید که هنگام اجرای پروژههای سنگین، وجود یک فضای حافظهی کوچک، در حد یک قطعه طلا ارزشمند است.
سکوهای مختلف برای پرش
تا به حال به ساختار منشورها و بازتاب نور از آنها دقت کردهاید؟ با تشکر از درس علوم! همهی ما میدانیم که یک منشور میتواند طیفهای مختلف نور را بازتاب بدهد و بعد یک رنگینکمان قشنگ بسازد. این موضوع چه ربطی به بحث ما دارد؟ C Sharp به کمک محیط Net. دقیقا مثل یک الماس درخشان عمل میکند و از یک زبان واحد، چند خروجی متفاوت برای سیستم عاملهای مختلف میگیرد. سخت شد؟ بگذارید بیشتر توضیح بدهیم.
تا همین چند وقت پیش اگر قرار بود شما برنامهای برای اندروید و ویندوز بنویسید بایدبه سراغ زبانهای اندروید و سی شارپ میرفتید و از کدهای متفاوتی استفاده میکردید. این ماجرا برنامهنویسی را از کار در معدن هم سختتر کرده بود. اما با رشد پلتفرمها و ظهور پلتفرمهای چندسکویی مثل Net. و البته فرزند جدیدش یعنی ASP .Net یا ASP .Net Core برنامهنویسها میتوانند یک کد را به زبان #C بنویسند و بعد از همان کد ساده، چند خروجی متفاوت بگیرند و برنامهشان را در سایر سیستمهای عامل مثل اندروید یا iOS و … به راحتی آب خوردن اجرا کنند.
کاربرد سی شارپ و همهی فیلهایی که هر روز هوا میکند
این همه از مزیتهای مختلف سی شارپ گفتیم و حالا بدون گفتن کاربردهایش بگذاریم و برویم؟ امکان ندارد. سی شارپ تقریبا در تمام امور مربوط به مایکروسافت از توسعهی انواع نرمافزارها تا بازیهای مختلف نقش دارد و حسابی با مایکروسافت در حال توسعه و به روز کردن شغل خانوادگی هستند.
مایکروسافت هم که میبیند سی شارپ بچهی پایهای است، محدودش نمیکند و مثل یک بابای مهربان میگوید برو پدرجان! برو! و اینطوری است که این روزها اگر بخواهید نرمافزاری را در سیستم عامل مک یا iOS و … طراحی کنید یا توسعه بدهید، خیلی راحت میتوانید به سراغ #C بروید و از او کمک بگیرید.
این روزها سی شارپ در صنعت بازیسازی تقریبا حرف اول را میزند و حتی تازهکارها هم با استفاده از unity3d میتوانند بازی خودشان را بسازند. سی شارپ در طراحی و اجرای وبسایتهای مختلف هم ید طولایی دارد و با کمک asp.net تقریبا میتواند در زمینهی طراحی وبسایت هر کاری بکند. باور نمیکنید؟ سری به دیجیکالا یا سایت ایرانسل بزنید تا ببینید C Sharp چقدر خوب قواعد بازی را بلد است.
البته #C بلندپروازتر از این حرفها است. برای همین چند وقت یکبار سری به دنیای کسب و کار هم میزند و از کیسهاش یکی دو نرمافزار محاسباتی برای اهل تجارت، سوغات میبرد.
سی شارپ عاشق تکنولوژی و اپلیکیشنهای موبایل بوده و هست. برای همین خیلی زود با زامارین که یکی دیگر از بچههای مایکروسافت بود رفیق شد. آنها به کمک هم خیلی راحت توانستند اپلیکیشنهای مختلف را در زمانی کمتر از سایر زبانهای برنامهنویسی، کد نویسی کنند و اعتقادشان به ضربالمثل «وقت طلاست» را نشان بدهند.
سی شارپ البته عاشق توسعه هم هست، با کمک این زبان تقریبا میشود هر نرمافزاری را که در چارچوب فریم ورک Net. نوشته شده باشد توسعه داد. برنامههای مثل اتوکد یا شیرپوینت و هزاران برنامهی دیگر هم که از اول با زبان سی شارپ نوشته شدند، حسابی با سی شارپ دوست هستند و برای توسعه و افزایش کارایی بلافاصله به سراغ #C میروند.
چند نمونه از برنامههایی که با زبان سی شارپ نوشته شدهاند
از آنجایی که مشت نمونهی خروار است، ما هم تصمیم گرفتیم برای آشنایی بیشتر شما در این بخش یکی دو تا برنامهی کاربردی که با سی شارپ نوشته شدهاند، معرفی کنیم تا بهتر بتوانید با این زبان کاربردی دوست بشوید.
آفیس 365:
یادتان هست گفتیم سی شارپ و مایکروسافت دائم به دنبال توسعهی کسب و کار خانوادگی هستند؟ این هم شاهدش! آفیس 365 اسم بسیار خوبی برای بستهی آفیس ارائه شده از طرف مایکروسافت است، چرا که این روزها 365 روز سال، ما تقریبا بیست و چهارساعته با ابزارهای آفیس سر و کار داریم.
اوایل ورود آفیس 365 همه فکر میکردند که این نرمافزار جدید فقط تحت وب و به صورت آنلاین کار میکند. اما خیلی زود مشخص شد که این فرزند جدید مایکروسافت میتواند بدون اتصال به اینترنت هم بعضی از کارهای همیشگیاش را انجام بدهد. بخشهایی مثل Word, Excel, Publisher بدون حمایت وب هم در دسترس هستند. اما در مقابل بعضی از بخشها مثل Yammer, Flow, Powerapps و … به خاطر ماهیت آنلاینشان برای اجرا نیاز به اینترنت دارند.
به هر حال آفیس 365 با وجود ورژنهای خانگی، اداری و تجاری و به روز شدن دائمی، توانست خیلی زود قلب طرفداران مایکروسافت را تصاحب کند و اوج کارایی سیشارپ در ساخت یک برنامه را نشان بدهد.
شیرپوینت:
این روزها بیشتر ادارهها و سازمانها، اطلاعات را به صورت الکترونیکی نگهداری و برای کارهای اداری از پرتال داخلی استفاده میکنند. نرمافزارهای زیادی برای مدیریت فعالیتهای اداری وجود دارد. اما در میان این همه نرمافزار، شیرپوینت، یکجورهایی حکم چوب جادوی هریپاتر را دارد و با یک تکان ساده به تمام نامههای اداری و فعالیتهای سایت شرکت، سر و سامان میدهد.
شیرپوینت مثل یک پیتزای چند تکه میماند و هر تکهی آن یک طعم عالی دارد. یکی از تکههای آن خوراک طبقهبندی اسناد و مدارک است و حسابی باب میل مدیر شرکتهای بزرگ است. مثلا یک شرکت تولید محتوای بزرگ را تصور کنید، با استفاده از شیرپوینت میشود تمام مقالههای فرستاده شده توسط نویسندههای محتوا را مدیریت کرد، برای هر فرد یک رمز جداگانه در نظر گرفت تا فقط به مقالهها و پرتال شخصی خودش دسترسی داشته باشد و در مقابل هم میتوان برای مدیریت مرکز دسترسی بیشتری را تعریف کرد تا بتواند به همهی مقالهها سرکی بکشد.
شیرپوینت دیزاینر یکی دیگر از تکههای خوشمزهی شیرپوینت است و همانطور که از اسمش پیداست، برای طراحی وبسایت از آن استفاده میشود. شیرپوینت همچنین دستی هم بر آتش یکپارچهسازی اطلاعات، جستجوی کلمات کلیدی و جستجو در فایلهای سازمان بر اساس دستورات و مقررات تعریف شده، ذخیرهسازی و ویرایش اطلاعات و … دارد.
جهان شیرپوینت بسیار بزرگ است و اگر بخواهیم همهی قابلیتهایش را بگوییم، نیاز به چند دست دیگر برای تمام کردن این مقالهی بامداد داریم. اما از آنجایی که فعلا از دست اضافه خبری نیست، اجازه بدهید فعلا با شیرپوینت خداحافظی کنیم.
آیندهی سی شارپ (#C)
C sharp از همان اول هم کمی عجول بود و دوست داشت بداند آیندهاش چه میشود، این بود که یک روز راه هاگوارتز را در پیش گرفت و به سراغ پروفسور تریلانی رفت تا ببیند تکلیفش در آینده چیست.
دست آخر سی شارپ فهمید در حدود سال 2018 تبدیل به چهارمین زبان برنامهنویسی دنیا میشود و البته با پیشرفت کتابخانههایش و بزرگتر شدن خانوادهی مایکروسافت، هر روز به محبوبیتش اضافه میشود. اوضاع سی شارپ و برنامهنویسهایی که با این زبان کار میکنند در ایران هم خوب خواهد بود چرا که این زبان در کنار جاوا، پرچمدارهای اصلی کدنویسی برای تولید انواع اپلیکیشنها و بازیهای یارانهای هستند.
در نهایت سی شارپ که از آیندهی روشنش مطمئن بود، خوشحال و خندان از هاگوارتز بیرون زد و تا همین امروز هم کاری کرده که همهی آن پیشگوییها تبدیل به واقعیت بشوند.
سی شارپ به خاطر شیگرایی و همچنین پشتیبانی مایکروسافت، هر روز محبوبیت بیشتری پیدا میکند. با توسعهی فریمورکهای مختلف از جمله Net core. و همچنین ساختارهای چندسکویی مثل زامارین، فعلا نه تنها قصد بازنشستگی ندارد، بلکه تا مدتهای زیاد قرار است عصای دست بسیاری از برنامهنویسها باشد.
از طرف دیگر یادگیری سی شارپ بسیار راحت است و البته با توجه به بازار کاری که دارد به نظر میرسد یادگیری این زبان توجیه اقتصادی خوبی هم داشته باشد.
بازار کار برنامه نویسی سی شارپ
کدام زبان برنامهنویسی را یاد بگیرم؟ پیدا کردن جواب این سوال درست مثل پیدا کردن جواب برای سوال پرتکرار امروز غذا چی درست کنم؟ است. همانطور که انتخاب یک غذا برای پخت، به هزار و یک مورد ریز و درشت بستگی دارد، انتخاب یک زبان برنامهنویسی مناسب برای یادگیری هم به عوامل مختلفی بستگی دارد.
اما اگر بخواهیم خیلی کلی بگوییم اگر دوست دارید در زمینه بازیسازی، توسعه یا ساخت نرمافزارها فعالیت کنید، قطعا #C مناسب شما است. این وسط اگر پیشزمینهای از سایر زبانهای خانوادهی C داشته باشید، قطعا یادگیری برایتان آسانتر میشود و بهتر میتوانید با سی شارپ ارتباط برقرار کنید.
بازار کار برنامهنویسان سی شارپ همانطور که قبلا گفتیم در ایران خوب است و با یادگیری این زبان، میتوانید در زمینه ساخت و توسعهی انواع اپلیکیشنهای موبایل هم، حرفهای زیادی برای گفتن داشتهباشید.
چگونه سی شارپ یاد بگیریم؟
دنیای برنامهنویسی با حدود بیست و چهار زبان پیچیده که تازه اسم یکیشان هم پایتون است و یکی دیگرشان که اسمش سی شارپ است و آدم را یاد کوسههای تیزدندان میاندازد، دست کمی از یک جنگل ندارد. حالا چه کسانی قرار است شاد و خوشحال در این جنگل به سفرشان ادامه بدهند؟ آنهایی که راه و رسم شکار کردن را بهتر از دیگران یاد گرفتهاند.
خب شما اگر بخواهید یک شکارچی ماهر بشوید از کجا شروع میکنید؟ به سراغ کتابهای خودآموز یا ویدیوهای یوتیوب میروید؟ معلوم است که نه! هیچجایی به جز یک کلاس درست و حسابی نمیتواند شما را برای یک جنگ تمام عیار آماده کند.
ما در بامداد سرمان درد میکند برای ماجراجویی و کشف جنگلهای جدید و البته خوشحال میشویم تجربههایمان از ماجراجویی در دنیای برنامهنویسی را با شما به اشتراک بگذاریم.
ما در کلاسهای بامداد مبانی شیگرایی در سیشارپ، نحوهی کار در چارچوب c#، اصول نامگذاری و … به شما آموزش میدهیم، همچنین شما را با مفاهیمی مثل انواع داده اولیه در سی شارپ، مفهوم حافظهی تصمیمگیری و عملگرهای رابطهای و …آشنا میکنیم، تا در نهایت برای کار با سی شارپ هیچ مشکلی نداشته باشید و خیلی راحت بتوانید با این زبان قدرتمند دوست بشوید و دنیاهای کدنویسی را یکی پس از دیگری فتح کنید.