Вы ещё только новичок в программировании и не определились с первым языком? Или уже кое-чем овладели и решаете, как развиваться дальше? GBD6737 Тогда вы наверняка уже что-то слышали об этом языке со странной решёткой — C#. В этой статье мы постараемся дать всю необходимую информацию для того, чтобы вы могли оценить, насколько «си-шарп» вам подойдёт.
Что значит С#?
В названии «Си шарп» (англ. sharp — диез) имеет свой «сакральный» смысл. Знак «#» (в музыкальной нотации читается как «диез») означает повышение высоты звука на полтона. С другой стороны, название «C#» получается путём следующей «эволюционной цепочки»: C ? C++ ? C++++(C#), так как символ «#» можно составить из 4-х знаков «+».
История развития языка
Язык программирования С# был разработан в 1993—2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота как язык разработки приложений для платформы Microsoft.
К 2000 году у Microsoft были готовы промышленные версии новых технологий и решений для обмена сообщениями и данными, а также для создания Internet-приложений. Была выпущена и новая платформа для разработки под новые решения — .NET. GBD5516 В ней объединились сразу несколько языков программирования, что было в новинку для того времени.
Ещё одним новшеством платформы .NET была технология активных серверных страниц ASP.NET (Active Server Page). С её помощью можно было относительно быстро разработать веб-приложения, взаимодействующие с базами данных. Специально для ASP.NET был создан язык программирования C#. Да и сама ASP.NET была полностью написана на нём.
Сравнение с другими языками
C# — это язык с C-подобным синтаксисом. Здесь он близок в этом отношении к C++ и Java.
Будучи объектно-ориентированным языком, он много перенял у Java и С++. Как и Java, C# изначально предназначался для веб-разработки, и примерно 75% его синтаксических возможностей такие же, как у Java. C# также называют «очищенной версией Java». Ещё 10% наш герой позаимствовал из C++ и 5% – из Visual Basic. Оставшиеся 10% C# — это реализация собственных идей разработчиков. Объектно-ориентированный подход позволяет строить с помощью C# крупные, но в то же время гибкие, масштабируемые и расширяемые приложения.
C# уже давно поддерживает много полезных функций:
- инкапсуляция,
- наследование,
- полиморфизм,
- перегрузка операторов,
- статическая типизация.
При этом он всё ещё активно развивается, и с каждой новой версией появляется всё больше интересного — например лямбды, динамическое связывание, асинхронные методы и т.д.
По сравнению с другими языками C# довольно молод, но в то же время он уже прошёл большой путь. Первая версия языка вышла вместе с релизом Microsoft Visual Studio .NET в феврале 2002 года. Текущей версией языка является версия C# 8.0, которая вышла в сентябре 2019 года вместе с релизом .NET Core 3.
Роль платформы .NET
Когда говорят C#, нередко имеют в виду технологии платформы .NET (Windows Forms, WPF, ASP.NET, Xamarin). И наоборот, когда говорят .NET, нередко имеют в виду C#. Однако, хотя эти понятия связаны, отождествлять их неверно. Язык C# был создан специально для работы с фреймворком .NET, однако само понятие .NET несколько шире.
Когда-то Билл Гейтс сказал, что .NET — это лучшее, что сделала компания Microsoft. У него есть весомые основания так считать. Фреймворк .NET представляет мощную платформу для создания приложений. Вот его киллер-фичи:
- Поддержка нескольких языков. В основе .NET — общеязыковая среда исполнения Common Language Runtime (CLR), благодаря чему платформа поддерживает несколько языков: наряду с C# это VB.NET, C++, F#, а также различные диалекты других языков, привязанные к .NET, например, Delphi.NET. Код на любом из этих языков компилируется в сборку на общем языке CIL (Common Intermediate Language) — своего рода ассемблер платформы .NET. Поэтому можно сделать отдельные модули одного приложения на разных языках.
- Мощная библиотека классов. .NET представляет единую для всех поддерживаемых языков библиотеку классов. Какое бы приложение мы ни собирались писать на C# — текстовый редактор, чат или сложный веб-сайт — так или иначе мы задействуем библиотеку классов .NET. GBD7099
- Разнообразие технологий. Общеязыковая среда исполнения CLR и базовая библиотека классов — это основа для целого стека технологий, которые разработчики могут задействовать при создании разных приложений. Например, для баз данных в этом стеке имеется технология ADO.NET и Entity Framework Core. Для графических приложений с насыщенным интерфейсом — технологии WPF и UWP. Для более простых графических приложений — Windows Forms. Для разработки мобильных приложений — Xamarin. Для создания веб-сайтов - ASP.NET и т.д.
.NET Framework и .NET Core
.NET долгое время развивался под названием .NET Framework — преимущественно как платформа для Windows. Но с 2019 она больше не развивается — последней версией этой платформы стала .NET Framework 4.8.
В 2014 Microsoft начал выпускать альтернативную платформу - .NET Core, которая должна была вобрать в себя все возможности устаревшего .NET Framework и добавить новую функциональность. Поэтому следует различать .NET Framework, который предназначен преимущественно для Windows, и кроссплатформенный .NET Core.
Преимущества и недостатки языка C#
У «шарпа» выделяют много преимуществ:
- Поддержка подавляющего большинства продуктов Microsoft
- Бесплатность ряда инструментов для небольших компаний и некоторых индивидуальных разработчиков — Visual Studio, облако Azure, Windows Server, Parallels Desktop для Mac Pro и др.
- Типы данных имеют фиксированный размер (32-битный int и 64-битный long), что повышает «мобильность» языка и упрощает программирование, так как вы всегда знаете точно, с чем вы имеете дело.
- Автоматическая «сборка мусора» Это значит, что нам в большинстве случаев не придётся заботиться об освобождении памяти. Вышеупомянутая общеязыковая среда CLR сама вызовет сборщик мусора и очистит память.
- Большое количество «синтаксического «сахара» — специальных конструкций, разработанных для понимания и написания кода. Они не имеют значения при компиляции.
- Низкий порог вхождения. Синтаксис C# имеет много схожего с другими языками программирования, благодаря чему облегчается переход для программистов. Язык C# часто признают наиболее понятным и подходящим для новичков.
- С помощью Xamarin на C# можно писать программы и приложения для таких операционных систем, как iOS, Android, MacOS и Linux;
- Сегодня в любом регионе России имеется немало вакантных мест на должность C#-программиста.
Но есть у C# и некоторые недостатки:
- Приоритетная ориентированность на платформу Windows;
- Язык бесплатен только для небольших фирм, индивидуальных программистов, стартапов и учащихся . Крупной компании покупка лицензионной версии этого языка обойдётся в круглую сумму.
Сколько времени требуется на обучение C#
C# не представляет сложности для новичков, так как его сравнительно легко изучить и понять. На просторах интернета можно найти множество курсов и онлайн-школ по обучению С#, предлагающих обучение продолжительностью от 1 до 6 месяцев. GBD8186 Также существуют экспресс-курсы для «чайников», где новичков обучают основам за пару дней. Вообще, C# намного проще будет освоить, если вы уже знаете C, C++ или Java.
Востребованность на рынке
C# на протяжении долгого времени уверенно держит позиции в рейтинге наиболее востребованных на рынке разработки языков. Сначала им интересовались только разработчики под Windows, но затем C# научился работать на Mac OS, Linux, iOS и Android. А после того как код платформы открыли для всех желающих, были сняты практически все возможные ограничения в применении C#. В результате язык активно развивается и применяется всё шире. Его часто рекомендуют к изучению в качестве одного из базовых для разработчиков любого профиля.
Инструментарий C# позволяет решать широкий круг задач, язык действительно очень мощный и универсальный. На нём часто разрабатывают:
- веб-приложения,
- игры,
- мобильные приложения для Android или iOS,
- программы под Windows.
Перечень возможностей разработки практически не имеет ограничений благодаря широчайшему набору инструментов и средств. Конечно, всё это можно реализовать при помощи других языков. Но некоторые из них узкоспециализированные, а в некоторых придётся использовать дополнительные инструменты сторонних разработчиков. В C# решить широкий круг задач возможно быстрее, проще и с меньшими затратами времени и ресурсов.
Что касается зарплаты программистов на C#, то по статистике Хабр.Карьеры она обычно варьируется в диапазоне от 60 до 200 тысяч рублей и в среднем составляет 100 тысяч рублей .
Что дальше?
Любой программист, конечно, найдёт что-то интересное для себя в языке C#. И он не стоит на месте, список приятных особенностей C# постоянно растёт, с каждой новой версией язык становится только лучше. Если вас заинтересовал C#, его можно основательно изучить на факультете разработки игр Geek University, вместе со множеством других интересных дисциплин. GBD3810 Кроме того, языку C# у нас посвящена отдельная профессия «Разработчик C#», где можно сосредоточиться только на этом языке и в дальнейшем уже выбирать интересующую сферу.
P.S. Странные символы в статье — это не клавиатура у редактора сломалась, а это у GeekBrains новый розыгрыш VK! Для начала игры напишите “geekbrains” в комментариях под постом по этой ссылке. А затем отправляйте коды из этой статьи в личку сообществу GeekBrains, чтобы получить больше шансов на выигрыш!