Язык программирования C#

Краткая справка

Изначально, 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