|
@@ -0,0 +1,67 @@
|
|
|
+# CSharp
|
|
|
+C# — это язык программирования от компании Microsoft. Изначально его создавали для проектов под Windows,
|
|
|
+но теперь это по-настоящему универсальный язык: на нём пишут игры, десктопные приложения, веб-сервисы, нейросети и даже графику для метавселенных.
|
|
|
+___
|
|
|
+
|
|
|
+___
|
|
|
+**Кто и для чего использует C#**
|
|
|
+C# — пятый по популярности язык программирования в мире. Его используют банки, диджитал-агентства, провайдеры связи и крупные IT-компании. Вот что пишут на C# российские и зарубежные корпорации:
|
|
|
+Microsoft — приложения для Windows и Xbox.
|
|
|
+Tesla — корпоративные веб-сервисы и программы.
|
|
|
+Stack Overflow — серверную логику сайтов.
|
|
|
+Сбербанк — 3D-графику и программы виртуальной реальности.
|
|
|
+Ozon — складские и логистические системы.
|
|
|
+«Яндекс» — приложения для автоматизации продаж.
|
|
|
+___
|
|
|
+**Сферы применения C#.**
|
|
|
+*Игры и виртуальная реальность на Unity*
|
|
|
+Если вы увлекаетесь разработкой игр или просто играете в игры, то наверняка слышали про Unity. Это такая среда, где можно быстро собрать игру из готовых объектов, а потом запустить почти на любом компьютере.
|
|
|
+Процесс разработки выглядит так: вы продумываете содержание игры и её сюжет, а Unity берёт на себя графику, физику, звук.
|
|
|
+___
|
|
|
+**Программы для Windows**
|
|
|
+Поскольку C# — это язык от Microsoft, на нём удобно писать настольные приложения для Windows. Для этого разработчики придумали специальную платформу — называется .NET Framework.
|
|
|
+Она умеет переводить код из понятного человеку в понятный процессору — то есть компилировать.
|
|
|
+
|
|
|
+Преимущество платформы в том, что она может исполнить любую C#-команду на любом процессоре — а на Windows работает не меньше тысячи разных моделей.
|
|
|
+Если бы не .NET, пришлось бы компилировать код под каждый компьюер отдельно.
|
|
|
+А ещё .NET поддерживает много плагинов, библиотек и шаблонов для наглядной разработки интерфейсов — это фактически целый мир и экосистема для программиста на Windows.
|
|
|
+___
|
|
|
+**Кросс-платформенные приложения**
|
|
|
+С помощью фреймворка Mono один и тот же С#-код можно запускать в разных десктопных системах — например, в Linux или macOS. А если код надо запустить на мобильных платформах, используют версию Mono для смартфонов — Xamarin.
|
|
|
+___
|
|
|
+**Нейросети**
|
|
|
+В любое приложение на C# можно встраивать алгоритмы машинного обучения — например, компьютерное зрение, распознавание лиц или музыкальные рекомендации в плеере. Для этого не надо глубоко разбираться в математике или Data Science.
|
|
|
+Достаточно подключить специальную библиотеку от Microsoft — ML.NET, — и она возьмёт все внутренности на себя.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+А ещё с ML.NET работает кросс-платформенность — то есть алгоритмы в теории можно запускать вообще где угодно. Например, на банкомате, если надо сделать авторизацию по лицу.
|
|
|
+___
|
|
|
+**Преимущества C#**
|
|
|
+1. Независимость от системных требований. Программисту не надо адаптировать программу под разные платформы и системы — за него это делает виртуальная машина, вшитая в .NET Framework.
|
|
|
+В итоге один и тот же код можно запускать на любых устройствах — смартфонах, компьютерах, серверах, банкоматах и даже умных часах.
|
|
|
+
|
|
|
+2. Отличная совместимость с Windows.
|
|
|
+Так же как Swift идеально подходит для программирования под экосистему Apple, C# прекрасно вписывается в экосистему Windows.
|
|
|
+
|
|
|
+3. Управление памятью. Чтобы программа работала стабильно, её надо иногда чистить от ненужных объектов, ссылок, кэша и прочего мусора.
|
|
|
+В C# это происходит автоматически — разработчику не надо следить за расходом памяти, бороться с её утечками или удалять мёртвые куски кода.
|
|
|
+
|
|
|
+4. Строгая типизация. Когда вы объявляете переменную в C#, надо сначала указать, что в ней лежит — строка, число или массив.
|
|
|
+Так разрабатывать чуть дольше, зато ваш код работает предсказуемо — числа взаимодействуют с числами, строки со строками и так далее.
|
|
|
+В языках со слабой типизацией свободы и драйва больше, но есть шанс пропустить ошибку, которая всплывёт в готовой программе.
|
|
|
+
|
|
|
+5. Большое сообщество. На С# пишут более миллиона программистов по всему миру. В соцсетях полно чатов и сообществ «шарпистов», где можно задать вопрос, обсудить сложную тему или найти готовое решение.
|
|
|
+В теории можно даже найти ментора, который поделится знаниями и поможет быстрее освоить язык.
|
|
|
+___
|
|
|
+**Недостатки языка**
|
|
|
+Есть у C# и недостатки, причём довольно серьёзные, — давайте разберём и их тоже.
|
|
|
+
|
|
|
+1. Скорость. Когда мы запускаем программу на C#, код исполняется не сразу, а сначала адаптируется под нужное железо. Так мы охватываем больше платформ, но теряем в скорости — программе нужно сделать двойную работу, чтобы просто стартовать. Из-за этого интерфейсы на С# иногда подтормаживают при первом запуске.
|
|
|
+
|
|
|
+2. Безопасность. Эксперты говорят, что код на C# легко декомпилировать — то есть перевести из машинного обратно в человеческий.
|
|
|
+Проблема в том, что так программу может легко прочитать хакер или конкурент — и изучить её уязвимости, украсть фрагменты кода или написать для неё вредоносный софт.
|
|
|
+___
|
|
|
+**Зарплаты программистов на C#**
|
|
|
+По данным «Хабр Карьеры», средняя зарплата разработчиков на C# составляет 162 000 рублей в месяц.
|
|
|
+Это не самые космические цифры для IT, но вполне приличные — примерно столько же получают программисты на Java, Python, PHP и других популярных языках.
|