Почему плоские текстовые файлы соответствуют уровню техники для представления исходного кода?
Конечно - препроцессору и компилятору необходимо увидеть плоское представление файла, но это легко создать.
Мне кажется, что некоторая форма XML или двоичных данных может представлять множество идей, которые очень трудно отслеживать, в противном случае.
Например, вы можете вставлять диаграммы UML прямо в ваш код. Они могут генерироваться полуавтоматически и аннотируются разработчиками, чтобы выделить важные аспекты дизайна. Диаграммы взаимодействия в частности. Черт, встраивание любого пользовательского чертежа может сделать вещи более ясными.
Еще одна идея - вставлять комментарии из обзоров кода прямо в код.
Там могут быть всевозможные средства, облегчающие объединение нескольких ветвей.
То, что я увлечен, это не просто отслеживание покрытия кода, но и просмотр частей кода, охватываемых автоматическим тестом. Жесткая часть отслеживает этот код, даже когда источник изменен. Например, перемещение функции из одного файла в другой и т.д. Это можно сделать с помощью GUID, но они довольно навязчивы для встраивания прямо в текстовый файл. В богатом формате файлов они могут быть автоматическими и ненавязчивыми.
Итак, почему нет IDE (насколько мне известно, так или иначе), которые позволяют вам работать с кодом таким образом?
EDIT: 7 октября 2009 года.
Большинство из вас очень сильно повесили слово "двоичный" в моем вопросе. Я убираю его. Picture XML, очень минимально маркирующий ваш код. Перед тем, как передать его обычным препроцессорам или компилятору, вы удалите всю разметку XML и передайте только исходный код. В этой форме вы все равно можете делать все нормальные вещи в файле: diff, merge, редактировать, работать в простом и минимальном редакторе, загружать их в тысячи инструментов. Да, diff, merge и edit, непосредственно с минимальной разметкой XML, немного сложнее. Но я думаю, что ценность может быть огромной.
Если существовала среда IDE, которая уважала весь XML, вы могли бы добавить гораздо больше, чем то, что мы можем сделать сегодня.
Например, ваши комментарии DOxygen действительно могут выглядеть как окончательный вывод DOxygen.
Когда кто-то захотел сделать обзор кода, например Code Collaborator, они могли бы пометить исходный код на месте.
XML может даже скрываться за комментариями.
// <comment author="mcruikshank" date="2009-10-07">
// Please refactor to Delegate.
// </comment>
И если вы хотите использовать vi или emacs, вы можете просто пропустить комментарии.
Если я хочу использовать современный редактор, я вижу это примерно в десятке различных полезных способов.
Итак, это моя грубая идея. Это не "строительные блоки" изображений, которые вы перетаскиваете на экран... Я не тот орешек.:)