Michael Koch a estimé que les implémentations libres de Java en sont à un stade permettant d'exécuter des applications majeures ; il a demandé à ce que plus d'utilisateurs travaillent avec ces implémentations et rapportent les bogues. Il a eu l'impression que beaucoup de personnes préfèrent utiliser les implémentations non libres au lieu de rapporter les problèmes avec les paquets libres. Pour une meilleure prise en charge, les gens devraient essayer Kaffe, SableVM, JamVM ou toute autre implémentation Java libre dans Debian.
Je me demandais : quel est aujourd'hui le niveau d'implémentation de ces JVM ? Quelle est leur efficacité par rapport aux implémentations de Sun ou d'IBM ? Quelles grosses applications font-elles tourner ?
Si vous travaillez professionnellement en Java avec ces JVM (ou que vous avez renoncé à les utiliser), dîtes-nous ce qu'il en est actuellement.
# jvm vs java en natif
Posté par rzr (site web personnel) . Évalué à 2.
Ma question, ou en est le portage de java3d, j2me etc ?
gpg:0x467094BC
[^] # Re: jvm vs java en natif
Posté par Gérald Quintana . Évalué à 3.
Par contre avoir en open-source un compilateur Java -> byte-code et une machine virtuelle qui sache profiter des spécificités de Linux pour optimiser l'éxecution serait un plus.
[^] # Re: jvm vs java en natif
Posté par Olivier MARTIN . Évalué à 3.
[^] # Re: jvm vs java en natif
Posté par Gérald Quintana . Évalué à 2.
Pour avoir testé Eclipse sur différentes plate-formes, je trouve que SWT marche
- très bien sous Windows
- bien sous MacOS
- pas terrible sous Linux GTK
[^] # Re: jvm vs java en natif
Posté par Olivier MARTIN . Évalué à 7.
Les diffrents developpement SWT ne remonte la non plus aucun probleme.
Ma remarque visait plutot le troll déguisé qui tentait a laisser penser que programmer en SWT c'est abandonné la portabilité ce qui est strictement faux. SWT s'appuie sur un framework commun à toutes les plateformes Java, seul la librairie utilisé poru l'execution change suivant la plateforme et cest la que reside l'utilisation des composants natifs.
Le fonctionnement de SWT est a rapproché du fonctionnement des JVM: on battit tout le code sur une API commune (language Java pour la JVM, framework SWT pour les GUI) et lors de l'execution le code spécifique à la plateforme se chargera d'utiliser ce qui existe sur le système.
Ce qui est dommage avec Swing cest qu'il n'exploite pas ce qui existe deja sur la plateforme pour le graphique (ie GTK pour linux) et qu'il prefere batir ses composants sur la plateforme java 'from scratch": on dessine avec les api graphique de java les tableaux, les labels, les champs texte etc etc. alors que tout ces composants ne demandent qu'a etre utilisé: ils seront plus rapides, moins couteux en mémoire, et en plus ils s'intégreront parfaitement au système sur lequel ils seront executés.
[^] # Re: jvm vs java en natif
Posté par Wawet76 . Évalué à 6.
Le but de Swing, c'était de faire des composants graphiques en java et donc indépendant de la plateforme utilisée. Donc on ne va pas dire que c'est domage que ça soit comme ça :)
Pour utiliser des composants natifs, on utilise AWT si on veut faire "standard Java" ou SWT si on veut un truc plus moderne.
Pour faire des applis avec exactement le même look'n'feel sur toutes les plateformes, on utilise Swing.
Il n'y a aucune raison d'opposer Swing et SWT. Les deux ont leur intérêt.
[^] # Re: jvm vs java en natif
Posté par Pierre Tramo (site web personnel) . Évalué à 4.
1) awt n'utilise plus les widgets natifs depuis genre java 1.1
2) swing utilise awt
[^] # Re: jvm vs java en natif
Posté par Pierre Tramo (site web personnel) . Évalué à 4.
Tu n'as pas du lire correctement ce qu'il a dit, il compare eclipse sur diffèrentes plate-formes et dit que la version linux est la moins bonne. Et c'est vrai, la version gtk2 est franchement une grosse merde(et encore, je trouve que la description est encore trop faible). C'est un veau, elle est lourde et lente, à coté, gecko sous linux passe pour une flêche. La version motif est un peu plus rapide, mais c'est quand même pas terrible.
Tu lui dis que ton equipe n'a jamais eu de probleme avec, c'est que personne n'a jamais testé d'autre versions.
[^] # Re: jvm vs java en natif
Posté par Olivier MARTIN . Évalué à 2.
j'utilise depuis 6 mois eclipse v3 (version stable - M1->M4) sous linux avec jdk 1.5 depuis quelques mois. désolé mais chezmoicamarche.org mais bon je dois vraiment etre une exception.
depuis:
->le jdk 5 (pour lexecution d'eclipse)
->le kernel 2.6 (pour la nouvelle implémentation des threads ET le prehemptive kernel)
->le prix relativement bas de la RAM (1024 de ram n'est pas vraiment exceptionnel pour un poste de développeur)
eclipse tourne ma foi aussi bien que sous windows. non ce n'est pas un fake cest ce que je constate tous les jours. Ah cest sur j'utilise pas un windows manager bouffeur de RAM et de process comme KDE (troll detected). Effectivement sur un poste avec 512Mo de Ram faisant tourner KDE avec Karamba, une console transparante affichant les logs systeme en fond décran et des xterms transparants a gauche a droite va avoir du mal a faire tourner eclipse, cest sur.
[^] # Re: jvm vs java en natif
Posté par TazForEver . Évalué à -6.
Ton témoignage n'est d'aucune utilité.
[^] # Re: jvm vs java en natif
Posté par nooky59 . Évalué à -5.
[^] # Re: jvm vs java en natif
Posté par Nim . Évalué à 6.
Ok, ok, je connais la sortie.
[^] # Re: jvm vs java en natif
Posté par Gilles Gagniard (site web personnel) . Évalué à 1.
[^] # Re: jvm vs java en natif
Posté par ndesmoul . Évalué à 1.
[^] # Re: jvm vs java en natif
Posté par Temsa (site web personnel) . Évalué à 1.
je voulais juste dire, que chez moi ça rame pas, en 64 bits en tout cas!
(blackdown jdk et sun jdk...)
[^] # pas terrible sous Linux GTK
Posté par leahpar . Évalué à 1.
sous win la gui te saute a la tete
mais eclipse rame vraiment sous nux
qd Tora l'a package (deb http://people.debian.org/~tora/deb...(...))
j'ai cru que ca venait de son package
mais non en fait meme maintenant c'est lamentable
d'un autre cote une fois developpee, il vaut mieux faire tourner une appli sans GUI sous linux
sinon concernant l'article, j'avoue utilise java-package avec celui de sun
[^] # Re: pas terrible sous Linux GTK
Posté par Olivier MARTIN . Évalué à 1.
[^] # Re: jvm vs java en natif
Posté par Stéphane Traumat (site web personnel) . Évalué à -1.
http://about.me/straumat
[^] # Re: jvm vs java en natif
Posté par Nicolas Delsaux (site web personnel) . Évalué à 3.
C'est quoi le rapport ?
Eclipse fonctionne très bien sur les plateformes pour lesquelles existe une librairie SWt native. Si ça n'est pas le cas, c'est foutu. Or il me semble que SWT est moins largement disponible que la JVM de Sun (qui, elle contient Swing qui fonctionne partout où elle fonctionne, par définition). Et puis, sans vouloir troller à côté de la plaque, au niveau clarté d'API, il n'y a quand même pas photo.
[^] # Re: jvm vs java en natif
Posté par boubou (site web personnel) . Évalué à 1.
Sauf que SWT est véritablement open source et peut donc être portée sur beaucoup plus d'architecture que la JVM de Sun, d'autant que la partie Java de SWT est complètement compatible avec les implémentations libres de la JVM.
[^] # Re: jvm vs java en natif
Posté par Nicolas Delsaux (site web personnel) . Évalué à 0.
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. Et puis, SWT sans JVM, génial ;-) Oui, bien sûr, ça peut marcher avec une JVM OpenSource, mais il faut aussi la compiler.
[^] # Re: jvm vs java en natif
Posté par boubou (site web personnel) . Évalué à 8.
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.
[^] # Re: jvm vs java en natif
Posté par Nicolas Delsaux (site web personnel) . Évalué à -2.
Ca facilite le portage et la compilation, d'accord. Mais l'utilisation est-elle possible ? Et, j'irais plus loin, l'utilisation de logiciels récents ? Sur le site de Red Hat, je vois que Eclipse/GCJ est dispo en version 2.1.0. En revanche, si je me contente de faire tourner Eclipse sur mon JDK par défaut, j'ai quoi ? La 3.0.1 ? La 3.1M8 ? Pour info, la 3.0 date du mois de juin dernier. Alors, oui, je peux utiliser un JDK libre, mais j'en paye le prix. Et je ne parle pas des outils comme Ant, Tomcat et autres ...
C'est sûr que, par exemple, java.beans (sur la version équivalente 1.4) qui n'est pas couvert à 100 %, ça ne change rien. Rien qu'avec les manques constatés, je cite : method java.beans.EventHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]): doesn't throw java.lang.Exception in jdk14, but throws java.lang.Exception in classpath, ça va aider.
Et je ne parle pas des javax.rmi.corba, ldap, ...
Alors peut-être que Eclipse peut marcher à peu près, mais je n'irais quand même pas foutre les pieds là-dedans.
Quant au support de Java 5 ... il n'est même pas évoqué ???
Alors comment tu fais, dans ton beau eclipse-gcj (2.1.0) pour faire des applis à la pointe ?
[^] # Re: jvm vs java en natif
Posté par amielp . Évalué à 4.
ou swt comme backend (avec un code programmé pour swing)
[^] # Re: jvm vs java en natif
Posté par nooky59 . Évalué à 4.
Il faut noter que wxWidgets offre un certain niveau de WORA et une compatibilité source et non pas binaire mais peux permettre de produire une application multi-plateforme très performante puisqu'en code natif.
De plus, wxWidgets propose des classes d'abstraction pour le réseau et les threads et çà peux être une très bonne alternative à Java même pour développer des applications portables.
[^] # Re: jvm vs java en natif
Posté par Philippe F (site web personnel) . Évalué à -1.
Moui, l'affirmation est un peu legere. Par exemple sous windows, wxWidgets est une couche par dessus MFC qui est une couche par dessus win32 qui lui utilise directement le gdi.
A cote, Qt utilise directement le gdi. Devine lequel est le plus performant ? Le plus facile a optimiser ?
Idem cote unix, wxWidgets arrive au dessus de gtk.
[^] # Re: jvm vs java en natif
Posté par Frédéric Lopez . Évalué à 10.
N'importe quoi ! WxWidgets n'est pas une couche au dessus de MFC, c'est une API de développement similaire à MFC mais qui ne l'utilise pas. Et puis GDI fait partie de l'API Win32, WxWidgets l'utilise directement, tout comme QT.
La différence c'est que QT dessine lui-même les widgets alors que WxWidgets utilise les widgets natifs sous MS Windows. Ce qui fait que WxWidgets permet à une application d'avoir un look natif sous MS Windows, contrairement à QT et à la plupart des librairies similaires sous MS Windows. Alors, lequel est le plus performant ?
Voir http://wiki.wxwidgets.org/wiki.pl?WxWidgets_Compared_To_Other_Toolk(...) pour plus d'informations.
[^] # Re: jvm vs java en natif
Posté par Guillaume Knispel . Évalué à 9.
[^] # Re: jvm vs java en natif
Posté par boubou (site web personnel) . Évalué à 1.
Ouai, bof. L'intérêt de Java, pour moi c'est tout le reste, les API qui couvrent presque tous mes besoins, un langage de haut niveau, etc. La portabilité existe dans de très nombreux autres langages, donc ce n'est vraiment pas un argument.
Par contre avoir en open-source un compilateur Java -> byte-code
C'est à dire Jikes ? On voit que tu maîtrises le sujet...
et une machine virtuelle qui sache profiter des spécificités de Linux pour optimiser l'éxecution serait un plus.
Euh, c'est quoi les spécificité de linux dont une machine virtuelle pourrait profiter ? Par rapport aux spécificités du hardware, ça ne doit pas être très important en terme de perfs...
[^] # Re: jvm vs java en natif
Posté par Nicolas Delsaux (site web personnel) . Évalué à -3.
Ca présente l'avantage de garantir la non-portabilité.
On passe du Write Once Run Everywhere au beaucoup plus avantageux Write Once Compile Everywhere.
Surtout qu'il n'y a aucun avantage en terme de performance.
[^] # Re: jvm vs java en natif
Posté par Matthieu Moy (site web personnel) . Évalué à 0.
Pour le temps de démarrage, ça doit quand même améliorer la chose, non ?
(j'ai pas fait le test)
# Pour ce qui est de gcj.....
Posté par kruskal . Évalué à 7.
Néanmoins, elle pose un gros probleme: elle ne se comporte pas comme les implémentations de référence.
Aussi est il meme assez dificile de l'utiliser pour faire tourner des applications non prévues pour: On ne sais tout simplement pas comment faire pour les compiler avec gcj. Un howto sur ce sujet serais le bienvenu.
Ce qui serait aussi le bienvenu, ce serais que les différents projets libres basés sur java (apache, objectweb, eclipse) prennent en compte gcj et les autres impléméntations libres: qu'ils contribuent à l'écriture des classes manquantes ou incompletes, qu'ils concoivent des buildscripts adaptés a gcj, qu'ils envoient des bugreports et la liste des classes dont elles ont besoins aux concepteurs des java libres.
Avec quelques efforts de la part de tous, nul doute que des progrès énormes, et bénéfiques pour tous arriveraient très vite. Mais bon, c'est tellement plus simple de se reposer sur une jvm gratuite fournie par sun, en croisant les doigts pour que celui ci ne fasse pas de coup bas.
[^] # Re: Pour ce qui est de gcj.....
Posté par Geo Vah . Évalué à 1.
Bon pour ceux qui connaissent pas, ANT est l'équivalent d'un makefile pour java. on peut faire énnooorrrmément de chose ( manque plus que le caffé -kaffe?- au dernière nouvelle).
Quand on compile, on demande d'utiliser javac pour compiler un fichier .java.
Si un appel à javac pouvait etre remplacer par un appel à gcj, ca serait beaucoup plus simple....
PS : je ne suis pas un pro de ant, peut-etre que les mots sont mal choisi (parle-t-on de cible javac et cible ant ?)
[^] # Re: Pour ce qui est de gcj.....
Posté par ufoot (site web personnel) . Évalué à 2.
A l'extrême limite peut-être les fichiers ANT sont plus "descriptifs", lisibles et moins "orientés commande" que les Makefile. M'enfin moi je trouve que le texte brut "à la Makefile" est tout aussi lisible que du XML avec du bruit de fond en forme de balises.
Mais ça reste un avis personnel.
Noter que je me suis cassé les dents pas mal de fois sur make (le célèbre coup du tab remplacé par 8 espaces qui fout tout par terre...) mais à la réflexion c'est peut-être la solution la moins pire.
Ah oui et sinon pour cadrer avec le débat général: en ce qui me concerne pour de la production les JVMs c'est malheureusement Sun ou IBM, les JVMs libres ne permettant pas de lancer les derniers programmes Java qui sont malheureusement ceux qu'on aurait besoin de lancer. Donc si j'ai moyen de contourner et d'utiliser autre chose que Java, j'achète.
[^] # Re: Pour ce qui est de gcj.....
Posté par Stéphane Traumat (site web personnel) . Évalué à 3.
avec make, tu dois développer un outil à part et le porter sur toutes les plateformes !
la, tu développes ta tâche ant et hop, une fonctionnalité de plus
http://about.me/straumat
[^] # Re: Pour ce qui est de gcj.....
Posté par lorill (site web personnel) . Évalué à 1.
Si tu as le temps, jette un oeil a maven, c'est completement ca. Tu as un xml qui décrit ton projet, tes dépendances, etc, et c'est tout, ca suffit a compiler ton projet et le déployer dans la plupart des cas.
Quand ca ne suffit pas, tu peux rajouter du ant ou du jelly pour des choses un peu particulieres, mais dans le cas le plus courant le descriptif suffit.
[^] # Maven
Posté par Dolmen (site web personnel) . Évalué à 1.
Mainteneur de LiquidPrompt - https://github.com/nojhan/liquidprompt
[^] # Re: Pour ce qui est de gcj.....
Posté par Tobu . Évalué à 3.
1 - C'est portable; une cible javac va invoquer le bon compilateur avec les bons arguments. Si tu compare avec les Makefile, ils sont tellement pas portables que autoconf est obligé de les régénérer pour chaque platforme, en définissant des gazillions de variables comme MV, CC, AWK, CCDPMODE, ECHO_N, ac_ct_AR, LN_S. Les commandes de make sont des commandes interprétées par le shell et elles sont donc sensibles à tous les petits problèmes de quotes du shell et à toutes les petites incompatibilités entre les versions GNU, BSD et autres. Ant se contente d'utiliser une API portable.
2 - On peut facilement l'analyser; le graphe des dépendances est stocké explicitement dans le format XML, donc on peut l'utiliser pour des requêtes comme lister tous les fichiers qui dépendent de tel source. Si tu as une commande gcc test.c -o test.o, make ne peut pas deviner que test.o dépend de test.c, a moins qu'on lui indique explicitement.
[^] # Re: Pour ce qui est de gcj.....
Posté par M . Évalué à 3.
Ben justement dans le makefile tu met les dependances pas les commandes, tout comme dans ant...
$cat Makefile
test: test.o
$make
cc -c -o test.o test.c
cc test.o -o test
# Tests...
Posté par Maclag . Évalué à 3.
Sinon on se répartit les 3, on installe tous un quake-java et on fait un match par équipe, celle qui gagne a la meilleure java machine!
Hein?
Ah oui...
~~~~>[]
[^] # Re: Tests...
Posté par TazForEver . Évalué à 1.
[^] # Re: Tests...
Posté par boubou (site web personnel) . Évalué à 5.
# Java libre
Posté par morgendorffer . Évalué à 5.
Pour FC4, il y aura java "out of the box" (ou presque) avec jpackage qui utilise gcj, eclipse, libgnome-java, libgtk-java, libgconf...
Ça va peut être donner un coup de boost à gcj.
# Rien compris
Posté par eon2004 . Évalué à 2.
[^] # Re: Rien compris
Posté par Bertrand D . Évalué à 1.
Non, d'une implémentation libre de jre qui soit compatible / conforme aux spécifications officielles, et non de spécifications alternatives (si j'ai bien compris le sens de ta question).
Bien qu'étant sous une licence de type Open Source, l'implémentation Sun / Blackdown de la MVJ pour Linux n'est pas libre.
Ce n'est pas la licence, mais cette page en expose les principes : http://www.sun.com/software/communitysource/principles.html(...)
[^] # Re: Rien compris
Posté par eon2004 . Évalué à 3.
Cela veut-il dire qu'il est possible qu'un package libre (rpm pour ma mandrake) sorte un jour, soit distribué avec la distrib et m'évite ainsi d'aller sur www.java.com pour télécharger et installer à la "console" le runtime JAVA?
[^] # Re: Rien compris
Posté par kra . Évalué à 1.
de la a dire que ca va arriver, va ptetre falloir que tu rereformules ta question pour avoir une reponse qui te convient :))
# Problème avec la licence de Sun
Posté par David Sporn (site web personnel) . Évalué à 2.
Ouin...
[^] # Re: Problème avec la licence de Sun
Posté par spart . Évalué à 3.
[^] # Re: Problème avec la licence de Sun
Posté par Gilles Gagniard (site web personnel) . Évalué à 3.
[^] # Re: Problème avec la licence de Sun
Posté par spart . Évalué à 5.
mais non, sacré bon sang, c'est tout à fait bien.
Dans un régime soumis au droit d'auteur, on protège _la lettre_, pas l'esprit, sans quoi Flaubert n'aurait pas lu Balzac, et il n'y aurait pas de Flaubert.
Ce qui est interdit et éthiquement déplaisant, c'est la copie verbatim ou assimilée verbatim. Et chez nos amis étatsuniens, si la réutilisation d'"idées brevetées" est effectivement interdite, elle est éthiquement parfaitement juste, rien ne t'interdit de les avoir dans la tête.
Reste les licences-épouvantail qui te font hypotéquer tes génitoires avant de te laisser consulter le code... si certains artifices juridiques doivent pouvoir théoriquement te valoir un procès personnel douteux, et certainement pas l'ablation de tes joyeuses, elles n'affectent pas la légalité du code que tu produis du moment qu'il n'enfreint pas les limites susdites.
C'est aterrant de voir à quel point cette propagande de la "pollution intellectuelle" touve un terreau fertile jusque chez les défenseurs du logiciel libre ;(
[^] # Re: Problème avec la licence de Sun
Posté par Gilles Gagniard (site web personnel) . Évalué à 2.
Oui, bien entendu !! Mais dans le monde réel, SCO attaque des utilisateurs de Linux, parce que ... enfin bon tout le monde connait l'histoire, parce que rien. Mais Sun pourrait se servir de ça comme prétexte pour attaquer Classpath, et même s 'il est évident que Sun a tort, ben il faut se défendre, ce que Classpath ne fera pas, ils fermeront la boutique tout simplement. Et puis de toute façon, si c'est la volonté des développeurs de Classpath, c'est qui est mal, c'est de leur mentir.
# kaffe n'est pas en reste non plus
Posté par TazForEver . Évalué à 4.
[^] # Re: kaffe n'est pas en reste non plus
Posté par NDT_69 . Évalué à -2.
dans un langage qui a supprimé les pointeurs (par rapport au C++)!
[^] # Re: kaffe n'est pas en reste non plus
Posté par Stéphane Traumat (site web personnel) . Évalué à 2.
http://about.me/straumat
[^] # Re: kaffe n'est pas en reste non plus
Posté par gc (site web personnel) . Évalué à 2.
[^] # Re: kaffe n'est pas en reste non plus
Posté par gc (site web personnel) . Évalué à 3.
[^] # Re: kaffe n'est pas en reste non plus
Posté par Vincent . Évalué à 2.
Devine l'erreur que cela génère ... :p
[^] # Re: kaffe n'est pas en reste non plus
Posté par dromadaire35 . Évalué à 6.
Java n'a pas supprimé les pointeurs, loin de là. Il a supprimé la gestion manuelle des pointeurs en les masquant, ce qui est tout autre chose.
[^] # Re: kaffe n'est pas en reste non plus
Posté par Matthieu Moy (site web personnel) . Évalué à -1.
Je suis pas expert en Java, mais dans ma terminologie, y'a pas de pointeurs en Java, mais il y a des références (qui sont en pratique implementées par des pointeurs). Dans cette optique, l'exception aurait du s'appeler autrement ...
[^] # Re: kaffe n'est pas en reste non plus
Posté par gc (site web personnel) . Évalué à 5.
[^] # Re: kaffe n'est pas en reste non plus
Posté par Yann Hodique (site web personnel) . Évalué à 4.
[^] # Re: kaffe n'est pas en reste non plus
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
Alors y'a pas de references en C++ non plus.
[^] # Re: kaffe n'est pas en reste non plus
Posté par Matthieu Moy (site web personnel) . Évalué à 3.
http://java.sun.com/docs/books/jls/second_edition/html/typesValues.(...)
The types of the Java programming language are divided into two categories: primitive types and reference types.
Par contre, pour la définition de la notion de pointeurs en Java, je trouve ça pas clair :
The reference values (often just references) are pointers to these objects, and a special null reference, which refers to no object.
ce que je comprends comme "dans la terminologie Java, les mots pointeur et références sont synonymes" ...
[^] # Re: kaffe n'est pas en reste non plus
Posté par Bertrand D . Évalué à 3.
La littérature est pleine de contradiction à ce sujet, chaque auteur ayant sa vision des choses.
Pour réconcillier tout le monde, et se rapprocher des définitions officielles, une référence est une variable contenant un pointeur. La variable est la référence, le pointeur est la valeur de cette variable.
Pour prendre un exemple :
Machin m = new Machin();
m est la référence.
Si le Machin créé est stocké à l'adresse 0xabcdef, 0xabcdef est le pointeur (qu'on ne manipule jamais en Java).
Mais au fond on s'en fout un peu, parce que ça ne change rien. Dans la lignée de ces débats stériles, lorsque je passe Machin en paramètre d'une méthode, est-ce un passage par valeur ou par adresse/référence ?
[^] # Re: kaffe n'est pas en reste non plus
Posté par NDT_69 . Évalué à 3.
J'ai en effet dû avoir le cerveau pollué par le discours marketing et me fourvoyer dans des allégations qui ne sont pas ou plus de mon niveau.
Et puis j'aime pas Java!
[^] # Re: kaffe n'est pas en reste non plus
Posté par alnicodon . Évalué à 3.
J'aime bien la vision de Thinking in Java (Bruce Eckel), selon lequel:
Du jour où j'ai lu ça, moi, j'ai arrêté de me faire des noeuds.
Par contre, je n'avais jamais entendu parler de ce troll (ça veut bien dire ça, débat stérile ? :-). La réponse me semble immédiate: l'objet utilisé par la fonction appelé est le même, ie. toute opération effectuée dessus dans la fonction appelée sera vue dans la fonction appelante, une fois qu'on lui aura rendu la main. Les deux fonction référencent le même objet: c'est un passage par référence.
A comparer avec un passage d'int en paramètre (ou un autre type natif Java) où, si l'appelé modifie la valeur de son paramètre, cela ne se répercute pas dans la fonction appelante.
Itou!
[^] # Re: kaffe n'est pas en reste non plus
Posté par Bertrand D . Évalué à 1.
Ben, en fait c'est la même question (et il me semble que Bruce Eckel y fait référence dans sa dernière édition de TIJ) :
Si on considere qu'il n'y a que des references, alors, c'est effectivement un passage par référence. Mais les tenants des pointeurs, prétendent que c'est le passage d'un pointeur, donc par valeur.
Mais c'est effectivement un débat stérile. L'important est de comprendre ce qui se passe !
[^] # Re: kaffe n'est pas en reste non plus
Posté par alnicodon . Évalué à 1.
Ah, ok. En fait, ce qu'il faut dire (àmha) c'est que les objets sont passés par référence, mais que leurs références, elles, sont passées par valeur.
C'est vrai, et je m'excuse d'avoir marché là-dedans. En même temps, il reflète peut-être d'une certaines incompréhension de ce qui se passe de la part des gens qui en débattent. Cela vaut tjs le coup d'expliquer, alors (et hop, je me justifie !)
A+
[^] # Re: kaffe n'est pas en reste non plus
Posté par Stéphane Traumat (site web personnel) . Évalué à 0.
http://about.me/straumat
[^] # Re: kaffe n'est pas en reste non plus
Posté par Fabien Renaud . Évalué à 1.
J'avais finalement retenu kaffe car il gérait QT AWT et dans l'ensemble marchait pas trop mal. Par contre c'est vrai qu'il est relativement lent
SableVM par contre lui est beaucoup plus rapide.
Atttention kaffe ne sort presque pas de release et il faut prendre la version CVS si on veut avori qqchose de potable.
[^] # Re: kaffe n'est pas en reste non plus
Posté par gc (site web personnel) . Évalué à 3.
# blackdown libre ?
Posté par TazForEver . Évalué à 4.
# et java 5.0?
Posté par Marc (site web personnel) . Évalué à 1.
# Classes manquantes
Posté par Croconux . Évalué à 5.
[^] # Re: Classes manquantes
Posté par ufoot (site web personnel) . Évalué à 7.
Donc fondamentalement le nerf de la guerre c'est que les bibliothèques soient les mêmes, et là effectivement il y a un boulot monstre mais fondamental dont classpath est le digne représentant.
# Wonka
Posté par Jean-Paul Smets . Évalué à 2.
# IBM préparerait une JVM libre
Posté par Stéphane Traumat (site web personnel) . Évalué à 5.
eheh je te raconte pas le thread qu'on va avoir ici quand ca va sortir !
http://about.me/straumat
# ey !
Posté par TImaniac (site web personnel) . Évalué à 3.
:-]
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.