Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2995 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Topic unique] SwingWT: Un projet libre pour generer du code natif

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Topic unique] SwingWT: Un projet libre pour generer du code natif

n°765222
tanguy
Posté le 16-06-2004 à 02:22:18  profilanswer
 

Je fais un peu de pub pour un logiciel libre qui gagne a etre connu.
 
NEWS: SwingWT fait partie de Debian, on peut esperer que d'autres distribs suivent.
 
Introduction
 
Tout le monde connait SWT, la librairie graphique libre pour Java cree par IBM et qui est notamment utilise par le projet Eclipse http://eclipse.org/
 
Cette librairie a pour particularite (contrairement a SWING la librairie graphique standard de Java) d'etre native au systeme: par exemple sous Linux, une application SWT est en fait une application gtk. L'avantage principale est la rapidite accrue par rapport a SWING.
Pour en savoir plus sur SWT: http://en.wikipedia.org/wiki/SWT
 
SwingWT: c'est quoi et ca apporte quoi ?
 
SwingWT http://swingwt.sourceforge.net/ est une re-implementation des widgets SWING en SWT. Ceci apporte qu'en programmant en Java/SWING standard, on peut fournir une application dont la partie graphique est native a l'environnement grace a SWT sans changer une ligne de code, juste en "recompilant". voila un screenshot: http://swingwt.sourceforge.net/ss22.png
 
L'etat d'avancement du projet ? SwingWT is into beta now - everything seems to work, it has received some good testing, but some items may be missing (Swing is a BIG API after all). There's probably a few bugs still in there as well
 
SwingWT + GCJ
 
Mais la ou cela devient vraiment interessant c'est de coupler GCJ (partie Java de GCC http://gcc.gnu.org/java/ ) et SwingWT. On obtient alors un programme compile natif (plus besoin de la JVM), bref c'est comme du C/gtk, C++/Qt ou MFC en gros mais avec tous les avantages de Java (temps de developpement diminue).
 
This is Cool GCC: SwingWT + GCJ sous Windows
 
Un developpeur a package SWT, SwingWT et MingW sous windows pour directement pouvoir compiler du code Java/SWING en natif sous Windows. J'ai essaye et ca fonctionne. http://thisiscool.com/gcc_mingw.htm
 
J'ai pu m'amuser (des petites demos) avec et c'est carrement plus rapide que le meme programme version SWING + JVM puisqu'il n'y a pas le temps de chargement de la JVM et SWT reagit beaucoup plus vite que SWING. Le probleme c'est que GCJ ne supporte pas encore toute les classes du JDK1.4, par exemple pour javax.crypto il faudra faire appelle a GNU Crypto et pour javax.net.ssl a Jessie.
 
SWTSwing
 
Un autre projet amusant mais peut etre moins interessant finalement: http://chrriis.brainlex.com/projects/swtswing/
C'est exactement l'inverse de SwingWT, c'est l'implementation de SWT en utilisant les classes de SWING: on obtient un programme SWT aussi portable que le meme ecrit en SWING.
 
Conclusion
 
Bref on va finalement arriver a un Java standard entierement libre et aussi rapide que du C++ grace a GCC, SWT et SwingWT, de la balle non ? On pourra livrer le .jar puis compile en natif le soft sans changer une ligne de code, avoir le meilleur des 2 mondes suivant les besoins.
 
La page SourceForge du projet http://sourceforge.net/projects/swingwt (la page sur SourceForge a ete ouverte en octobre 2003)
 
PS: c'est encore au stade BETA donc a tester sans se plaindre que tout ne fonctionne pas encore.


Message édité par tanguy le 09-10-2004 à 17:28:02
mood
Publicité
Posté le 16-06-2004 à 02:22:18  profilanswer
 

n°765232
uriel
blood pt.2
Posté le 16-06-2004 à 07:56:54  profilanswer
 

c'est pas nouveau :??:
mais c'est un chouette projet c'est vrai, pas encore testé


---------------
IVG en france
n°765338
EpoK
Let's burn
Posté le 16-06-2004 à 10:02:55  profilanswer
 

cool

n°765538
seabee
Posté le 16-06-2004 à 11:52:04  profilanswer
 

Mais où est passé le plaisir de se farcir le code JFace/SWT à la main?
Stune tragédie pour le programmeur qui aime les belles choses :o

n°765706
R3g
fonctionnaire certifié ITIL
Posté le 16-06-2004 à 13:55:34  profilanswer
 

SwingWT, d'accord ça peut être intéressant, mais compiler en natif franchement non quoi.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°765769
nraynaud
lol
Posté le 16-06-2004 à 14:30:55  profilanswer
 

mouais, et le système d'UI de swing, il devient quoi ?  
Le modèle Document/View ?
ça s'intègre comment avec les composants lightweight ?


