cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Membre
Dernière intervention
4 mars 2013
130
15 août 2007 à 14:36
Ben la limite du java, ca serait la jvm elle-même : La logique du Java est : "coder quelque part, exécuter partout", donc le code que tu produit fonctionne sur n'importe quelle machine possèdant la JVM.
C'est magique, mais ca a ces limites. Prenons l'exemple de la vidéo (exemple dont j'ai été victime), il existe la bibliothèque JMF codée par Sun (qui n'est pas intégrée en standard dans le jdk, mais ca va changer avec la future version 7 du jdk !), mais JMF est limité, ne gère pas tout les codec (le DivX par exemple, ou le mov d'apple). Du coup, t'es obligé de passer par une librairie native pour lire ces formats (une librairie native = dll sous windows, so sous linux), et donc, ca crée une dépendance avec un fichier non java.
C'est la même chose pour accèder aux API Windows : il faut passer par JNI, qui permet de communiquer avec une librairie codée en C/C++, mais forcément, ca crée une dépendance : si tu accède à une API Windows, il faut faire attention soit de faire la même chose pour linux, soit ne pas lancer ton prog sous linux !
Sinon, les perfs sont une limite : un prog java prend beaucoup de mémoire : environ 64 Mo en moyenne avec une configuration de la JVM standard. Pourquoi ? Parce que java utilise un Garbage collector (comme .net qui lui aussi prend beaucoup de mémoire) qui ne libère pas tout de suite la mémoire : java fait la supposition qu'un objet, même s'il n'est plus utilisée, peut-être réutilisé afin d'optimiser les performances (c'est plus rapide de modifier un objet pour en avoir un nouveau que d'en instancier un nouveau). Ceci était vrai il y a 2-3 ans lorsque les machines avait 256-512 Mo de RAM, maintenant, la plupart des machines ont 792 à 1 Go de RAM, et l'occupation de la mémoire est moins probant. (perso, j'avais 512 Mo dont 128 Mo partagé pour la vidéo, et pour développer c'était pas le top : eclipse prend au minimum 128 Mo + mon prog en prenait 64 Mo + windows et tout les progs qui vont avec, il me restait plus beaucoup de RAM ! Maintenant que j'en ai 792, ca va beaucoup mieux !!!).
SWING est réputé également pour être lent. Perso, je l'avais remarqué au début qu'en j'utilisais très mal SWING ! Maintenant que je vois mieux comment l'utiliser, c'est déjà bien plus rapide, mais ca vaut quand même pas la rapidité d'une interface VB6 compilée ! Après faut voir avec .net. Il me semble bien que nero est fait en .net, et je le trouve aussi lent qu'un prog java SWING !
Après ce que propose casy est également une excellente alternative : Delphi (pas la version .net !). Tu as les avantages du VB6 (win32 compilé, langage simple), sans avoir son inconvénient (plus supporté).
Le risque : Borland : jusqu'à quand vont-ils réussir à tenir (des rumeurs circulaient à une époque qu'ils voulaient vendre Delphi et JBuilder).