سی شارپ چیست؟
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
سی شارپ چیست و چگونه بوجود آمد؟
سیشارپ یک زبان برنامهنویسی سمت سرور یا همان Back End بوده که توسط کمپانی مایکروسافت در سال ۲۰۰۲ عرضه شد.
در قبل از شروع سال ۲۰۰۰ میلادی، کمپانی مایکروسافت با زبانهای برنامهنویسی خود همانند VB (ویژوالبیسیک) توانسته بود بازار جهانی را در دست بگیرد؛ اما با ظهور زبان برنامهنویسی JAVA در بازه زمانی سال ۱۹۹۵ تا ۱۹۹۹، اکثر برنامهنویسها بخاطر وسعت کارایی و تفاوتهای فاحشی که بین زبان VB با JAVA وجود داشت، بصورت گسترده به زبان برنامهنویسی JAVA مهاجرت کردند. این امر باعث شد تا کمپانی مایکروسافت احساس خطر کند، چرا که درحال از دست دادن بازار جهانی بود، به همین منظور به دنبال راهی بود که بتواند مجدد به عرصه قدرت بازگردد.
در سال 1999 شرکت سان که متولی زبان جاوا بود، اجازه استفاده از زبان برنامهنویسی جاوا را در اختیار مایکروسافت قرار داد تا در سیستمعامل خود از آن استفاده کند. جاوا در اصل به هیچ پلتفرم یا سیستمعاملی وابسته نبود، اما مایکروسافت از این فرصت استفاده کرد و برخی از مفاد قرارداد را زیر پا گذاشت و قابلیت مستقل از سیستمعامل بودن جاوا را از آن برداشت!
درنتیجه شرکت سان پروندهای علیه مایکروسافت درست کرد و مایکروسافت مجبور شد تا یک زبان شیءگرای با کامپایل جدید که به ++C شبیه بود را درست کند. این زبان جدید در ابتدا COOL نامیده شد اما بدلیل مناسب نبودن نام آن برای اهداف تجاری، کمپانی مایکروسافت در ارائه رسمی چارچوب داتنت در سال ۲۰۰۰ میلادی، به جای COOL این زبان شئگرا جدید را به نام سیشارپ معرفی کرد.
مدیر و سرپرست طراحان در مایکروسافت آندرس هلزبرگ بود که تجربه قبلی او در طراحی Framework و زبانهای برنامه سازی ++Borland، دلفی، Turbo Pascal، ویژوال ++C به آسانی در دستورالعملهای سیشارپ قابل رویت است.
با وجود اینکه زبان سیشارپ (#C) در گذشته نیز وجود داشت، اما پس از اعمال آخرین توسعهها توسط مایکروسافت، همزمان با پیادهسازی JVM جاوا بر روی نرمافزار ویژوالاستودیو، در سال ۲۰۰۲ اولین نسخه حرفهای زبان سیشارپ رونمایی شد.
باهوشی مایکروسافت باعث شد تا ظرف یکی دو سال، زبان سیشارپ و نرمافزار ویژوالاستودیو محبوب برنامهنویسها شده و مجدد بازار جهانی را در دست بگیرد؛ اما این باهوشی دقیقا چی بود؟
جالب است بدانید که در گذشته برنامههایی که توسعه داده میشدند، در محیطهای مختلف قابل اجرا نبودند! یعنی چی؟
به عنوان مثال: در بازه زمانی سال ۱۹۸۰ تا ۲۰۰۰ میلادی، اگر برنامهای در محیط ویندوز توسعه داده میشد، در محیطهای Linux یا MacOs قابل اجرا نبود و این مسئله باعث میشد تا این برنامه، برای هر دو محیط لینوکس و مکینتاش بصورت صفر تا صد از اول کدنویسی بشه! و این یعنی یعنی سه برنامه جداگانه! 🙂
علت اصلی این مشکل هم این بود که سیستمعامل (یعنی همان ویندوز و لینوکس و مکینتاش)، واسط بین برنامه با سختافزار کامپیوتر بود؛ درنتیجه برنامه نوشته شده در آن زمان، ویژه همان سیستمعامل بوده و در سیستمعامل دیگر کار نمیکرد.
یکی از دلایل محبوبیت زبان جاوا در بازه سال ۱۹۹۵ تا ۱۹۹۹ دقیقا برطرف کردن همین مشکل بود!
سازنده زبان جاوا یعنی شرکت سان مایکرو سیستمز، در سال ۱۹۹۴ با تولید ماشینمجازی خود (JVM)، این امکان را برای برنامهنویسها فراهم کرد تا دیگر سیستمعامل، واسط میان برنامه با سختافزار کامپیوتر نباشد!
درنتیجه ماشینمجازی جاوا، واسط میان برنامه تولید شده با سیستمعامل شد و به همین دلیل دیگر نیازی به سه بار توسعه برنامه برای سیستم عاملهای مختلف نبود! بلکه با یکبار توسعه برنامه توسط برنامهنویس، در هر سه سیستمعامل معروف آن زمان یعنی ویندوز، مکینتاش و لینوکس برنامه برنامه به راحتی قابل اجرا بود.
در سال ۲۰۰۰، کمپانی مایکروسافت همین فرآیند را در پیش گرفت و مشکل واسط میان برنامه با سیستمعامل را برطرف کرد. از آنجایی که در گذشته اکثر برنامهها توسط زبانهای برنامهنویسی ساخته شده توسط مایکروسافت توسعه داده شده بودند، درنتیجه این کمپانی، بین برنامهنویسها محبوبیت زیادی داشت که با برطرف کردن این مشکل توانست حجم زیادی از برنامهنویسها را مجدد به سمت خود بازگردانده و بصورت رسمی به عرصه قدرت بازگردد.
اما دلیل دومی که باعث شد در ببین سالهای ۲۰۰۰ تا ۲۰۰۲ میلادی، زبان سیشارپ بتواند بازارجهانی را در دست بگیرد چی بود؟!
در آن سالها، حجم رونمایی از زبانهای برنامهنویسی جدید به شدت زیاد بود، و قاعدتا هر زبان برنامهنویسی جدید که عرضه میشد، از زبانهای قبلی حرفهایتر و کاملتر بود. این مسئله به یکی از مهمترین مشکلات شرکتهای نرمافزاری تبدیل شد! چون با رونمایی از زبان جدید، شرکت یا باید برنامهنویسهای خودش را مجبور به یادگیری زبان جدید میکرد، یا باید تمام برنامهنویسهایش را اخراج، و برنامهنویسهایی که زبان برنامهنویسی جدید را بلد بودند استخدام میکرد! که در هر دو حالت فوق، آن شرکت ضرر بزرگی میکرد و انتخاب بین گزینهها واقعا دشوار بود.
کمپانی مایکروسافت با عرضه قویترین IDE حال حاضر جهان به نام نرم افزار مایکروسافت ویژوالاستودیو داتنت، این مشکل را برطرف کرد! اما چطوری؟
مایکروسافت در این IDE، قابلیتی را فراهم کرد تا با ظهور زبانهای برنامهنویسی جدید، برنامهنویسها دیگر نیازی به یادگیری آن زبان جدید نداشته باشند! یعنی مایکروسافت در IDE خود این امکان را فراهم کرد تا شما بدون یادگیری زبان جدید، با همان زبان قدیم خود کار کنید و از امکانات و قابلیتهای آن زبان جدید در زبان قدیمی خود استفاده کنید!
به زبان ساده یعنی مثلا شما با زبان جاوا کار میکنید، اما مایکروسافت در IDE خودش امکان استفاده از امکانات و قابلیتهای زبان سیشارپ، دلفی و … را برای شما در برنامه جاوا خودتان فراهم کرده است.
باتوجه به توضیحات فوق، بستهای به نام دات نت فریمورک (Net Framework.) توسط کمپانی مایکروسافت توسعه داده شد که درون این بسته هرآنچه که برنامهنویس از امکانات و قابلیتهای برنامهنویسی آرزو کند، در قالب کدهای آماده از قبل نوشته شده وجود دارد. اما تنها شرط استفاده از این بسته کامل داتنت فریمورک، برنامهنویسی در محیط IDE خود مایکروسافت به نام ویژوال استودیو دات نت بود.
درنتیجه برنامهنویسهای دنیا برای استفاده از تابعهای آماده درون بسته داتنت، با زبانهای مختلفی که بلد بودند، به نرمافزار ویژوالاستودیو مهاجرت کردند و برنامههای خودشان را در این IDE توسعه دادند.
با این قابلیت مایکروسافت، انقلابی در صنعت برنامهنویسی بوجود آمد که هر برنامهنویس و شرکت نرمافزاری با هر زبان برنامهنویسی (جاوا، پایتون، سی پلاس پلاس، دلفی، ویژوال بیسیک و …) برنامههای خودشان را فقط بر روی ویژوال استودیو طراحی و توسعه میدادند.
باهوشی اتاق فکر مایکروسافت این بود که برنامهنویسها به محیط IDE ویژوال استودیو عادت کنند! بعد از اینکه این عادت بوجود آمد، حالا مایکروسافت از زبان قدرتمند و کامل خود به نام سیشارپ | #C رونمایی کرد.
باوجود اینکه هیچ اجباری در استفاده از زبان سیشارپ نبود و همچنان مثل گذشته برنامهنویسها میتوانستند با زبانهای قدیمی خود مثل جاوا کدنویسی خود را در محیط ویژوالاستودیو انجام دهند، اما تمایل به یادگیری زبان سیشارپ به شدت افزایش یافت.
علت این تمایل این بود که زبان سیشارپ به اصطلاح عامیانه، حق آب و گل در نرم افزار ویژوال استودیو داشت! چرا که برنامه Visual Studio و زبان #C هر دو توسط کمپانی مایکروسافت عرضه و توسعه داده شده بودند.
پس زبان سیشارپ، سازگار تر از تمامی زبانها در محیط ویژوال استودیو عمل کرده و از آنجایی که برنامهنویسها به محیط ویژوال استودیو عادت کرده بودند، برای راحتی در زمان کدنویسی خود به سمت یادگیری زبان سیشارپ رفتند، که این مسئله باعث شد تا در مدت زمان به شدت کمی، زبان سیشارپ رتبه اول کارایی و محبوبیت را به خود اختصاص دهد.
در ادامه نسخههای مختلف زبان سیشارپ را به همراه نسخههای برنامه ویژوال استودیو مشاهده میکنیم:
Name: VS2002 | Year: 2002 | Released With .Net 1.0 | C# version 1.0 | |
Name: VS2003 | Year: 2003 | Released With .Net 1.1 | C# version 1.2 | |
Name: VS2005 | Year: 2005 | Released With.Net 2.0 | C# version 2.0 | |
Name: VS2008 | Year: 2007 | Released With.Net 3.5 | C# version 3.0 | |
Name: Vs2010 | Year: 2010 | Released With.Net 4.0 | C# version 4.0 | |
Name: VS2012 | Year: 2012 | Released With.Net 4.5 | C# version 5.0 | |
Name: VS2015 | Year: 2015 | Released With.Net 4.6 | C# version 6.0 | |
Name: VS2017 | Year: 2016 | Net Core 1. | Released With.Net 4.6.2 | C# version 7.0 |
Name: VS2019 | Year: 2019 | Net Core 3. | Released With.Net 4.8 | C# version 8.0 |
همانطور که مشاهده میکنید، تا سال ۲۰۱۵ کمپانی مایکروسافت تنها بسته داتنت فریمروک را عرضه کرده بود، اما در سال ۲۰۱۷ از بسته Net Core. هم رونمایی کرد.
نرم افزار ویژوال استودیو به همراه زبان سیشارپ کاملا رایگان هستند، اما بستههای Net. و Net Core. رایگان نیستند!
البته که به رایگان بعد از دانلود نرمافزار در دسترسی برنامهنویسها قرار گرفته و امکان استفاده از آنها در پروژه وجود دارد، اما بعد از اتمام پروژه و نهایی شدن برنامه، برای استفاده از برنامه، بایستی تا بسته Net. یا Net Core. طبق استفادهای که در برنامه شده توسط کارفرما خریداری شود!
این هوش و ذکاوت مایکروسافت باعث شده تا اکثر برنامهها، بازیها، اپلیکیشنهای موبایلی و حتی سایتهای دنیا که با سیشارپ توسعه داده شدهاند، برای استفاده از این بسته کدهای آماده، آن را به طور کامل از مایکروسافت خریداری و یا مایکروسافت را در پروژه خود سهیم کرده و به آن به ازای هر فروش سود دهند!
قطعا دقت کردید در هنگام نصب اکثر برنامهها بر روی کامپیوتر در مراحل نصب منوی autorun، بسته دات نت فریمورک نیز نصب میشود! اگر آن شرکت، برنامه خود را با مایکروسافت سهیم شده باشد، درنتیجه به ازای هر نصب برنامه یا بازی بر روی سیستمعاملها، مایکروسافت سهم خود را از آن شرکت دریافت میکند.
البته این موضوع برای ما که در ایران زندگی میکنیم صدق نمیکند :)) چرا که به راحتی میتوانید نرمافزار را کرک کرده و از تمامی امکانات آن بصورت کاملا رایگان استفاده کنید.
اما سوال اصلی این است که چرا در خارج از ایران، با وجود اینکه این بستهها رایگان نیستند، باز هم برنامهنویسهای زیادی با این محیط برنامهنویسی (IDE) و این زبان برنامهنویسی به همراه بستههای Net. و Net Core. کدنویسی میکنند؟
پاسخ این است که کمپانی مایکروسافت که همه میدانیم بزرگترین کمپانی نرمافزاری در دنیا است، این تضمین را به برنامهنویسها داده که مطمئن باشید تا زمانی که من هستم، هیچ برنامه IDE ای قوی تر از ویژوال استودیو، و هیچ زبانی کامل تر از زبان سیشارپ بوجود نخواهد آمد و من هرسال با کلی تغییرات و امکانات جدید از ورژنهای جدید رونمایی میکنم!
البته ممکن است در چند سال اخیر با مراجعه به رنکینگ و بررسی زبانهای برنامهنویسی، زبان سیشارپ را در رتبههایی به غیر از اول (در پنج تای اول) ببینید، اما نکته مهم این است که زبان سیشارپ در تمامی پلتفرمها حضور داشته و در تمامی آنها نیز در ۵ رتبه اول است! این یعنی همان قدرت زبان برنامهنویسی سیشارپ که در تمامی حوزهها در رده رقابت با مابقی زبانها است.
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.