С#: що це за мова та де її використовують

С#: що це за мова та де її використовують

Від Білла Гейтса до Fall Guys.

Еще в 80-x студент Гарварда Билл Гейтс вместе со своим другом создали компанию Microsoft. Тогда никто не знал, к чему это приведет. Сегодня численность компании насчитывает 180 тыс. сотрудников. ОС Microsoft Windows распространена на 90% компьютеров.

Гейтс запрограмував хрестики-нулики на шкільному комп’ютері в 13 років. Але в нульових перед Microsoft стояло складніше завдання. У світі з’явився інтернет ― треба було вчитися створювати інструменти для веброзробки. Для цього в компанії зробили платформу .NET, основною мовою якої став C#.

На C# пишуть не тільки для Web. Це ще вікна на Windows, ігри і навіть машинне навчання. Розповідаємо про сфери застосування мови.

Як з’явився С#

С# — об’єктно-орієнтована мова програмування. Її назва читається як «сі шарп». Шарп — нота до-дієз у музиці (дієз = підвищення на пів тон). Тобто C# — це оновлення, покращення мови C.

С — епохальна мова програмування, що виникла в 70-х. Вона змогла замінити асемблер і стала основою для інших мов. Після Сі вийшов ще С++ (сі-плюс-плюс), що підтримує парадигми об’єктно-орієнтованого та узагальненого програмування. С++ — досі популярна мова програмування.

У 1995 році компанія Sun Microsystems створила мову Java. Її зробили з урахуванням граматики С++. Головною «фішкою», що відрізняє цю мову від інших, стало ось що. До перетворення на машинний код програма на Java спочатку перекладалася на байт-код. Це робило мову Java незалежною від апаратного пристрою машини. А ще розробники додали туди підтримку вебу, щоби можна було взаємодіяти з інтернетом: програмувати клієнт-серверні програми, отримувати дані з інтернету та обмінюватися ними.

Microsoft треба було скласти конкуренцію Sun і також працювати з вебом. Мільйони рядків коду в Microsoft були написані внутрішніми мовами (в основному С і С++). Тому просто так перейти на Java було неможливо. Звідси виникла ідея створення платформи для вебу. Так виникла Microsoft.NET Framework.

.NET використовує власну проміжну (між кодом програміста й машинним) мову, що виконує ту ж функцію, що й байт-код для Java-машини. Для.NET можна писати кількома Microsoft-мовами, але C# — основна мова платформи.

Чим С# відрізняється від Java і C++

C#, як і C++ — нащадок мови С: базові конструкції мов схожі. Нове в C# — це об’єктно-орієнтована парадигма: наявність класів і об’єктів. Можна створювати класи з властивостями — робити це синтаксично дуже зручно. Реалізовано основні принципи ООП: наслідування, інкапсуляція та поліморфізм.

С# — це мова, яка має сувору типізацію. У ній є автоматичний збір сміття — програмісту не потрібно дбати про ручне звільнення пам’яті. У мові згодом запровадили динамічне зв’язування, асинхронні методи, шаблони.

Основна відмінність мов С++ та С# — у рівні складності та цілях.

У коді на С++ є специфічні для цієї мови покажчики на змінні, в C# цього немає. У С++ збір сміття ручний, а С# — автоматичний. Код С++ компілюється відразу машинний код, С# — у проміжний байт-код. Нарешті, С# історично пов’язаний з.NET, а С++, як швейцарський ніж, використовують у будь-яких ситуаціях.

Ще одна відмінність — у С# немає множинного успадкування класів. Це допуск ситуації, коли один клас є нащадком одразу кількох різних класів. У С# від цього вирішили відмовитися для простоти.

Синтаксис С# зручніше, ніж С++. Написання коду на C++ вимагає глибокого розуміння, як влаштована ця мова всередині, а C# — набір готових модулів на вирішення завдань.

C# схожий на Java і є його основним конкурентом. Вони розвивають концепції мови C++, водночас спрощуючи її. Ці дві мови дуже близькі за своєю філософією, проте є низка технічних тонкощів, що відрізняють один від одного. Вони пов’язані з тим, що C# розроблялася саме під екосистему Microsoft, тоді як Java замислювалася як відкрите opensource-середовище. Наприклад, це різні підходи до реалізації параметризованих типів, відсутність C# перевірених винятків.

Де застосовують С#

Більшість програм та сервісів для вебу, пов’язаних із продуктами Microsoft, написано на C#. Відомий сайт stackoverflow.com написаний на C# із використанням фреймворку.NET. Подібним методом зроблені сайти Microsoft і Dell.

С# застосовується для розробки десктопних Windows-додатків. Наприклад, Microsoft Visual Studio, Paint.NET написані на C#. Платформа.NET, точніше, Windows Forms лежить у основі Skype, Microsoft Office, Photoshop.

Геймдев-розробники знають про рушій Unity. Він використовується для створення 2D та 3D комп’ютерних ігор. Програмування в Unity дає змогу зосередитися на контенті гри, не торкаючись багатьох технічних деталей. Воно робиться переважно на C#. Ігри Rust, Hearthstone, Fall Guys та інші зроблені в Unity з використанням C#. Крім цього, він дає змогу взаємодіяти з DirectX — набором компонентів для графіки та звуку в іграх.

C# також використовується для розробки мобільних додатків. Є платформи (наприклад, Xamarin), о дають змогу запускати код C# на різних операційних системах, включно з мобільними OS Android та iOS Ось список топових додатків, написаних на Xamarin.

У 2018 до програмного середовища.NET додали бібліотеку ML.NET, яка дає змогу користуватися моделями машинного навчання. Вона поступається бібліотекам на Python за кількістю документації, але зручна та часом використовується в продакшені.

Ще статті
Як працювати з даними: фахівці діляться досвідом.
Розробники радять Telegram- та YouTube-канали, книги та блоги.