Корпорация передала язык C# на рассмотрение органов стандартизации

Скорее всего разработчики на C++ будут изучать и применять при реализации программных проектов именно C#, потому что в нем сохранены все черты C++, которые им так нравятся

Слова «открытый» и Microsoft редко можно встретить вместе. В ходе разработки серверных операционных систем, браузеров, языков программирования и множества других проектов корпорация доказала, что для достижения успеха открытость ей вовсе не нужна. Зачем же крупнейшему в мире производителю коммерческого программного обеспечения понадобилось создавать новый язык программирования и направлять его спецификации на рассмотрение органов стандартизации?

Итак, в Microsoft разработали язык C# («Си-диез»). Предложены средства динамической компиляции C#, а также широкий набор типов данных и служб, фигурирующих под общим названием «Общая инфраструктура языка» (Common Language Infrastructure — CLI). Комбинация C# и CLI, которая была представлена в июне в рамках второй бета-версии программного пакета для разработчиков .NET, предназначена для создания приложений, серверных апплетов и компонентов Web, а также Web-служб. Большая часть этих средств уже представлена на рассмотрение Европейской ассоциации производителей компьютерных систем (European Computer Manufacturers Association — ECMA) для утверждения в качестве открытого стандарта. Таким образом, всем желающим будет предоставлено право выпускать собственные реализации компилятора C# и CLI.

Если Microsoft удастся осуществить задуманное, C# превратится в универсальную переносимую платформу, каковой сегодня считается Java, но при этом на технологию не будет накладываться никаких лицензионных ограничений. В мире появится еще один новый, мощный и эффективный язык программирования. Правда, Microsoft может еще отказаться от стандартизации C#, однако это маловероятно.

Язык C# является воплощением принятой в Microsoft практики изобретения нового через совершенствование старого. С# объединяет в себе лучшие черты C++, Java, JavaScript (с некоторых пор этот язык называется ECMAScript) и Visual Basic. Унаследованные C# свойства делают его элегантным, безопасным и простым в освоении. Но одного лишь языка недостаточно для создания работающего приложения. Поэтому вместе с C# поставляется целая инфраструктура, которая гарантирует поддержку программами, написанными на C#, стандартного набора типов данных и классов, обеспечивающих выполнение любой операции, начиная с форматирования выходных документов и заканчивая поддержкой сетевого ввода/вывода.

Точно так же, как и разработчики Visual Basic, авторы C# понимают, что далеко не все программное обеспечение пишется гениями и появление «сырого» кода неизбежно. Языку C++ сильно подпортили репутацию многочисленные неудачные, написанные второпях, откровенно наивные программы. В отличие от C++ инструментарий Visual Basic всегда предоставлял новичкам и программистам среднего уровня площадку для безопасных опытов по разработке программ.

Разработчики приложений на C++ часто завидуют программистам, выбравшим Basic. Microsoft интегрировала компонентную объектную модель Component Object Model непосредственно в Visual Basic. Корпорация неоднократно предпринимала попытки упростить разработчикам программ на C++ доступ к COM, но не могла добавить новые ключевые слова к уже стандартизованному языку C++ точно так же, как и к собственному диалекту Basic.

Казалось бы, разработчики на C++, истосковавшиеся по простоте Basic, должны были переключиться на использование этой технологии, но большинство программистов не пожелали писать код на «ущербном», по их мнению, языке. Поэтому скорее всего разработчики на C++ будут изучать и применять при реализации программных проектов именно C#, потому что в нем сохранены все черты C++, которые им так нравятся.

Microsoft CLI является ключевым компонентом .NET. Все типы данных здесь стандартизованы, поэтому любые совместимые с CLI программы, независимо от конкретного языка программирования и платформы, могут напрямую обращаться к данным без их преобразования, которое требует значительных затрат вычислительных ресурсов и повышает вероятность возникновения ошибок. Ближайшим родственником CLI является среда исполнения Java Runtime Environment и ее стандартные классы, однако различия между двумя технологиями принципиальны: CLI поддерживает любой язык программирования. Программисты, занимающиеся проектированием новых приложений, могут писать на тех языках, которые им больше нравятся. Такая возможность имеет очень важное значение для географически распределенных проектов, в реализацию которых вовлечено много разработчиков.

C# и CLI способны принести пользу во многих случаях, но наибольший эффект от этих технологий можно получить после завершения проекта ECMA. Тогда Microsoft перестанет быть единственным владельцем как C#, так и CLI. Вслед за Microsoft у многих компаний появится собственный вариант реализации этих средств. Возможно, их версии окажутся даже более конкурентоспособными. Создание международного стандарта на базе собственных разработок, конечно, не означает полного перехода к единым стандартам и открытому коду, которого так ждут от Microsoft, — это был бы поистине революционный шаг. Однако появление C# и CLI, безусловно, следует рассматривать как шаг в правильном направлении.