Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Un point sur Java et l'Open-Source

Posté par tuiu pol (Jabber id, ). Modéré le 18 août 2006.
Depuis plusieurs mois déjà, Sun communique sur une prochaine mise à disposition du SDK de Java en Open-Source, dans la lignée de Solaris. Le but premier pour Sun serait évidemment de contrer le .NET de Microsoft qui commence à envahir le marché et d'augmenter le nombre des usagers (pour ne pas dire client) du langage. IBM encourage fortement Sun dans cette voie (lire Sun promet d'ouvrir les sources de Java sur news.com).

On apprend par ailleurs, que Sun se heurte tout à la fois à son désir de ne pas voir le langage être spolié par un concurrent et à la politique interne de managers opposés à la politique Open-Source.

Ces derniers jours Sun à lancé un portail qui retrace les premiers pas de Java vers l'Open-Source et qui permet de recueillir, via un forum, les avis sur le meilleur moyen d'amener le langage à l'Open-Source.

Enfin, ce 14 août, Rich Green (Executive Vice President of Software at Sun), Laurie Tolson (Vice President Developer Products and Programs at Sun), et Alan Brenner (Vice President Mobile and Embedded at Sun) ont annoncé les plans à court terme :
  • Une partie de Java SE sera mis à disposition avant la fin de l'année 2006. Les détails ne sont pas encore connus mais cela concerne au moins le compilateur Java et la machine virtuelle HotSpot
  • Un JDK compilable sera mis à disposition début 2007. Tout le code du JDK ne sera cependant pas sous licence Open-Source car Sun ne dispose pas des droits sur l'ensemble du code.
  • Toute la plateforme Java ME (mobile) sera Open-Source.
  • La licence n'est pas encore décidée, ce sera une licence approuvée par l'OSI (Open Source Initiative).

Il semble que cette fois nous nous dirigions définitivement vers une libération du code source de Java... la fin d'un troll ?

NdA : merci à yannickt pour son journal sur le sujet.

> Lire la dépêche (86 commentaires, moyenne: 2,3).  

Vous avez demandé le commentaire #744341.

Les alternatives

Posté par Mjules (page perso, ) le 18/08/2006 à 09:28. (lien). Évalué à 5.

A noter que l'alternative libre la plus avancée (GNU classpath [1]) couvre déjà plus de 99% de l'API 1.4 [2] et plus de 95% de l'API 1.5 [3].
Pour ma part, je ne pense pas qu'on ai encore vraiment besoin que java passe opensource.
Sinon, Tom Tromey (ex-développeur de gcjx avant son remplacement par ecj) à écrit un texte intéressant sur ce que Sun devrait faire et ne pas faire avec sa licence pour que l'ouverture soit une réussite.[4]


