• [^] # Re: Grandiose

    Posté par . En réponse au journal Linuxfr en J2EE. Évalué à 10.

    > Me semblait que Java était également interprété

    C'est un sujet à part entière tellement les limites sont flous.

    > Mais sinon, pourquoi vous voulez absolument compiler ?

    Dans un contexte de langage statiquement et fortement typé, un code qui compile est un code qui peut s'exécuter (ça ne dit pas qu'il est correct). Ton code python tu n'as aucune certitude qu'il est capable de s'exécuter dans n'importe quel cas. Il faut connaître tout les flow d'exécution possibles sur le bout des doigts, toutes les variables par cœur et ne jamais faire de typo ou tu le découvrira... un jour.
    Ça n'a peut être pas d'importance pour toi, mais quand tu bosses sur un projet avec une équipe ça devient vite très difficile à gérer. Ouai c'est très agréable sur des petits trucs ou si tu bosses tout seul. J'aime bien scripter en Python

    Si tu passes la phase de compilation à l'exécution (ou simplement que tu es en typage dynamique) ça peut péter n'importe quand à runtime pour des milliers de raisons.

    Si tout les devs qui sont passés de Java 4 à Java 5 ne reviendraient pas en arrière ce n'est pas pour les caractères de cast gagnés ou l'introduction du printf. Les codes sont beaucoup plus robustes (CAML est une merveille dans ce domaine).

    > pour des raisons de performances mais dans ce cas là on n'utilise pas Java.

    Il y a énormément de raisons de ne pas utiliser Java mais là non. Si tu ne mets pas des mongoliens derrières le clavier, Java à des perfs très respectables. L'assembleur produit par hotspot est vraiment de bonne qualité, et je t'invite à comparer les sorties d'hotspot (voir http://weblogs.java.net/blog/kohsuke/archive/2008/03/deep_di(...) pour savoir comment activer le mode verbose) à celles de gcc fortran ou C. Le gagnant est assez rapide à trouver. Au dessus de ça, J2SE n'est pas un veau et les performances augmentent de manière significatives à chaque release. Le tableau de Java 1.[0-2] était totalement différent.

    Je t'invite aussi à lire http://hal.inria.fr/docs/00/31/20/39/PDF/RT-0353.pdf . Tu peux implémenter les benchs en python, ça ne devrait pas te prendre plus d'un à deux mois.

    Après tu peux rentrer dans un autre monde en tapant beaucoup plus bas niveau mais ce n'est pas le sujet ici.