OVH Cloud OVH Cloud

Java devient OPEN SOURCE !!!

325 réponses
Avatar
Prodejeu
Sun a finalement annoncé le passage prochain de son langage Java, en
Open Source.
L'hésitation porte à l'heure actuelle sur le type exact de licence, Sun
voulant garder la main sur le langage.
Quoiqu'il en soit le code de Java sera ouvert.

Cela va t-il sonner le glas pour les techno .NET ?

Sources :
http://www.zdnet.fr/actualites/informatique/0,39040745,39349899,00.htm
http://www.clubic.com/actualite-34885-comment-sun-rendra-t-il-java-open-source.html

10 réponses

Avatar
Emmanuel Florac
Le Wed, 24 May 2006 14:22:49 +0200, SL a écrit :


vous aurez du mal à m'enlever le
préjugé que mettre du code à compiler et exécuter depuis un langage
interprété est un peu tordu :-)


Perl n'est pas un langage interprété. Pär ailleurs la compilation du
code Inline n'a lieu qu'à la première exécution. Et on utilise très
couramment et depuis de longues années des librairies bindées en C en
Perl (y compris Tk, GTK, SDL et tutti quanti), c'est parfaitement fiable
et robuste, il n'y a pas de raison que ça ne marche pas avec Java :)

Connais pas. S'il s'agit de JNI, c'est une interface avec le code
compilé, pas avec le code source, n'est-ce pas ?


Inline aussi c'est une interface avec le code compilé. L'intégration du
source n'est qu'une commodité pour le développeur (il suffit d'avoir
essayé de lire la doc XS pour comprendre sa douleur).

--
L'Algérie était au bord du gouffre, aujourd'hui elle a fait un grand pas
en avant.
Aït Ahmed.

Avatar
SL
Le Wed, 24 May 2006 13:53:59 +0200, Stéphane Zuckerman a écrit :


Mais en C ou C++, le programme est compilé une fois pour toutes. En Java,
le bytecode n'est pas totalement compilé en JIT, si ?


Inline cache le résultat des compilations, et il est possible dans le cas
de programmes genre CGI ou mod_perl, d'utiliser toujours la même JVM.


Avec CGI, si mes souvenir sont bons, il y un interpréteur lancé à
chaque requête, donc il faudrait effectivement que Inline cache le
code byte-compilé. J'avais pas vu ça dans la doc, il disait qu'il
cachait la liste des méthodes publiques.


Avatar
SL
Le Wed, 24 May 2006 14:22:49 +0200, SL a écrit :


vous aurez du mal à m'enlever le préjugé que mettre du code à
compiler et exécuter depuis un langage interprété est un peu tordu
:-)


Perl n'est pas un langage interprété.


Ça s'appelle comment ?


Avatar
Emmanuel Florac
Le Wed, 24 May 2006 23:13:16 +0200, SL a écrit :


Avec CGI, si mes souvenir sont bons, il y un interpréteur lancé à
chaque requête, donc il faudrait effectivement que Inline cache le
code byte-compilé. J'avais pas vu ça dans la doc, il disait qu'il
cachait la liste des méthodes publiques.


Et il peut utiliser la même JVM résidente pour ne pas la relancer à
chaque fois.

--
A thing of beauty is a joy forever.
J. Keats.

Ah! Singe débotté, hisse un jouet fort et vert!
Marcel Bénabou.

Avatar
Emmanuel Florac
Le Wed, 24 May 2006 23:14:19 +0200, SL a écrit :


Ça s'appelle comment ?


Quoi donc ? C'est à peu près équivalent à une machine virtuelle à la
Java (mais pas tout à fait, parce que la totalité du code n'est pas
forcément compilée au démarrage).

--
Sutor ne ultra Crepidam.

Avatar
talon
Emmanuel Florac wrote:
Le Wed, 24 May 2006 23:14:19 +0200, SL a écrit :


Ça s'appelle comment ?


Quoi donc ? C'est à peu près équivalent à une machine virtuelle à la
Java (mais pas tout à fait, parce que la totalité du code n'est pas
forcément compilée au démarrage).



Non tu dis n'importe quoi, perl est bien un langage interprété,
perl interprète du byte code. Certes il commence d'abord à compiler ton
programme textuel en bytecode, il va compiler les expressions régulières, etc.
mais ensuite il interprète pas à pas du bytecode, qui est trés loin du code
machine. La machine virtuelle Java compile sans arrêt (particulièrement en
mode "server") le bytecode en code machine, l'optimise en fonction de
l'utilisation qui en est faite, et exécute pour l'essentiel du code machine.
C'est pour ça qu'il y a un gros facteur entre les performances de Java,
qui peuvent approcher celles du code natif, ou tout au moins ne pas être
plus de 10 fois plus lent, et les performances des langages interprétés,
perl, python, ruby qui sont au bas mot 10 fois plus lents que Java.

--

Michel TALON


Avatar
SL
Le Wed, 24 May 2006 23:14:19 +0200, SL a écrit :


Ça s'appelle comment ?


Quoi donc ? C'est à peu près équivalent à une machine virtuelle à la
Java (mais pas tout à fait, parce que la totalité du code n'est pas
forcément compilée au démarrage).


Une machine virtuelle à la Java, c'est à-dire-qu'au lancement de
l'interpréteur perl, il ne re-compile pas le fichier texte en
bytecode, mais récupère un bytecode stocké quelque part ? Et qu'il
compile le bytecode en code machine quand il peut avec une technologie
JIT ?

Je n'ai toujours pas compris comment Inline::java pouvait ne pas
recompiler le code java en bytecode à chaque lancement d'une
l'instance de l'interpréteur. ça veut dire que Inline::java récupère
le code java, le compare au code source à partir duquel il a
byte-compilé quelque chose, et que si le code source est toujours le
même il réutilise ce code bytecompilé sauvé quelque part ?


Avatar
SL
Le Wed, 24 May 2006 23:13:16 +0200, SL a écrit :

Avec CGI, si mes souvenir sont bons, il y un interpréteur lancé à
chaque requête, donc il faudrait effectivement que Inline cache le
code byte-compilé. J'avais pas vu ça dans la doc, il disait qu'il
cachait la liste des méthodes publiques.


Et il peut utiliser la même JVM résidente pour ne pas la relancer à
chaque fois.


Je ne sais pas ce que c'est qu'une JVM résidente, par contre je n'ai
pas compris comment il pouvait ne pas avoir à appeller le compilateur
code java->bytecode java à chaque compilation code-perl->bytecode
perl.


Avatar
seb666fr2
Emmanuel Florac wrote:

Il faudra m'expliquer l'intérêt de se limiter aux API standards de
n'importe quel langage...


Parce que cela permet de juger des capacités du langage à
permettre la résolution de problèmes directement, sans être
contraint d'utiliser des APIs tierces où en minimisant le plus
possible le recours à celles-ci, afin de réduire les dépendances
vis à vis d'éditeurs tiers (libre ou non).

Avatar
Nicolas George
, dans le message
, a écrit :
Parce que cela permet de juger des capacités du langage à
permettre la résolution de problèmes directement,


Non, évidemment : pour ça, pour juger le _langage_, il faut se restreindre
au langage, sans _aucune_ bibliothèque tierces sauf celles qui sont
structurellement indispensables.