2010-08-05 7 views
0

Récemment, j'ai rencontré http://monkeybars.rubyforge.org/ et Rawr. Il semble suffisant de construire des applications Java.Codifiez-vous en ruby ​​pour construire des applications Java?

Ma question est, y a-t-il des inconvénients à choisir cette approche? Jruby à Java? Mon application subira-t-elle une perte de performance par rapport à l'écriture en Java? Pour moi, l'avantage est que je n'ai pas basculer vers Java, et que je peux utiliser ruby, ce que je trouve beaucoup plus facile à écrire.

Répondre

1

Bien sûr, vous allez perdre quelques performances. Ruby (comme par exemple Smalltalk et Python, entre autres) est intrinsèquement très dynamique et de haut niveau, plus dynamiquement typé. Beaucoup prétendent que cela permet aux programmeurs d'être beaucoup plus efficaces (je suis d'accord), mais OTOH, les appels doivent être envoyés et la décision doit être prise à l'exécution qui peut et est, dans une langue statique comme Java, décidée au compiletime. Alors oui, il y aura une perte de performance.

Mais: Est-ce vraiment important? Pour 99% de tout le code de l'application graphique, ce n'est pas le cas. Sur un ordinateur domestique moderne, du point de vue de l'utilisateur, une méthode ruby ​​moyenne semble prendre le même temps qu'une méthode Java moyenne: environ zéro seconde. Et dans les deux langues, on passera de loin le plus de temps à attendre l'entrée de l'utilisateur, et dans une moindre mesure, par les E/S du disque et par le framework GUI, en dessinant de nouvelles choses à l'écran.

Addendum: Un inconvénient possible: de tels ponts ont tendance à être fragiles, difficiles à intégrer à l'original (dans ce cas Java) ou à rompre avec des versions plus récentes. Mais je ne peux pas juger cela ...