Язык программиирования С#. Достоинства и недостатки, основные возможности. Сопоставление с другими языками программирования

Автор: Перцев С.А., Островский В.В., Чернова С.В.

Журнал: Экономика и социум @ekonomika-socium

Рубрика: Основной раздел

Статья в выпуске: 3 (22), 2016 года.

Бесплатный доступ

В статье рассматривается язык программирования С#. Приводятся основные достоинства и недостатки и возможности данного языка программирования. Так же производится анализ схожести с такими языками как Java и С++.

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

Короткий адрес: https://sciup.org/140118539

IDR: 140118539

Текст научной статьи Язык программиирования С#. Достоинства и недостатки, основные возможности. Сопоставление с другими языками программирования

Прежде, чем перейти к анализу достоинств и недостатков языка программирования C#, рассмотрим его историю.

«Предком» языка C#, стал язык C, который был изобретен на основе языка B в 1972 году. Авторами языка программирования стали Кен Томпсон, а также Д. Ритчи (Dennis Ritchie), В варианте C язык B расширился за счет явного использования типов, структур и ряда новых операций.

Дальнейшее развитие язык получил в 1984 году, Б. Страуструп (Bjarne Stroustrup, Bell Labs) выступил с проектом языка С++ - объектно ориентированного расширения языка C, в котором вводится понятие класса как объекта данных.

Спустя долгий срок в 2000 году, корпорация Microsoft выпустила C# («Си шарп»), основным постулатом которого является высказывание: «всякая сущность есть объект». Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода.

Так же необходимо отметить, что язык программирования С# так же унаследовал многое от языка Java, хотя тот и не входит в основную ветвь его развития (В-С-С++), но тем не менее большая часть синтаксиса унаследована языком C# именно от Java.

Язык С# прошел долгий путь к выходу в свет. Несмотря на то, что синтаксис и особенности реализации унаследован языком программирования C# от «прародителей» (С++, Java), возможности этого языка программирования не ограничиваются ими.

К принципиально важным решениям, которые были реализованы, можно отнести следующие:

  • -    компонентно-ориентированный подход к программированию;

  • -    свойства как средство инкапсуляции данных );

  • -    обработка событий (имеются расширения, в том числе в части обработки исключений, в частности, оператор try);

  • -    унифицированная система типизации (соответствует идеологии Microsoft .NET в целом);

  • -    делегаты (delegate – развитие указателя на функцию в языках C и C++);

  • -    индексаторы (indexer – операторы индекса для обращения к элементам класса-контейнера);

  • -    перегруженные операторы ;

  • -    оператор foreach (обработка всех элементов классов-коллекций);

  • -    механизмы boxing и unboxing для преобразования типов;

  • -    атрибуты (средство оперирования метаданными в COM-модели);

  • -    прямоугольные массивы (набор элементов с доступом по номеру индекса и одинаковым количеством столбцов и строк).

На данный момент, С# успешно конкурирует с Java и С++ по популярности. Рассмотрим сходства этих языков.

Для начала перечислим сходства языков программирования C# и Java. Оба языка объектно-ориентированные и предполагают единственность наследования. Так же особенностями, которые делают схожими языки программирования C# и Java, являются механизмы интерфейсов, обработки исключительных ситуаций, нитей (threads). Оба языка имеют строгую типизацию и динамическую загрузку кода при выполнении программы.

От языка программирования C++, языком C# унаследованы механизмы: «перегруженные» операторы, небезопасные арифметические операции с плавающей точкой и множество других особенностей синтаксиса.

Исходя из особенностей языка программирования C#, сформулируем основные преимущества данного языка.

  • -    Язык программирования C# претендует на подлинную объектную ориентированность (всякая языковая сущность претендует на то, чтобы быть объектом);

  • -    Компонентно-ориентированный подход к программированию, способствующий меньшей машинно-архитектурной зависимости результирующего программного кода, гибкости, переносимости и легкости повторного использования (фрагментов) программ;

  • -    Ориентация на безопасность кода (в сравнении с С и С++);

  • -    Унифицированная система типизации;

  • -    Расширенная    поддержка    событийно-ориентированного

программирования.

Несмотря на достоинства, язык С# имеет некоторые недостатки, такие как:

  • -    Довольно сложный синтаксис (75% из Java, 10% из C++, 5% из Visual Basic);

  • -    Мало свежих концептуальных идей (приблизительно менее чем 10% конструкций языка);

  • -    Относительно невысокая производительность (намного медленнее, чем язык C, но сравним с Java);

  • -    Не кросс-платформенный язык. Так как С# разработан компанией Microsoft, то и работает он только под операционной системой Windows, хотя в данный момент уже разрабатывается кросс-платформенная версия данного языка.

Ввиду объектно-ориентированного дизайна, C# является хорошим выбором для быстрого конструирования различных компонентов - от высокоуровневой бизнес логики до системных приложений, использующих низкоуровневый код. Также следует отметить, что C# является и Web ориентированным - используя простые встроенные конструкции языка компоненты могут быть преобразованы в Web сервисы. Дополнительными возможностями языка C# - использование Web технологий, таких как: XML (Extensible Markup Language) и SOAP (Simple Object Access Protocol). Среда разработки Web сервисов позволяет программисту смотреть Web приложения, как на родные C# объекты, что дает возможность разработчикам соотнести имеющиеся Web сервисы с их познаниями в объектно-ориентированном программировании.

Список литературы Язык программиирования С#. Достоинства и недостатки, основные возможности. Сопоставление с другими языками программирования

  • Visual C#. NET Step by Step, Microsoft Press, 2003. ISBN: 0-7356-1909-3.
  • Уэйт, М. Язык С. Руководство для начинающих./М. Уэйт, С. Прага, Д. Мартин. -М.: Мир, 1995. -521с.
  • Фридман, А.Л. Язык программирования С++/А.Л.Фридман. -М.: Бином, 2006. -523с.
  • Лахатин, А.С. Языки программирования. Учеб. пособие/А.С. Лахатин, Л.Ю. Искакова. -Екатеринбург, 1998. -548с.
Статья научная