Конечно, вы потеряете некоторое представление. Ruby (например, Smalltalk и Python, среди прочих) по своей природе очень динамичны и высокоуровневы, а также динамически типизированы. Многие утверждают, что это позволяет программистам быть намного эффективнее (я склонен согласиться), но OTOH, вызовы должны быть отправлены, и решение должно быть принято во время выполнения, которое может и находится на статичном языке, таком как Java, решаться в compiletime. Так что да, будет некоторая потеря производительности.
Но: Это действительно имеет значение? Для 99% всего кода приложения GUI это не так. На современном домашнем компьютере, с точки зрения пользователя, средний рубиновый метод, похоже, занимает одно и то же время, что и средний метод Java: около нуля секунд. И на обоих языках, безусловно, самое время будет потрачено на ожидание ввода пользователя и в меньшей степени с помощью ввода-вывода на диске, а также с помощью инфраструктуры графического интерфейса, создающей новые материалы на экране.
Addendum: Возможный недостаток может быть таким мостом, как правило, хрупким - как, трудно интегрироваться с оригиналом (в данном случае Java) или ломаться с более новыми версиями. Но я не могу судить об этом ...