Здравствуйте, mkizub, Вы писали:
M>Посмотри на код, генерируемый Scala и ужаснись. M>Или вот, пусть мне нужны параметры типов в рантайме. Чтоб я мог написать M>List<String> ls = ...; M>String[] arr = ls.toArray(); M>а не M>String[] arr = ls.toArray(new String[ls.size()]);
M>Пусть я использую высокоуровневый язык Foovy, который работает поверх JVM, и который M>генерирует код с поддержкой аргументов типов в рантайме. Он как их поддерживает? M>Передаёт скрытый аргумент конструктору объекта или методу (параметризированному). M>В своём собственным формате передаёт. Вот у Kiev-а есть kiev.stdlib.TypeInfo M>для этого. И у Foovy будет foovy.utils.TypeInfo. M>А теперь, чтоб это всё заработало вместе. Чтоб явовский List можно было использовать M>интероперабельно с Foovy-вским или Kiev-ским. И чтоб Foovy-вский лист можно M>было использовать в Kiev-ском коде.
M>Ага.
Вообще-то в уровневой модели, врехние уровни эксплуатируют нижние а не наооборот (Java->Groovy), во вторых кто мешает не пользоваться динамической типизацией и писать
все по человечески? Кроме того разве Groovy и Scala не позволяют наследовать классы или реализовывать интерфесы Java (например для организации callback'ов, если уж совсем приспичит)? Разве что-нибудь мешает использовать коллекции Java (конечно там ФП-шных извращений, ну да не больно и хотелось...)?
Или при использовании стнадартных жабовских библиотек он туда тоже чего-нибудь передает
в скрытом виде?
P.S. Доберусь до дома — попробую наваять примерчик.