زبان برنامه نویسی سی شارپ به عنوان یکی از قدرتمند ترین زبان های ساختاری و شی گرا توانسته نقش مهمی در اجرای پرژه های برنامه نویسی تحت ویندوز و همچنین تحت وب داشته باشد.
در این مطلب می خواهیم آنچا درباره ی زبان برنامه نویسی سی شارپ باید بدانیم را بررسی کنیم و ببینیم آیا سی شارپ برای برنامه نویسی پروژه ها مناسب هست؟
با بایت لرن همراه باشید تا جواب این سوال را بدهیم.
زبان برنامه نویسی سی شارپ چیست؟
مایکروسافت #C را ادغامی از قدرت ++C و سادگی Visual Basic معرفی میکند. اما به نظر من، در حال حاضر سادگی #C به مراتب خیلی بیشتر از Visual Basic است.
در اواخر دهه ۱۹۹۰ که مایکروسافت و شرکت Sun Microsystems – مالک Java – در دنیای نرم افزار رقابت سرسختانهای داشتند، مایکروسافت تصمیم گرفت یک زبان برنامه نویسی جدید توسعه دهد.
در ابتدا #C از لحاظ ساختاری خیلی به Java و بیشتر از آن به ++C نزدیک بود اما رفته رفته و با توسعه این زبان برنامه نویسی جدید، تفاوتها بیشتر و بیشتر شدند.
خانواده C، خانواده زبان های برنامه نویسی
در دنیای زبانهای برنامه نویسی، اصطلاحی وجود دارد به نام زبانهای خانواده C؛ دلیل این نامگذاری، شباهت ظاهری (Syntax) زبانهای عضو این خانواده به زبان C است.
خیلی از زبانهای برنامه نویسی مشهور این روزها مثل C، C++، Objective-C، PHP، C#، Java و حتی زبان بسیار جدید Swift عضو این خانواده هستند. بنابراین به نظر میرسد اگر یکی از این زبانها را بلد باشید، کارتان برای یادگیری دیگری آسان تر خواهد بود.
زبان برنامه نویسی سی شارپ قدیمی است؟
در زمانهای که همه چیز با یک ساعت پیش از خود متفاوت است، حالا که میدانیم #C در واقع پیش از شروع قرن ۲۱ ساخته شده است، آیا میتوانیم نتیجه بگیریم که #C پیر شده و بهتر است سراغ یک زبان تازه نفستر مثل Swift برویم؟
قطعا خیر، #C تا به امروز بارها به روز شده است. نسخه 7.3 زبان #C به تازگی منتشر شده است. از نظر من #C یک جوان ۳۰ ساله است که به اندازه کافی جوان و به اندازه کافی با تجربه است.
شی گرایی به چه معنا است؟
در ابتدای این مقاله، گفتم که #C یک زبان برنامهنویسی شی گرا است. برای اینکه توضیح بدهم دقیقا یک زبان شی گرا چیست، ابتدا باید بدانیم در زبانهای غیر شی گرا چه میگذرد. زبانهای غیر شی گرا از دو موجودیت «داده» و «عملیات» تشکیل میشوند.
یعنی کل یک نرم افزار، مثل اپلیکیشن اندروید، iOS یا هر نرم افزار دیگری که روی کامپیوترهای شخصی اجرا میشوند، از چندین عملیات (Function) که یک یا چند داده (Data) میگیرد ساخته شده که این function تغییرات لازم را روی آن دادهها اعمال میکند و داده جدید را به function قبلی بر میگرداند.
مثلا فرض کنید که ما دو داده نام و نام خانوادگی داریم:
نام: محمد رضا
نام خانوادگی: گلزار
عملیات مورد نظر ما ساخت نام کامل فرد است:
عملیات: نام + نامخانوادگی = محمد رضا گلزار
این یک نمونه ساده از شیوه کار زبانهای غیر شیگرا بود. حالا فرض کنید بخواهیم همین عملیات را در #C که یک زبان شی گرا است پیاده کنیم. ما دیگر با دو داده مجزا طرف نیستیم. یک شی وجود دارد به نام انسان، انسان دارای یک نام کوچک و یک نام خانوادگی است.
از پیش برای شی انسان مشخص کردهایم – به وسیله یک function – که چطور نام کامل میسازد. مقادیر امین و حیایی را به شی انسانی که ساختهایم ارسال میکنیم، حالا یک انسان داریم که نام کامل دارد.
سخت شد؟ همان غیر شیگرا بهتر بود؟ شاید درک زبانهای شی گرا به نظر کمی سختتر بیاید، اما باید بگویم که ما هر روز در زندگی با اشیا و شی گرایی سر و کار داریم. یک برنامه نویس با کمی دقت و تلاش، وقتی به درک درستی از شی گرایی برسد، پی به قدرت آن خواهد برد.
پیشنهاد ما به شما!
برنامه نویسی وب را چگونه اصولی یاد بگیریم؟
برنامه نویسی سی شارپ برای من مناسب است؟
اگر به این فکر میکنید که برای اولین بار پا به دنیای یک زبان برنامه نویسی بگذارید، #C گزینه مناسبی برای شما است. بگذارید با هم صادق باشیم، واقعا فرقی نمیکند که چه زبانی را انتخاب میکنید. هر کدام نسبت به دیگری قابلیتها و ضعفهایی دارد. مهمتر از این تفاوتها، هدف شما از یادگیری برنامه نویسی است.
مثلا اگر بخواهید یک اپلیکیشن اندروید یا iOS بسازید، به ترتیب زبانهای جاوا و Swift گزینههای مناسبی هستند. یا اگر به پیاده سازی ظاهر صفحات وب علاقه دارید میتوانید با JavaScript شروع کنید.
اما #C این امکان را به شما میدهد که در پلتفرمهای مختلف نرمافزار مورد نظر خود را توسعه بدهید. من اسمش را زبان برنامه نویسی میانبر میگذارم. زبانی که با آن هم میتوانید اپ اندروید، iOS بنویسید و هم سایت و سرویسهای سمت سرور را توسعه بدهید.
این یعنی #C میتواند تقریبا یک چرخه کامل در محصولات نرم افزاری را پشتیبانی کند، دیگر چه میخواهید؟
با #C چه نرمافزارهایی را میتوانم توسعه دهم؟
در بخش قبلی کمی توضیح دادم که #C قابلیت این را دارد که یک چرخه کامل از یک محصول نرمافزاری را پشتیبانی کند. اپلیکیشن موبایل، معمولا به یک نرمافزار در پشت صحنه نیاز دارند. این نرمافزار روی وب سرورها – که در واقع کامپیوترهای قدرتمند متصل به شبکه اینترنت هستند – نصب میشوند.
به این نرم افزار و زبانهای برنامه نویسی مورد نیاز برای توسعه آنها، اصطلاحا سمتِ سرور (Server side) میگوییم. #C یک زبان سمت سرور است.
مایکروسافت با خرید شرکتی به نام Xamarin قدمی بزرگ در مسیر رشد هر چه بیشتر استفاده از #C برداشت. Xamarin امکانی را فراهم کرده است که به سادگی میتوان به کمک زبان #C برای دستگاههای اندرویدی و iOS اپلیکیشن تولید کرد.
اگر کسی به شما گفت که هر چه باشد، اپهای زامارین مثل اپهایی که با زبان اصلی آن پلتفرم ایجاد شدهاند نمیشود، با خیال راحت به او بگویید که اشتباه میکند. اپهای تولید شده به کمک #C و زامارین میتوانند دقیقا همان کارایی و زیبایی اپهای به اصطلاح Native برای اندروید یا iOS را داشته باشند.
برای محصولتان نیاز به یک وبسایت دارید؟ #C به کمک تکنولوژی ASP.Net این امکان را فراهم میکند که وبسایتی بسیار قدرتمند و در عین حال زیبا ایجاد کنید.
حتی میتوان به کمک #C نرمافزارهای تحت ویندوز و macOS تولید کرد. راستش در چند نسخه اخیر ویندوز، مخصوصا Windows 10، بخش زیادی از خود این سیستم عامل به وسیله زبان #C نوشته شده است.
Net. چه ارتباطی با #C دارد؟
.Net (دات نِت) یک کتابخانه از صدها امکان است. از امکان ارسال ایمیل گرفته تا ساختن و خواندن یک فایل .Net توسط مایکروسافت تقریبا همزمان با #C به جهان معرفی شد. زبانهای مختلف – از #C گرفته تا دلفی – امکان بهره گرفتن از کتابخانه .Net را دارند. #C مهمترین و شناختهشدهترین زبانی است که از .Net استفاده میکند.
جمع بندی ما
#C یک زبان ساده و قدرتمند است. به کمک #C میتوان برای پلتفرمهای مختلف، از موبایل گرفته تا سرورها، کد نوشت. #C شرکت مایکروسافت را پشت سر خود دارد، که این یعنی قرار نیست به این زودی از رده خارج شود.
تعداد زیادی برنامهنویس در سراسر جهان با #C کد مینویسند. همین موضوع باعث میشود تقریبا اکثر اوقات به سادگی راه حل مشکلات خود را در اینترنت پیدا کنید، چون احتمالا حداقل یک نفر پیش از شما با آن مشکل روبرو شده است.
زبان #C، برای کسی که میخواهد تازه به دنیای نرمافزار وارد شود بسیار مناسب است.
با تشکر از شما، دوستان میتوانید با عضویت در کانال تلگرامی ما جدیدترین مطالب و اخبار رو دریافت کنید .
آدرس کانال :
مطالب مرتبط با این پست :
بررسی قابلیت های جدید سی شارپ 8
برنامه نویسی Net. چیست و چه کاربردی دارد؟