---------------
trainoo.com, c'est fini
n°765770
R3g
fonctionnaire certifié ITIL
Posté le 16-06-2004 à 14:32:32  profilanswer
 

A votre avis c'est possible de faire un L&F swing qui utilise les composants natifs du système ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°765792
uriel
blood pt.2
Posté le 16-06-2004 à 14:38:36  profilanswer
 

R3g a écrit :

A votre avis c'est possible de faire un L&F swing qui utilise les composants natifs du système ?


 
en passant par JNI ?
 
[:neowen]


---------------
IVG en france
n°765809
bjone
Insert booze to continue
Posté le 16-06-2004 à 14:44:11  profilanswer
 

je vais ptet dire une connerie, mais c'est l'ihm qui utilise du code natif.
 
le code java en amont passe toujours par une machine virtuelle.

n°765814
nraynaud
lol
Posté le 16-06-2004 à 14:45:46  profilanswer
 

R3g a écrit :

A votre avis c'est possible de faire un L&F swing qui utilise les composants natifs du système ?

plus ou moins, je soupçonne que le l&f de mac os x est fait comme ça. Techniquement, je rame un peu entre composants léger et composants lourds, et cette distinction semble importante pour les choses un peu natives.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 16-06-2004 à 14:45:46  profilanswer
 

n°766173
tanguy
Posté le 16-06-2004 à 17:10:11  profilanswer
 

R3g a écrit :

compiler en natif franchement non quoi.


 
Pourquoi c'est quoi le probleme ? C'est le meme code source, rien a changer. Sauf que en plus de fournir le .jar comme d'hab tu peux aussi fournir un binaire natif pour Windows ou Linux pour ceux qui veulent. Je pense meme qu'a partir .jar sans le code source tu peux generer le binaire avec GCJ et SwingWT. Et franchement vu la difference au niveau de l'occupation memoire, temps de demarrage, latence de la GUI, integration vis a vis de l'OS ba y'a pas photo. Au niveau developpement ce qui est certain c'est qu'il vaut mieux utiliser la JVM plutot que GCJ car la compilation peut prendre beaucoup de temps.

n°766180
tanguy
Posté le 16-06-2004 à 17:13:54  profilanswer
 

bjone a écrit :

je vais ptet dire une connerie, mais c'est l'ihm qui utilise du code natif.
le code java en amont passe toujours par une machine virtuelle.


 
L'IHM (=SwingWT) utilise du code natif (=SWT). Mais on peut coupler SwingWT avec GCJ qui lui est un vrai compilateur Java et produit du code natif comme le fait GCC pour C, C++, Fortran, ADA et Objective-C.
Donc dans ce dernier cas de figure on peut se passe completement de la machine virtuelle.

n°766186
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 16-06-2004 à 17:15:59  profilanswer
 

tanguy a écrit :

L'IHM (=SwingWT) utilise du code natif (=SWT). Mais on peut coupler SwingWT avec GCJ qui lui est un vrai compilateur Java et produit du code natif comme le fait GCC pour C, C++, Fortran, ADA et Objective-C.
Donc dans ce dernier cas de figure on peut se passe completement de la machine virtuelle.


Ouais enfin j'demande à voir la taille de l'exécutable final [:xx_xx]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°766245
Jubijub
Parce que je le VD bien
Posté le 16-06-2004 à 17:36:50  profilanswer
 

au niveau de tt ce que fait la JVM (inlining, JIT compilation, et surtout la garbage collection) ca donne quoi avec GCJ ?
 
sinon je trouve ca intéressant...mais faut voir ce que la 1.5 va ajouter à swing en terme de rapidité...si ca devient aussi rapide que SWT, y'aura pas besoin de ça...
 
-->après lecture de la TODO, y manque 2-3 trucs encore...mais si le gars s'est tapé tt l'api swing, je dis chapeau


Message édité par Jubijub le 16-06-2004 à 17:45:39
n°766676
tanguy
Posté le 17-06-2004 à 06:42:12  profilanswer
 

Jubijub a écrit :

au niveau de tt ce que fait la JVM (inlining, JIT compilation, et surtout la garbage collection) ca donne quoi avec GCJ ?


 
Cf http://www.linuxjournal.com/article.php?sid=4860 GCJ semble se comporter pas trop mal. Mais j'ai pu lire aussi des commentaires qui disait souvent que GCJ etait plus lent que la JVM. Remarque il y a souvent des articles pour dire que la JVM est plus rapide que du code C++ compile. Personnellement (et je ne suis pas le seul) a chaque fois que je lance un programme Java je trouve ca lent de maniere generale: GUI, temps de lancement, occupation memoire et c'est justement a ce niveau la que GCJ + SwingWT remet les pendules a l'heure.
 

