Меня смущает возможность написания .NET на динамических языках, таких как (Iron) Ruby. В частности, я видел код в IronRuby, который использовал универсальные шаблоны (...foo[String]
), но я не знаю об этой функции в Ruby, поскольку для динамических языков это кажется мне бессмысленным.
Итак, когда я пишу приложение .NET на IronRuby, как обстоят дела с безопасностью типов и компиляцией? Я думал, что он такой же динамичный, как и Ruby во всем остальном. Я думал, что если синтаксис Ruby в порядке, вся проверка типов будет выполняться во время выполнения.
Кроме того, насколько мне известно, .NET сам по себе ориентирован на типы - есть классы, которые активно используют упомянутые обобщения. Как с этим справляются?
А что насчет делегатов? На динамических языках у меня могут быть почти функциональные спагетти, а иногда и просто нормально (например, взлом пользовательского интерфейса в javascript).
Или мне нужно заботиться даже об общих делегатах?