46
большинство из разработчиков, программирующих на ЯПВУ общего
назначения, выбирают между C# и Java. В [34] Java назван основным
конкурентом C#. При этом справедливо сказать, что C# – это
усовершенствованная версия языка С++, «обернутая» в .NET.
ЯПВУ C# в полной мере реализует возможности технологии,
определенной фреймворком .NET, основой которого является применяемая
общеязыковая среда исполнения, называемая CLR
(CommonLanguageRuntime). Программный код под CLR, является
управляемым. Это означает, что CLR наделен возможности
автоматического управления памятью во время выполнения программы.
Кроме того, эта общеязыковая среда исполнения оснащена своим
сборщиком мусора – GC (GarbageCollector), который выполняется вместе с
исполняемой программой и позволяет освобождать участки оперативной
памяти, который были заняты объектами, ссылки на которые больше не
актуальны. Такой механизм позволяет программисту больше не
контролировать своевременное высвобождение памяти, как это
вынуждены делать, например, разработчики, программирующие на С++.
Справедливо заметить, что разработчики Microsoft оснастили такой
возможностью и C++, расширение которого называется C++/CLI – эта
версия языка поддерживает использование .NETи может как использовать
управляемый код, так и обходиться без него – как «по старинке».
ЯПВУ C# нацелен на повышение продуктивности разработчиков.
Для этого в языке соблюдается баланс между простотой,
выразительностью и производительностью [5]. Можно перечислить
основные возможности ЯПВУ C#, которые делают его столь
универсальным и востребованным:
Унификация системы типов – выражается в инкапсулированных
единиц данных и функций, наследованных от общего базового типа
(System.Object), что позволяет пользоваться одним общим набором
функциональности.