Jubijub a écrit :


après lecture de la TODO, y manque 2-3 trucs encore...mais si le gars s'est tapé tt l'api swing, je dis chapeau


Ba si il a fait ca ! et les 2-3 trucs qui manquent dans le TODO sont, je pense, des details.


Message édité par tanguy le 17-06-2004 à 06:43:12
n°766677
tanguy
Posté le 17-06-2004 à 06:48:26  profilanswer
 

Taiche a écrit :

Ouais enfin j'demande à voir la taille de l'exécutable final [:xx_xx]


 
L'exemple SwingBrowser.java du CVS de SwingWT donne un .exe de 8Mo avec this-is-cool-gcc en compilant tout en statique. Enfin c'est normal ils peuvent pas faire autrement. C'est comme si les programmes windows etaient compiles statiquement en integrant toutes les dll dont la MFC. Faudrait essayer sous linux puisqu'alors les programmes utiliseraient que des librairies dynamiques .so correspondant a GCJ et autres. Par exemple MINGW (version de GCC pour windows) donnent des binaires beaucoup beaucoup plus gros que GCC sous Unix.

n°767504
nraynaud
lol
Posté le 17-06-2004 à 15:20:58  profilanswer
 

tanguy a écrit :

Cf http://www.linuxjournal.com/article.php?sid=4860 GCJ semble se comporter pas trop mal. Mais j'ai pu lire aussi des commentaires qui disait souvent que GCJ etait plus lent que la JVM. Remarque il y a souvent des articles pour dire que la JVM est plus rapide que du code C++ compile.

1) c'est un article d'un mec impliqué dedans, donc bon, niveau crédibilité c'est pas top
 
2) tu peux compiler tout ce que tu veux, mais avec un GC aussi pourri que Bohem, c'est pas compliqué de se prendre une taule par VisualWorks 3.5 dès qu'on fait tourner un peu la mémoire.


---------------
trainoo.com, c'est fini
n°768233
the real m​oins moins
Posté le 18-06-2004 à 07:38:28  profilanswer
 

Jubijub a écrit :


sinon je trouve ca intéressant...mais faut voir ce que la 1.5 va ajouter à swing en terme de rapidité...si ca devient aussi rapide que SWT, y'aura pas besoin de ça..

mais ça l'est déjà, suffit de pas coder comme un goret[:kiki]
(à l'inverse, avec swt, t'es obligé [:kiki])
 
 
 
 
 [:ninipc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°769521
veryfree
Posté le 18-06-2004 à 19:08:19  profilanswer
 

drapal

n°769851
perchut2
Hell, it's about time...
Posté le 19-06-2004 à 13:10:08  profilanswer
 

[:drapo]

n°769858
Jubijub
Parce que je le VD bien
Posté le 19-06-2004 à 13:23:53  profilanswer
 

je vois qd même pas l'intéret de code en natif du java ....code once, run everywhere, ct du vent ???


---------------
Jubi Photos : Flickr - 500px
n°769865
nraynaud
lol
Posté le 19-06-2004 à 13:37:55  profilanswer
 

oui, mais la compilation en natif aussi.


---------------
trainoo.com, c'est fini
n°769869
Jubijub
Parce que je le VD bien
Posté le 19-06-2004 à 13:40:23  profilanswer
 

sauf qu'il faut le recompiler pour chaque plateforme si je me goure pas ?


---------------
Jubi Photos : Flickr - 500px
n°769873
nraynaud
lol
Posté le 19-06-2004 à 13:43:03  profilanswer
 

oui, mais de toutes façon il faut packager et intégrer (le tray dans ouinouin, les ApplicationHandler sous OS X etc.) pour chaque plateforme.


---------------
trainoo.com, c'est fini
n°769875
Jubijub
Parce que je le VD bien
Posté le 19-06-2004 à 13:46:32  profilanswer
 

ca pourrait etre intelligent que Sun se penche là dessus...
 
parce que dès longhorn, le C# sera plus ou moins natif...


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Topic unique] SwingWT: Un projet libre pour generer du code natif

 

Sujets relatifs
Peut on inserer du code php dans une base de donnée ?Générer de l'html
recuperer une variable javascript dans du code php entre 2 pagestopic unique sur SMALLTALK ?
[JAVA] Votre code Swing(ou autre) vous l'organisez comment ?pourquoi ce code ne compile pas ? (MACOSX user asked)
Un "clone" libre du présent forum :DPb : Comment afficher un texte dans une état access avec code VBA
Impossible de créer l'en-tête pré-compilé : code dans l'en-têteEcrire un fichier txt codé en utf-8
Plus de sujets relatifs à : [Topic unique] SwingWT: Un projet libre pour generer du code natif


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR