Сравнение C#, C++ и Java от создателя C#

postimages/116/2792/full/447814.jpg

появился достаточно давно(уже появился C# 3.0), но многие до сих пор не понимают всех прелестей и нововведений, которые присутствуют в этом языке. Все хорошее познается в сравнении - неправда ли? Вот и я решил сделать краткий обзор языков программирования, с целью их сравнения с новичком:
postimages/116/2792/full/447814.jpg


Сравнение С# и C++:
Андерс Хейлсберг, главный разработчик C#, утверждает: “По-моему мнению, основное отличие между C# и другими языками программирования, особенно Java, заключается в том, что мы постарались остаться как можно ближе к С++”.

Сходства:
»

в С# сохранены основные возможности языка C++, которые не были включены в Java. Это, касается, например, перечислений. Более того в C# для перечеслений обеспечивается безопасность типов.
»

С# заимствовал из С++ понятия операторов и ключевых слов. Обеспечивается перегрузка операторов.
»

В C# реализована возможность добавления блоков ненадежного кода.

Различия:
»

В C# использован комплексный метод программирования. При C++ программерам приходилось объявлять классы в заголовочном файле и реализовать класы в отдельном файле. Заголовочные файлы (Interface Definition Language - язык описания интерфейсов) и сложные интерфейсы не являются необходимыми.
»

В C++ переменные экземпляров объектов должны быть явно инициализированы в конструкторе. В C# это делается заранее.
»

Для массива, размер которого [n-1], в С++ можно устанавливать ссылки на это нереальное значение n - то есть выходить за границы массива. В C# это недопустимо.
»

С++ поддерживает множественное наслдедование классов. Это приводит к определенному усложнению коду. C# не поддерживает множественного наслдедования. Оно может быть реализовано посредством интерфейсов.
»

В C# все классы имеют единый базовый класс. Если класс не является производным от другого класса, он автоматически наследует свойства и члены из System.Object.
»

Код программ на С/С++ компилируется в формат машиннго языка, который будет выполнятся на определенном процессоре и в определенной ОС. Для C# предусмотрена компиляция программ на промежуточный язык IL (Intermediate Language). Код IL может запускаться на любой платформе при использовании среды .NET. С помощью JIT-компилятора он может быть преобразован в машинно-зависимый код для выполнения на платформе .NET

Сравнение C# и Java:

Сходства:

во многом C# похож на Java. В неог включены языковые свойства Java, такие как единичное наследование, интерфейсы, близкий синтаксис и компиляция в промежуточный формат. Но C# отличается от Java использованием свойств, позаимствоннах из Delphi (Андерс Хейлсберг кстати придумал), непосредственной интеграцией с COM (Component Object Model) моделью.
»

Для обоих языков компиляция выполняется в машинно-независимый и независимый от языка программирования программный код, который запускается в рамках управляемой среды выполнения.
»

Концепция JVM (Java Virtual Machine) очень подобна подсистеме CLR (Common Language Runtime) языка C#.
»

Сборщик мусора.
»

Проверка кода перед выполнением.
» Не существует глобальных функций или констант, все они должны принадлежать какому-либо классу.
» С# и Java не используют концепцию заголовочных файлов.
» Оба языка поддреживают внутренние классы.

Различия:

Одно из основных различий между языками заключается в полной интеграции С# со стандартом COM. Разработчики могут наследовать компоненты, созданные с помощью любого языка программирования, который поддерживается .NET. Эти компоненты в дальнейшеммогут сами выступить в роли базовых для программ на других языках.

Код на промежуточном языке MSIL не интерпретируется, а компилируется в машинный код с помощью JIT-компилятора. Вслдествие этого приложения созданные с помощью C#, выполняются быстрее, чем те , что написаны Java.
  • 29 января 2007, 12:56
  • Bald
  • просмотров: ~15716
  • рейтинг: ?

Комментарии (30)

Вы - anonymous, войти ?

можно использовать bbcode-теги
[b]жирный текст[/b]
[i]курсив[/i]
[u]underline[/u]
[s]зачеркнутый текст[/s]
[size=20px]размер шрифта[/size]
всякие изменения текста
[left][/left]
[right][/right]
[center][/center]
позиционирование элементов: картинки, текст и т.д
[url][/url]
[email][/email]
внутри тега [url] помещайте ссылки, а внутри [email] адрес электронной почты;
так же [url] можно использовать в виде:
[url=http://example.com]пример[/url],
[url=http://test.ru][img]http://flickr.com/givemeimg.png[/img][/url]
[code][/code]
[quote][/quote]
внутри тега [code] можно помещать программный код (подстветка попытается включиться автоматически); для выделения цитат используйте [quote]
также можно напрямую указать язык [code=cpp]int i;[/code]
[list][/list]
создаем списки, каждый элемент пишется после [*].

Можно указывать маркер - [list=marker].
возможные маркеры 1(decimal), i(lower-roman), I(upper-roman), a(lower-alpha), A(upper-alpha). Примеры:

[list][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[list=1][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[list=A][*]1 элемент[*]2 элемент[*]3 элемент[/list]
[table][/table]
оформляем таблицу, используя внутренние теги [tr] и [td].
[tr] - строка, [td] - поле в строке,
[table=100%] - можно задавать ширину в процентах, по-умолчанию ширина 100%
[td=2] - можно задавать сколько столбцов входит в это поле. Пример:

[table=50%][tr][td]столбец 1[/td][td]столбец 2[/td][/tr][tr][td]значение 1[/td][td]значение 2[/td][/tr][tr][td=2]сразу 2 столбца[/td][/tr][/table]
[img][/img]
тег для вставки фото или картинок, мы любим картинки. Примеры использования:

[img]http://ya.ru/logo.png[/img],
[img=100x100px]http://ya.ru/logo.png[/img]
[img=fullimg.url]thumbimg.url[/img],
Пожалуйста загружайте картинки на наш сайт, либо вставляйте с бекбоновских ресурсов.
[video][/video]
Проигрывает видео, внутрь вставляем ссылки на видео, поддерживается Play.Ykt.Ru(нужно вставить ссылку на страницу с видео) и tv.ykt.ru(нужно вставить ссылку на адрес файла)