С#: что это за язык и где его используют

С#: что это за язык и где его используют

От Билла Гейтса до 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# этого нет. В С++ сборка мусора ручная, а в С# — автоматическая. Код С++ компилируется сразу в машинный код, С# — в промежуточный байт-код. Наконец, С# исторически связан с .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 написаны на С#. Платформа .NET, а точнее, Windows Forms лежит в основе Skype, Microsoft Office, Photoshop.

Геймдев-разработчики знают о движке Unity. Он используется для создания 2D и 3D компьютерных игр. Программирование в Unity позволяет сосредоточиться на контенте игры, не касаясь многих технических деталей. Оно производится в основном на C#. Игры Rust, Hearthstone, Fall Guys и другие сделаны в Unity с использованием С#. Помимо этого, он позволяет взаимодействовать с DirectX — набором компонентов для графики и звука в играх.

С# также используется для разработки мобильных приложений. Есть платформы, (например, Xamarin), позволяющие запускать код C# на разных операционных системах, включая мобильные OS Android и iOS. Вот список топ-приложений, написанных на Xamarin.

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

курс по теме: PHP-разработчик с нуля до PRO
Вячеслав Епанча Senior PHP Developer в Laba с 6-летним опытом разработки
 

 

Ещё статьи
Платформи для волонтерів, пошук житла, корисні карти та ігри.