• [^] # Re: jvm vs java en natif

    Posté par . En réponse à la dépêche [Débat] Implémentations libres de java : sont elles utilisées dans la pratique ?. Évalué à 8.

    Je ne voudrais pas faire mon pasBill pasGates, mais en quoi le fait que SWT soit Open-Source le rend plus portable ? D'accord, si tu veux, tu peux le porter pour un hardware exotique. Mais il me semble, vu de loin, comme ça, que Java est déja disponible sur un nombre d'environnement tout à fait impressionant.

    Ouai, c'est sûr. Par exemple sous linux PPC ? Non, Java n'est pas disponible sur un nombre d'environnement tout à fait impressionnant, sauf si on prend en compte les versions open source et les versions castrées (lire JME). Si tu ne comprends pas pourquoi le fait d'être open source facilite le portage, je ne peux rien pour toi (un simple indice : si _tu_ as besoin de faire tourner un logiciel libre sur ton environement, _tu_ peux faire les modifications nécessaires).

    Et puis, SWT sans JVM, génial ;-) Oui, bien sûr, ça peut marcher avec une JVM OpenSource, mais il faut aussi la compiler.

    Je me demandais si quelqu'un serait assez ignorant pour répondre ça, et oui, c'est gagné. Alors voilà, un des gros morceaux de Java qui n'existe pas encore complètement en version libre, c'est justement swing. Si on enlève swing, classpath est très complet, tellement complet que combiné à une machine virtuelle il peut faire fonctionner eclipse essentiellemnt car celui-ci n'utilise pas swing. Bref, pour un environnement non supporté par Sun et sa JVM propriétaire, tu peux en général compiler une machine virtuelle et un compilateur java open source (jikes). Comme ceux-ci sont en général écrit en C standard et avec une approche disons posix, la compilation et le portage ne sont pas trop difficiles. Ensuite, tu peux compiler classpath et la partie de java de swt. Reste donc à porter la partie native de SWT, ce qui est le plus difficile (comme toujours). Mais justement, swt existe en version native gtk, donc si tu as gtk, ce n'est pas trop un problème. Et donc tu obtiens ainsi un environement java presque complet.