Может быть, вопрос, который нужно задать: «Почему от дженериков болит голова?» Как вы используете их, которые вызывают такую боль?
Я согласен, что в Java есть недостатки с дженериками, и есть ситуации (например, расширяемые), которые вызывают проблемы, но в чем конкретно ваша проблема?
Использование другого языка, который компилируется в байт-код, может помочь вам в краткосрочной перспективе, но если вы работаете в команде, которая поставляет системы, которые должны поддерживать другие, у вас могут возникнуть проблемы с внедрением такой технологии, как Nice, независимо от того, как это элегантно.