.net vs c++

by Темных Сергей 26.03.2009 20:45:00

Текст ориентирован на уровень менеджеров, которым важно знать, что в конечном итоге дает технология .Net по сравнению с C/C++/Дельфи и т.д.


Я попытался уйти от технических деталей (Garbage Collector, Attribute-ы, Reflection) к каким-то более понятным для менеджера (или просто неподготовленного человека) концепциям.


1.Уменьшение объема написания собственного кода
Полнофункциональная стандартная библиотека (в C++ — многократно меньше, необходимо использование сторонних библиотек) — все уже написано до нас.

2.Облегчается использование сторонних библиотек и разработка сложных программ, состоящих из нескольких модулей

Стандартизированы базовые вещи
В .Net-е уже стандартизовано большое количество базовых сущностей.
В C++, например, много времени уходит на борьбу со строками в различных библиотеках в связи с их неунифицированностью. Например, в С++ строки бывают (char*, wchar*, TCHAR*, std::string, std::wstring, LPOLESTR, BSTR, CString, ATL::CString, WTL::CString) и это только верхушка айсберга.

Встроенная в язык поддержка модулей
Благодаря полноценной инкапсуляции кода и встроенной в язык поддержке модулей уменьшаются наведенные эффекты при использовании сторонних библиотек и упрощается стыковка различных частей программы, написанных разными программистами.

3.Упрощение отладки и сопровождения
Благодаря верифицируемому (Managed) коду и встроенному Stack Trace-у, при тестировании, а также при работе у пользователя, в случае ошибки выдается полное описание ошибки и трасса вызова, а не непонятное сообщение «Access violation».

4.Отсутствуют утечки памяти и ресурсов.
Наличие сборщика мусора позволяет полностью избежать утечек памяти, и значительно уменьшить вероятность утечки ресурсов.

5.Быстрая компиляция
Простой язык, и наличие полноценных модулей обеспечивает мгновенную компиляцию.

6.Быстрая разработка первых прототипов
Благодаря атрибутам, reflection-у, богатой стандартной библиотеке и общим концепциям сильно уменьшается время разработки первых прототипов.

7.Простая стыковка с унаследованным кодом.
Из .Net-а легко можно стыковаться с любым старым кодом, написанном на языках VB, С++ и т.д.

8.С начала 2002 г. .Net позиционируется как основное средство разработки «серьезных» приложений
Microsoft прекратило развитие языка C++ в этом направлении 4 года назад.

Уже год новые библиотеки для Windows-а от Microsoft-а и сторонних разработчиков выходят в первую очередь для .Net-а, а остальные задерживаются или вообще не выходят.

9.Упрощается разработка сложных объектно-ориентированных программ
Встроенная компонентная модель позволяет получить доступ к любому объекту из любого модуля без написания каких-то оболочек, что упрощает разработку сложных объектно-ориентированных программ

10.Упрощение и ускорение разработки типовых сущностей.
Благодаря добавлению атрибутов и мощного механизма метаданных, в разы упрощается разработка типовых сущностей, что при грамотной разработке первых этапов сильно упрощает добавление/изменение/удалении типовых вещей на поздних этапах.

Резко упрощается разработка классов, которые занимаются обслуживанием типовых сущностей.

11.Красивый визуальный интерфейс.
На .Net разработка красивого, функционального интерфейса с использованием новейших технологий гораздо проще, чем в C++.
Это позволяет для любой программы разработать интерфейс а’ля Microsoft Office и т.д., что сильно повышает успех программы при показе клиенту.

12.Повышение быстродействия сложных программ
Наличие P-code, а также возможность генерации кода в runtime-е, при разработке сложной программы на .Net и грамотное реализации дает повышение быстродействия по сравнению с программой-аналогом на языке C++.

Упрощение языка («верифицируемый» код, сборщик мусора) позволяют реализовывать более сложные алгоритмы оптимизации, что положительно сказывается на работе сложных программ.

13.Уменьшается размер конечных бинарных файлов
Благодаря наличию большой стандартной библиотеки, P-коду, модульности и т.д., размер создаваемых dll/exe-файлов получается, как правило, более чем на порядок меньше (около 50-100кб) при использовании всех наворотов и без какой-либо оптимизации размера со стороны программиста.

При исправлении ошибок в программе, а также при выходе новых версий пользователю необходимо будет скачать только несколько десятков килобайт.

14.Упрощается развертывание (инсталляция) приложений.
Отсутствие регистрации, а также новая политика при развертывании .Net-приложений упрощают инсталляцию программы на компьютер пользователя.

 

смотреть также
C# vs C++

ниши языков

Оценок нет

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Похожие записи

Комментарии

14.12.2009 15:23:30

Виталий

Проблема утечек памяти в C++ с легкостью решается с помощью программы Deleaker ( http://deleaker.ru/ )

Виталий

Powered by BlogEngine.NET 1.3.1.0
Theme by Mads Kristensen

Сергей Темных

Модулятор


Calendar

<<  Октябрь 2017  >>
повтсрчепясуво
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

View posts in large calendar

Страницы

    Последние комментарии

    Категории

    None


    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2017

    Sign in