#C
مایکروسافت 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# در واقع پیش از شروع قرن ۲۱ ساخته شده است، آیا می توانیم نتیجه بگیریم که C# پیر شده و بهتر است سراغ یک زبان تازه نفستر مثل Swift برویم؟ قطعا خیر، C# تا به امروز بارها به روز شده است. نسخه ۷٫۱ زبان C# به تازگی منتشر شده است. از نظر من C# یک جوان ۳۰ ساله است که به اندازه کافی جوان و به اندازه کافی با تجربه است.
شی گرایی به چه معنا است؟
در ابتدای این مقاله ، گفتم که C# یک زبان برنامه نویسی شی گرا است. برای اینکه توضیح بده م دقیقا یک زبان شی گرا چیست، ابتدا باید بدانیم در زبانهای غیر شی گرا چه می گذرد. زبانهای غیر شی گرا از دو موجودیت «داده » و «عملیات» تشکیل می شوند. یعنی کل یک نرم افزار، مثل نرم اپلیکیشن اندروید، iOS یا هر نرم افزار دیگری که روی کامپیوترهای شخصی اجرا می شوند، از چندین عملیات (Function) که یک یا چند داده (Data) می گیرد ساخته شده که این function تغییرات لازم را روی آن داده ها اعمال می کند و داده جدید را به function قبلی بر می گرداند.
مثلا فرض کنید که ما دو داده نام و نام خانوادگی داریم:
نام: محمد
نام خانوادگی: اژدری
عملیات مورد نظر ما ساخت نام کامل فرد است:
عملیات: نام + نامخانوادگی = محمد اژدری
این یک نمونه ساده از شیوه کار زبانهای غیر شی گرا بود. حالا فرض کنید بخواهیم همین عملیات را در C# که یک زبان شی گرا است پیاده کنیم. ما دیگر با دو داده مجزا طرف نیستیم. یک شی وجود دارد به نام انسان، انسان دارای یک نام کوچک و یک نام خانوادگی است. از پیش برای شی انسان مشخص کرده ایم – به وسیله یک function – که چطور نام کامل می سازد. مقادیر محمد و اژدری را به شی انسانی که ساخته ایم ارسال می کنیم، حالا یک انسان داریم که نام کامل دارد.
سخت شد؟ همان غیر شی گرا بهتر بود؟ شاید درک زبانهای شی گرا به نظر کمی سختتر بیاید، اما باید بگویم که ما هر روز در زندگی با اشیا و شی گرایی سر و کار داریم. یک برنامه نویس با کمی دقت و تلاش، وقتی به درک درستی از شی گرایی برسد، پی به قدرت آن خواهد برد.
C# برای من مناسب است؟
اگر به این فکر می کنید که برای اولین بار پا به دنیای یک زبان برنامه نویسی بگذارید، 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# کد می نویسند. همین موضوع باعث می شود تقریبا اکثر اوقات به سادگی راه حل مشکلات خود را در اینترنت پیدا کنید، چون احتمالا حداقل یک نفر پیش از شما با آن مشکل روبرو شده است.