[1] www.classpath.org
[2]http://www.kaffe.org/~stuart/japi/htmlout/h-jdk14-classpath.(...)
[3]http://www.kaffe.org/~stuart/japi/htmlout/h-jdk15-classpath-(...)
[4]http://tromey.com/blog/?p=262

  • [^]Re: Les alternatives

    Posté par Axel R. (page perso, ) le 18/08/2006 à 10:08. (lien). Évalué à 6.

    le projet classpath avance bien, mais pourquoi ne voit on pas d'applications java dans nos distribs compilés avec kaffe, alors ?

    Axel

    • [^]Re: Les alternatives

      Posté par Mjules (page perso, ) le 18/08/2006 à 10:38. (lien). Évalué à 6.

      Fedora core depuis la version 4 fournis un ensemble de softs en java compilé avec gcj. Les autres distributions semblent moins en avance à ce niveau.

      Mais il faut reconnaitre que jusqu'à il y a peu (6 mois, un an), GNU classpath pêchait par un manque de support de swing/awt et donc des applications graphiques et c'est vraiment à partir des version 0.90 que c'est devenu utilisable.

      une liste d'applications qui marchent avec classpath :
      http://developer.classpath.org/mediation/FrontPage

      Sinon, juste pour chipoter, kaffe est une machine virtuelle, je ne crois pas que tu puisses compiler du code en natif avec elle. Pour cela, il faut plutôt se tourner avec gcj ou ecj (qui est/va être le compilateur par défaut de gcj pour java 1.5).
      De plus, si tu veux utiliser une machine virtuelle, Kaffe n'est pas forcément le meilleur choix, JamVM ( http://jamvm.sourceforge.net/ ) ou Cacao ( http://www.complang.tuwien.ac.at/cacaojvm/ ).

      En tout cas, je pense qu'on va commencer à voir des choses arriver dans nos distributions préférées :) .

      • [^]Re: Les alternatives

        Posté par clearstream () le 18/08/2006 à 11:31. (lien). Évalué à 4.

        > Sinon, juste pour chipoter

        La première utilisation de gcj dans une distribution, si j'ai bonne mémoire, était pour Eclipse dans RHEL3. Eclipse n'utilisait pas gcj, c'était uniquement pour compiler Eclipse qu'avec des outils libres. Ca a changé et Eclipse c'est retrouvé dans Fedora depuis la FC3.

        FC5 a déjà pas mal de programmes qui utilisent gcj/ecj/classpath: Tomcat, Azurus, frysk, rssowl, etc.

        FC6 devrait avoir un plugin java pour Firefox.

        Ca avance.

        > gcj ou ecj (qui est/va être le compilateur par défaut

        C'est le cas pour Fedora. La FAQ :
        http://fedoraproject.org/wiki/JavaFAQ

        > En tout cas, je pense qu'on va commencer à voir des choses arriver dans nos distributions préférées

        Ca ne serait pas trop tôt...

        • [^]Re: Les alternatives

          Posté par olgk () le 19/08/2006 à 11:27. (lien). Évalué à 1.

          > Eclipse n'utilisait pas gcj

          Ironiquement l'inverse va probablement arriver (utilisation du front-end du compilo Eclipse pour gcj).

    [^]Re: Les alternatives

    Posté par José JORGE (Jabber id, page perso, ) le 18/08/2006 à 12:15. (lien). Évalué à 2.

    Peut-on avoir alors un plugin java pour les navigateurs qui marche, aujourd'hui?
    Qui marche veut dire "utilisable" simplement, je comprends bien qu'il ne peut pas (encore) faire tourner 100% des applets.

    [^]Re: Les alternatives

    Posté par j (page perso, ) le 18/08/2006 à 12:59. (lien). Évalué à 2.

    et commentfaire pour que gcj/gij execute les applet du web comme celle quel'on trouve sur http://www.gnu.org/software/classpath/ ?

    • [^]Re: Les alternatives

      Posté par j (page perso, ) le 18/08/2006 à 13:15. (lien). Évalué à 2.

      je viens de constater qu'il existeun paquet nommé gcjwebplugin

      concernant Debian ce paquet n'existe que pour unstable

      http://packages.debian.org/unstable/net/gcjwebplugin

      si quelque'un a une url pour Etch je suis intéressé

      • [^]Re: Les alternatives

        Posté par TeXitoi (Jabber id, page perso, ) le 18/08/2006 à 13:20. (lien). Évalué à 1.

        Ca a l'air de s'installer sur etch sans pb : les dépendances de ce paquet sont toutes (a priori) dans etch. ("sudo apt-get -d install gcjwebplugin" ne me télécharge que gcjwebplugin de unstable.)

        • [^]Re: Les alternatives

          Posté par j (page perso, ) le 18/08/2006 à 15:38. (lien). Évalué à 2.

          installé... mais je ne vais pas le garder longtemps parce qu'il n'execute pas l'applet du site de GNUClasspath, ça m'ouvre une console avec :

          java.lang.NumberFormatException
          at java.lang.Integer.parseInt(java.lang.String, int, boolean) (/usr/lib/libgcj.so.6.0.0)
          at java.lang.Integer.parseInt(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
          at Animation.init() (Unknown Source)
          at gnu.gcjwebplugin.PluginAppletWindow.setHandle(long) (Unknown Source)
          at gnu.gcjwebplugin.PluginAppletViewer.start(java.io.InputStream, java.io.OutputStream) (Unknown Source)
          at gnu.gcjwebplugin.AppletViewer.main(java.lang.String[]) (Unknown Source)
          at .__libc_start_main (/lib/tls/libc-2.3.6.so)

          java.vm.version: 4.0.4 20060422 (prerelease) (Debian 4.0.3-2)
          java.vm.vendor: Free Software Foundation, Inc.

          • [^]Re: Les alternatives

            Posté par Laurent A. () le 18/08/2006 à 20:30. (lien). Évalué à 2.

            $ apt-cache policy gcjwebplugin
            Table de version :
            *** 2:0.91+cvs20060611-1 0
            1 http://ftp.de.debian.org experimental/main Packages
            100 /var/lib/dpkg/status
            0.3.2-1 0
            500 http://ftp.de.debian.org unstable/main Packages

            La version de gcjwebplugin dans Unstable n'a pas l'air très récente, hors il y a eu pas mal de changement dans la version 0.91 (et maintenant la 0.92 qui vient de sortir). Donc, si possible, il faut vraiment installer la version de Debian Experimental ou alors attendre que des paquets plus récents arrivent dans Unstable.

    [+] [^]Re: Les alternatives

    Posté par Julien BLACHE () le 19/08/2006 à 10:34. (lien). Évalué à -1.

    99% et 95% c'est bien joli, mais as-tu été voir quelle est la couverture *réelle*, ie. implémentée ?

    Ca pourrait te faire un choc. Ces chiffres sont de la poudre aux yeux.

    (eh oui, il y a un paquet de méthodes vides rajoutées en vitesse pour que tel ou tel soft "fonctionne" avec GNU Classpath, et, au passage, faire grimper le taux de couverture)

    • [^]Re: Les alternatives

      Posté par Olivier jolly (page perso, ) le 19/08/2006 à 11:38. (lien). Évalué à 4.

      Quand on parle de ces chiffres, ce sont des implémentations réelles.
      Il y a un méchanisme (un throw d'une exception non checkée comme UnsupportedOperationException, de tête), qui permet d'avoir la signature de la méthode dans classpath tout en indiquant à japi (l'outil de comparaison de couverture d'api) que la méthode n'est pas *réelle*, elle n'est alors pas comptée comme conforme.

      Pas de poudre aux yeux avec classpath...

      • [+] [^]Re: Les alternatives

        Posté par Julien BLACHE () le 19/08/2006 à 12:09. (lien). Évalué à -2.

        Une méthode vide de tout code n'est *pas* une implémentation réelle.

        • [^]Re: Les alternatives

          Posté par Olivier jolly (page perso, ) le 19/08/2006 à 12:57. (lien). Évalué à 3.

          On est tout à fait d'accord.
          C'est pour celà que lorsqu'on ajoute une méthode vide pour des raisons de compatibilité binaire, on ajoute le fameux throw UnsupportedOperationException à la signature.
          Cela permet d'avoir un comportement dégradé des applications s'appuyant sur cette méthode spécifique au lieu d'un crash bête et méchant. Cependant, grâce à la convention sur l'exception en question (suivie par les développeurs classpath et l'outil japi), la méthode n'est pas comptabilisée comme conforme à l'api java. Elle n'est effectivement pas une implémentation réelle.

          • [^]Re: Les alternatives

            Posté par Julien BLACHE () le 19/08/2006 à 15:38. (lien). Évalué à 2.

            Ce n'est pas ce que j'ai pu constaté, à une époque pas si lointaine que ça, dans les sources de GNU Classpath.

            On va dire que c'était des oublis, pour ne froisser personne, même s'il y en avait beaucoup.

      [^]Re: Les alternatives

      Posté par Mjules (page perso, ) le 19/08/2006 à 11:39. (lien). Évalué à 1.

      non, mais je suis preneur de tout lien me permettant de compléter ces infos.