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

Намерения Microsoft ясны как белый день: корпорация хочет опрокинуть «чашку» Java.

По мнению специалистов Тест-центра CRN, Microsoft, создавая объектно-ориентированный язык программирования C#, готовит почву для того, чтобы лишить Java имиджа основного инструмента разработки кросс-платформных прикладных программ. С внедрением C# платформа разработки Microsoft должна стать более открытой и приобрести новые качества, повышающие производительность труда разработчиков, использующих C++ и специализирующихся в области построения Web-приложений и служб.

Анонсированный в июне 2000 г., C# войдет в пакет разработки приложений Visual Studio.Net, выпуск которого намечен на февраль 2002 г. В Microsoft рассчитывают, что, по мере того как разработка ПО все более будет смещаться в сторону Web-служб, где в настоящее время доминирует Java 2 Enterprise Edition (J2EE), язык С# и пакет Visual Studio.Net станут ключевыми составляющими платформы .Net, которая будет конкурировать с концепцией Sun, получившей название Open Net Environment (ONE).

Из-за Java отношения между Microsoft и Sun накалились. Еще в 1997 г. Sun обвинила Microsoft в нарушении лицензии на Java. В результате долгих судебных разбирательств права Microsoft по использованию Java были ограниченны.

В конце июля 2001 г. Microsoft решила не обеспечивать совместимость Windows XP с виртуальной Java-машиной (JVM). Вместо этого Microsoft предложила отдельный модуль, который можно встроить в новую ОС. А в середине октября Microsoft представила бета-версию ПО Visual J#.Net — инструмента построения Web-служб на базе XML в среде .Net, сообщив при этом, что прикладные программы и службы, построенные с помощью Visual J#.Net, будут работать только на платформе .Net, а не с любой JVM, и что Visual J#.Net не одобрен и не принят в Sun.

И все же, как считают специалисты Тест-центра, с вводом C# и Visual Studio.Net компания Microsoft берет на вооружение новую философию разработки, поставляя платформно-независимые службы, и независимую от языка среду исполнения. Цель Microsoft — воспрепятствовать росту популярности Java и смягчить напряженность в отношениях с разработчиками, которые чувствуют себя заложниками насаждаемых ею Windows-решений.

«Microsoft построила с нуля новую платформу, которая предоставляет функции, привлекательные для разработчиков на J2EE, — отметил Эндрю Браст, президент фирмы Progressive Systems Consulting. — Настоящая битва идет между J2EE и .Net как платформой Web-служб».

Microsoft собирается превзойти Java, первой предложив простой путь построения Web-служб с помощью C# и механизма Common Language Runtime (CLR). Каждая прикладная программа, написанная на C# или другом языке, соответствующем стандарту Common Language Specification (CLS), должна генерировать код MSIL (Microsoft Intermediate Language) — аналог байт-кода Java — и выполняться в любой среде. CLR можно использовать с теми средствами разработки, которые отвечают спецификации MSIL платформы .Net. Поставщикам языков программирования нужно лишь модифицировать свои компиляторы, обеспечив поддержку CLR и CLS. Усовершенствовав свои продукты, они могут обеспечить взаимодействие со службами CLR.

Компания ActiveState, поставщик языка Perl, разработала версию Visual Perl, которая интегрируется в Visual Studio как встраиваемый модуль через утилиту преобразования платформы .Net. Хотя это хороший знак для программистов, фирме Microsoft предстоит пройти еще долгий путь, прежде чем ее новая платформа получит широкое признание у корпоративных разработчиков и сообщества приверженцев открытого кода, многие из которых покинули ее лагерь, обратившись к Java.

ANSI C++ был основным языком разработки корпоративного ПО, но в новой среде Web-служб он уже не столь хорош. В нем отсутствует синтаксис для свойств и событий, он содержит незащищенные средства, которые могут затруднить кодирование. Sun устранила подобные недостатки в Java.

Однако язык C# не означает полного отрицания C++. Microsoft добавила в C# отсутствующие в ANSI-версии расширения, которые позволяют разработчикам создавать гибридные программы на C++, работающие в среде .Net. Часть прикладных программ на базе C++ может исполняться непосредственно под управлением Windows, а часть — с помощью CLR.

Синтаксическая структура C# подобна Java и C++. Новый язык не позволяет создавать классы объектов, однако Microsoft заявила, что скоро дополнит C# библиотекой шаблонов под названием Generics, которая будет работать аналогично Standard Template Library в C++.

Программы на C# компилируются в блоки, которые, по сути, представляют собой динамически подключаемые библиотеки (Dynamic Link Libraries, DLL). Эти библиотеки помещаются затем в тот же каталог, что и исходный код, и управляются средой.

Первые тесты бета-версии Visual Studio.Net свидетельствуют о том, что в CLR сравнительно немного ошибок. По мнению Тима Хакэби, президента компании InterKnowlogy, разработчика ПО и партнера Microsoft, среда исполнения устойчива. «Мы проводим испытания программы для одной из компаний, входящей в список Fortune 500, и ПО работает очень хорошо», — объяснил он, добавив, что система может быть запущена в эксплуатацию даже до официального выпуска Visual Studio.Net.

Единственное нарекание, высказанное Хакэби в отношении среды C# и Visual Studio.Net, заключается в том, что ее изучение может оказаться сложным для начинающих программистов. «Быть может, «облегченная» или «начальная» версия Visual Studio стала бы как раз тем, что нужно», — полагает он.

Эту точку зрения разделяет Джон Пирэйно, старший технический инструктор консалтинговой фирмы Information Management Group. «Разработчиков на Visual Basic нужно будет познакомить с концепцией объектно-ориентированного программирования, поскольку платформа .Net построена именно на такой модели», — сказал он.

По словам Ника Ходаппа, менеджера Microsoft по сбыту продукции, в корпорации прекрасно понимают, что начинающим программистам будет трудно перейти на .Net. Чтобы облегчить этот процесс, планируется предложить различные версии Visual Studio.Net. «В Microsoft ожидают, что к концу этого года на платформу Visual Studio.Net перейдет более миллиона разработчиков», — заявил он.

Подобно Java Micro Edition, будущие поколения C# и CLR планируется применять в мобильных устройствах. Используя технологию Mobile Web Forms, устройства типа сотового телефона с протоколом WAP можно через браузер подключить к приложениям и службам, работающим на сервере .Net. Сегодня для создания прикладных программ для таких устройств используют встроенные в Windows CE версии Visual Basic, C++ и ассемблер.

«В будущем приложения, написанные на C#, будут способны выполняться прямо в устройстве с помощью встроенной версии CLR, — убежден Ходапп. — Это откроет поле деятельности для разработчиков, не имеющих опыта создания ПО для портативных устройств».

«Microsoft хочет создать C# имидж ПО, не зависящего от поставщика, — заметил Браст из Progressive Systems. — Разработчикам придется занять выжидательную позицию, чтобы посмотреть, как будет развиваться ситуация».

C#/Visual Studio.Net
За: Против:
  • Переход к открытым стандартам.
  • Объектно-ориентированная платформа.
  • Расширенные функции программирования.
  • Использование Web-службами стандарта SOAP.
  • Сложность освоения для начинающих программистов.
  • Отсутствие поддержки библиотек шаблонов.
  • Трудности в работе с прикладными программами, написанными на различных языках.
  • Отсутствуют средства, обеспечивающие совместимость с унаследованными системами и ПО третьих фирм.