div.main {margin-left: 20pt; margin-right: 20pt}C++, C#, C?
Рассмотрим
сначала, без лишних слов, два примера:
namespace HW;
using System;
class HW
{
static
void Main(String[] args)
{
Console.WriteLine(“Hello World!”);
}
}
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#
в
качестве нового открытого стандарта. А для этого необходимо устранить
вышеприведенные недостатки, что, конечно, сводит шансы на продвижение к
минимуму.
Автор: Сергей Коломиец http://www.cil.com.ua E-mail:
srk@i.com.ua
|