Если вы реализуете привязку тщательно, DLR предоставит вам очень мощный механизм кэширования - возможно, более сильно оптимизированный, чем вы могли бы реально сделать самостоятельно. Кроме того, у вас больше шансов получить хорошую совместимость с другими языками, так как вы будете использовать «стандартный» протокол динамических объектов.
Например, C # 4 сможет звонить на ваш язык без дополнительной работы, просто используя тип dynamic
. Чтобы сделать это без DLR, вам нужно сгенерировать «нормальные» статические типы CLR.
Трудно точно сказать, сколько будет преимуществ, потому что мы не знаем, для чего вы хотите использовать свой язык или сколько он уже делает. Тем не менее, очевидно, что над DLR работает много очень умных людей - мне кажется, что если вы создаете динамический язык для работы в .NET, имело бы смысл воспользоваться их работой.