Краткая справка
Изначально, Microsoft собиралась выпустить свою версию языка Java (Microsoft Java или J++), однако им пришлось судиться с правообладателями (Sun Microsystems) из-за некоторых спорных моментов. Поэтому руководство приняло решение о необходимости создания собственного языка, который бы отвечал их требованиям и развитие которого они могли бы контролировать. Так и появился С#.
С# был разработан благодаря усилиям Андерса Хейлсберга - создателя компилятора, который лег в основу Turbo Pascal и языка программирования Delphi. Первая версия языка увидел свет в июне 2000 года (возможно, что майкрософт хотела отметить так новое тысячелетие), а окончательная версия вышла в 2002 году вместе с Visual Studio. Сейчас C# стало одним из самых популярных языков программирования, начавшим даже немного опережать своего предшественника.
Философия C#
Говорить о какой-либо философии языка, когда дело касается С#, сложно. Дело в том, что язык с самого начала не был опенсорсным потому, что создавался конкретно для одной известной корпорации во главе с товарищем Гейтсом. Многие понятия и конструкции были заимствованы из других языков, таких как С, С++, Java и.т.д (первые версии языка были очень похожи на Java, хотя теперь C# уже нельзя считать просто клоном этого языка, настолько сильно он ушел вперед).
C# нельзя рассматривать только как язык, это часть большой системы, которая включает в себя ОС Windows, среду разработки Visual Studio (и другие инструменты), ну и, конечно, саму Microsoft, которая обеспечивает поддержку этого языка. C# будет существовать и развиваться, пока существует Microsoft и пока люди пользуются Windows, а это будет ещё очень и очень долго.
Где применяется C#
Поскольку язык принадлежит компании майкрософт, то применяется практически во всех продуктах, которые были разработаны или куплены. Рассмотрим наиболее интересные из них.
Mono - проект, который был посвящен свободной реализации C# и .NET. То есть позволял бы писать на C#, например, для Linux и Mac OS X. На основе Mono была создана XamarinStudio, которая позволяет создавать мобильные приложения на C#, не используя родные(нативные) для языков платформы (Java и Objective-C). Была выкуплена у автора (Мигеля де Иказа) и внедрена в Visual Studio.
DirectX - API для программирования под Windows, чаще всего используется при программировании игр. При помощи DirectX вы можете написать, скажем, отличный трехмерный шутер.
Unity - кроссплатформенный игровой движок, который позволяет создавать двухмерные и трехмерные игры. Очень популярен в среде инди-разработчиков, но берется на вооружение и крупными компания. Так, например, Hearthstone создан на Unity.
Сложность обучения C#
Обучение на C# не представляет большой сложности. Особенно для тех, кто знаком с синтаксисом из C или C++. В любом случае, это не сложнее, чем Java. Для школьников Microsoft издало специальное руководство, которое можно бесплатно скачать с сайта. А на их официальном сайте можно найти справочные данные по языку, видеоуроки, туториалы и многое другое по самым разным областям - от геймдева до построения корпоративных приложений.
Плюсы/минусы C#
Плюсы
- поддержка майкрософтом. В отличии от Java, которой не пошел на пользу переход в собственность Oracle, C# хорошо развивается благодаря усилиям Microsoft;
- в последнее время много совершенствуется. Так как C# был создан позже, чем Java и другие языки, то требовалось очень много доработать. Также это касается популяризации и бесплатности - было обещано открыть исходный код, а инструменты (Visual Studio, Xamarin) стали бесплатными для частных лиц и небольших компаний;
- много синтаксического сахара. Синтаксический сахар - это такие конструкции, которые созданы для облегчения написания и понимания кода (особенно если это код другого программиста) и не играют роли при компиляции;
- средний порог вхождения. Синтаксис похожий на C, С++ или Java облегчает переход для других программистов. Для новичков это также один из самых перспективных языков для изучения;
- Xamarin. Благодаря покупке Xamarin на C# теперь можно писать под Android и iOS. Это, несомненно, большой плюс, так как их собственная мобильная ОС (Windows Phone) не завоевала большой популярности;
- добавлено функциональное программирование (F#);
- большое сообщество программистов;
- много вакансий на должность C# программиста в любом регионе.
Минусы
- ориентированность, в основном, только на .NET (на Windows платформу);
- бесплатность только для небольших компании, учащихся и программистов-одиночек. Для больших команд покупка лицензий обойдется недешево. Поэтому если у вас есть своя фирма, то придется раскошелиться;
- сохранили оператор go to.
Сопутствующие технологии
LINQ (Language Integrated Query) - язык интегрированных запросов, напоминающий SQL, в языках для платформы .NET.
Microsoft Visual Studio - один из самых известных продуктов от Microsoft. Среда разработки, которая позволяет писать код на C#, С++ и некоторых других (при установке плагинов). С недавнего времени вышла версия VS Community для некоммерческого использования и небольших команд разработчиков.
ASP.NET - технология для веб-приложений (и сервисов), продолжение старой технологии ASP (Active Server Pages).
TPL (Task Parallel Library) - библиотека для создания многопоточных приложений.
WCF(Windows Communication Foundation) - среда выполнения и набор API-интерфейсов для создания систем, которые обеспечивают обмен сообщениями между службами и клиентами.
WPF (Windows Presentation Foundation) - система для построения приложений с визуальный интерфейсом для Windows, позволяет добавлять двухмерную трехмерную графику, анимацию и.т.д.
Resharper - плагин для Visual Studio, который позволяет обеспечивает дополнительные функции при написании кода - анализ и подсветка ошибок и опечаток, улучшенную навигацию по коду и статический анализ кода (без выполнения программы)
F# - язык для функционального программирования под .NET