Почему средства IDE C и C ++ поддерживают то, что доступно для управляемых платформ? - PullRequest
5 голосов
/ 31 октября 2009

Если вы использовали какую-либо приличную среду разработки Java или .net, вы можете увидеть изобилие предоставляемых ими функций, которые либо не существуют в IDE c / c ++, либо существуют в гораздо более ограниченной форме.

Я думаю о таких функциях, как:

  • Завершение кода
  • Синтаксические ошибки (и ошибки компиляции без необходимости компиляции)
  • Рефакторинг
  • Отладка (объем информации, которую отладчик может показать вам об объектах)
  • Исследование и анализ кода (просмотр иерархий типов, кто вызывает эту функцию и т. Д.)

Какая главная особенность управляемых языков, которая позволяет им обеспечивать эту (как многие сказали бы) превосходную поддержку в инструментальной оснастке?

Ответы [ 6 ]

11 голосов
/ 31 октября 2009

C ++ является чрезвычайно сложным языком для анализа. Для анализаторов, которые успешно его обрабатывают (компиляторы), они слишком медленные и недостаточно гибкие для поддержки поддержки кода в стиле IDE. В отличие от компилятора, в IDE анализатор должен быть очень быстрым и иметь возможность обрабатывать синтаксически некорректный код. До сих пор никто не занимал время, чтобы сделать это, потому что люди, обладающие необходимыми навыками, сосредоточены исключительно на реальных компиляторах.

Visual Studio 2010 имеет обновленный механизм C ++ IntelliSense. Им потребовалось много, много лет, чтобы сделать это, но его массово улучшилось.

5 голосов
/ 31 октября 2009

Такие языки, как C и C ++, усложняют выполнение и исправление синтаксиса, потому что синтаксис сложнее, чем (скажем) Java. Например, препроцессор усложняет задачу.

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

Отладка сложнее, потому что более слабые системы типов в C / C ++ означают, что труднее узнать, что на самом деле представляют собой «настоящие» типы значений времени выполнения.

4 голосов
/ 31 октября 2009

Я недавно смеялся над кодерами c / c ++, все еще использующими vim, пока они не бросили мне вызов, чтобы найти IDE, которая чисто обрабатывает условную компиляцию в большом проекте и ссылается на правильный экземпляр множественно определенного условно компилируемого метода. Никто не принял вызов.

Мораль: держи свой дизайн в чистоте, vim - твоя IDE.

2 голосов
/ 31 октября 2009

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

Например, Visual Studio имеет функции автозавершения кода, редактирования и продолжения (для 32-разрядных сборок), проверки синтаксиса (начиная с выпуска 2010 года), широкие возможности отладки и функции исследования кода для собственных проектов C ++.

1 голос
/ 31 октября 2009

Если вам нужен открытый исходный код и кроссплатформенность, плагин NetBeans C / C ++ имеет большинство, если не все, того, что вы хотите в C / C ++ IDE.

0 голосов
/ 31 октября 2009

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

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