On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

C# - разберемся, что же это

Сергей Коломиец

Рассмотрим сначала, без лишних слов, два примера:

Пример 1.

namespace HW;
using System;
class HW
{
static void Main(String[] args)
{
Console.WriteLine("Hello World!");
}
}

Пример 2.

package HW;
import java.lang.*
class HW
{
public static void main(String[] args)
{
System.out.println("Hello World!"
}
}

Ну что, найдете 10 отличий? С трудом: Как видим, тенденция сближения различных языком программирования здесь проявляется как нигде отчетливо. Первый пример написан на новом языке C#, разработанном фирмой Microsoft, второй - на старой доброй Java.
Язык C# был выпущен в середине 2000 года группой программистов компании Microsoft под руководством небезызвестного в програмистских кругах человека Anders Hejlsberg. Того самого, кто создал Turbo Pascal и Delphi. 
Хотя это и не признается официально, но язык C# явно создавался как альтернатива и как прямой конкурент Java. Это отчетливо видно как из приведенных примеров, так и из более детального анализа структуры двух языков.
Главная особенность нового языка (как и основное его достоинство) - это обилие средств для разработчика приложений - простой доступ к компонентам и низкоуровневым библиотекам платформы Win32, возможность использования системы обмена сообщениями с объектами и компонентами на базе XML и протокола SOAP.
Основой языка является, несомненно, C++. Однако, некоторые детали были позаимствованы из языка Java, как то пространства имен etc. Еще одно перекочевавшее из Java достоинство, это система автоматического управления памятью. На систему возложены функции выделения памяти для различных классов, и ее освобождения после прекращения использования классов. Реализация интерфейсов в C# идентична реализации в языке Java. 
Следующие возможности были взяты из старых языков программирования, например, из Паскаля. Первая - четкая типизация переменных. При описании переменной необходимо указать ее тип, чего не было в С++. Вторая - автоматическая инициализация переменных. Вот этой возможности и нет в Java. 
Технологии COM+ и Windows API полностью поддерживаются C#. Так как язык C# сам не содержит библиотек классов, то в нем появилась возможность использования библиотек других систем программирования, разработанных фирмой Microsoft, как, например, Visual Basic.
Но, не все хорошо, как кажется на первый взгляд. Первый, самый значительный недостаток - полное отсутствие кроссплатформенности, то есть программы на C# могут быть использованы только в системах на основе Win32. 
Второй недостаток - в среде исполнения, роль которой играет IL Common Language Runtime. Виртуальная машина Java имеет достаточную производительность, и неизвестно, будет ли выше эффективность первой. Ну, и третье - Java обладает значительно большим количеством средств для разработки многопоточных приложений.
Системные требования: пока доступна версия только под Windows 2000. Обязательно наличие IIS, Internet Explorer 5.5 и библиотеки MDAC 2.6. Пакет можно загрузить с сайта Microsoft: http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml
Каковы же перспективы этого хорошего начинания? Java, на сегодняшний день является стандартом, и этого не может отрицать даже Microsoft. И последним понадобится много времени, сил и денег для продвижения своего C# в качестве нового открытого стандарта. А для этого необходимо устранить вышеприведенные недостатки, что, конечно, сводит шансы на продвижение к минимуму.



Литература по C & C++