RTTI в Delphi всегда была важна с версии 1.0. Классические функции RTTI включают в себя раздел «Опубликованные» свойств классов, который позволял работать Инспектору объектов и функциям времени разработки компонента. В моих целях я часто использовал свойства класса Опубликовано, чтобы обеспечить возможность перечисления этих свойств во время выполнения. Хранить вещи из моих объектов на диске для сохранения.
Delphi 2010 RTTI массово расширяет этот классический RTTI, настолько, что вы могли бы простить, что Delphi даже не имел RTTI до Delphi 2010.
Я бы сказал, что наиболее полезные приложения «Нового RTTI» № 1 (как уже указывалось в нескольких других ответах) будут в Frameworks, написанном гуру, что:
Обработка постоянства в файлах или базах данных. База данных и конфигурация или документ, сохраняющий / загружающий структуры и компоненты, будет использовать это под капотом.
Ручка травления / сортировки / кодирования / декодирования в и из различных
форматы по проводам, такие как JSON, XML, EDI и другие.
Юнит-тестирование было упомянуто кем-то другим (JUnit), но я думаю, что те же самые фреймворки могли бы быть действительно полезными для инструментов отладки и отчетов об ошибках. Если в стеке задан объект, переданный в качестве параметра, почему бы не получить отчеты об ошибках, которые могут выводить все данные, которые были переданы в сбойную функцию, а не просто список функций?
Как видите, некоторые творческие люди, вероятно, подумают о еще большем использовании для этого. Можно сказать, что, хотя он и не обеспечивает четности в отражении .NET (о чем другой ответ говорит больше), он действительно привносит множество функций «динамического языка» (Think of Perl, Python, JavaScript) в статически иначе типизированную статику системный мир Delphi.