CSharp и другие языки программирования…

Октябрь 10, 2006

qweпоявился достаточно давно(уже появился C# 3.0), но многие до сих пор не понимают всех прелестей и нововведений, которые присутствуют в этом языке. Все хорошее познается в сравнении — неправда ли? Вот и я решил сделать краткий обзор языков программирования, с целью их сравнения с новичком:

Сравнение С# и 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.

Об остальных различиях и фишках напишите в комменты.

ССылки в тему: смотри в С#фере…

Зы: планирую в будущем написать пару статей на тему архитектуры .NET, так что ждите…

Blogus tags : ,,

Technorati : , ,

Реклама