Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/02/2011, à 09:30

Mathieu147

Langage + toolkit mulitplateformes

Bonjour,

Je cherche actuellement la meilleure combinaison langage+toolkit pour faire des applications graphiques multiplateformes.

J'ai pensé de prime abord à Java + Swing, parce que je connais bien pas trop mal ces technologies et que je compile once et puis je run everywhere. Ce qui me chiffonne un petit peu, ce sont trois choses:

  1. Sun racheté par Oracle: est-ce que ça a un impact sur Java? Pas trop je suppose, mais je pose quand-même la question;

  2. Les applications Swing avec le look GTK sur Linux, c'est pas toujours très joli. Certains widgets n'ont pas exactement la même forme, les menus ne s'intègrent pas bien avec les vrais menus GTK (surtout avec Compiz) etc.;

  3. Je ne sais plus où j'ai vu ça, mais il paraîtrait que Swing est en fait une technologie assez ancienne qui est vouée à être remplacée. Quelqu'un pourrait infirmer ou confirmer?

Sinon, il est toujours possible d'utiliser SWT à la place de Swing. Est-ce que c'est top moumoute?

Java est le langage que je connais le mieux, mais je suis ouvert à d'autres technologies. Est-ce que C#/Mono/.NET et tous ces bazar là sont plus intéressants? Ou Python?

Mon application sera essentiellement graphique, discutera «intensément» avec une base de données et fera des transferts de diverses informations (dont des fichiers) sur un réseau local.

Des commentaire/conseils à me donner?

Merci! smile


Pffff…

Hors ligne

#2 Le 09/02/2011, à 11:36

omc

Re : Langage + toolkit mulitplateformes

Mathieu147 a écrit :

J'ai pensé de prime abord à Java + Swing, parce que je connais bien pas trop mal ces technologies et que je compile once et puis je run everywhere. Ce qui me chiffonne un petit peu, ce sont trois choses:

Avec python tu n'auras même pas à compiler !

Mathieu147 a écrit :

Java est le langage que je connais le mieux, mais je suis ouvert à d'autres technologies. Est-ce que C#/Mono/.NET et tous ces bazar là sont plus intéressants?

Ben là du coup tu compiles sur du windows et tu run sur du windows aussi smile

Mathieu147 a écrit :

Python ?

Je dirais python avec les modules pyGtk, PyQt (ou tcl/tk si tu te fiches que le rendu soit moche) mais ce n'est que mon avis.
Sinon je ne connais pas Java+SWING mais j'ai lu récémment un article dessus dans le Linux mag' et il n'était pas précisé que ce soit un truc en train de mourir.

Hors ligne

#3 Le 09/02/2011, à 11:56

Mathieu147

Re : Langage + toolkit mulitplateformes

omc a écrit :
Mathieu147 a écrit :

J'ai pensé de prime abord à Java + Swing, parce que je connais bien pas trop mal ces technologies et que je compile once et puis je run everywhere. Ce qui me chiffonne un petit peu, ce sont trois choses:

Avec python tu n'auras même pas à compiler !

Ouais mais ça, bon, c'est pas comme si la compilation était un processus fatiguant big_smile

omc a écrit :
Mathieu147 a écrit :

Java est le langage que je connais le mieux, mais je suis ouvert à d'autres technologies. Est-ce que C#/Mono/.NET et tous ces bazar là sont plus intéressants?

Ben là du coup tu compiles sur du windows et tu run sur du windows aussi smile

Ben ça c'est pas du C# sur Linux?
=ss-debug-session.png

omc a écrit :
Mathieu147 a écrit :

Python ?

Je dirais python avec les modules pyGtk, PyQt (ou tcl/tk si tu te fiches que le rendu soit moche) mais ce n'est que mon avis.

Et pyGtk et pyQT c'est bien multiplateformes Windows/mac aussi?

En fait, il faut absolument que ça fonctionne sur Windows XP et 7 au grand minimum. Et sur Linux parce que j'ai envie de développer sur Ubuntu.

omc a écrit :

Sinon je ne connais pas Java+SWING mais j'ai lu récémment un article dessus dans le Linux mag' et il n'était pas précisé que ce soit un truc en train de mourir.

Ben ouais, j'ai dû me tromper… Je ne sais plus où j'ai vu ça.


Pffff…

Hors ligne

#4 Le 09/02/2011, à 13:03

omc

Re : Langage + toolkit mulitplateformes

Ouais mais ça, bon, c'est pas comme si la compilation était un processus fatiguant big_smile

Faut savoir, tu es un peu compliqué !

Ben ça c'est pas du C# sur Linux?

Si mais c'est foireux

Et pyGtk et pyQT c'est bien multiplateformes Windows/mac aussi?

Oui

En fait il y a trois poids-lourds : GTK, Qt et wxWidget (ainsi que tous les portages pythons, C++, etc...) qui sont multi-plateformes Windows/Mac/Linux.

Dernière modification par omc (Le 09/02/2011, à 14:02)

Hors ligne

#5 Le 09/02/2011, à 13:27

valAa

Re : Langage + toolkit mulitplateformes

Sinon il y a aussi la solution compile everywhere tongue : C++ avec wxWidgets ou Qt ou GTKmm, et un bon système de build genre Cmake.
C'est pas le plus simple à maintenir si tes utilisateurs ne sont pas prêts à compiler chez eux, mais ça fonctionne.

Hors ligne

#6 Le 09/02/2011, à 19:56

Le Farfadet Spatial

Re : Langage + toolkit mulitplateformes

Salut à tous !

Mathieu147 a écrit :

Je cherche actuellement la meilleure combinaison langage+toolkit pour faire des applications graphiques multiplateformes.

   Faire en sorte que les applications que l'on développe fonctionnent sur le plus de plateformes possible est une excellente habitude.

Mathieu147 a écrit :

Sun racheté par Oracle: est-ce que ça a un impact sur Java? Pas trop je suppose, mais je pose quand-même la question;

   Tu n'es pas le seul à te poser la question. D'un côté, Java est de plus en plus libre, de l'autre le rachat par Oracle rend l'avenir incertain. Sans faire de procès d'intention, je pense qu'il vaut mieux être prudent avec Java.

Mathieu147 a écrit :

Je ne sais plus où j'ai vu ça, mais il paraîtrait que Swing est en fait une technologie assez ancienne qui est vouée à être remplacée. Quelqu'un pourrait infirmer ou confirmer?

   Je ne suis pas totalement dans le secret des dieux, mais en tout cas pour ma part Swing n'est pas la technologie de choix.

Mathieu147 a écrit :

Sinon, il est toujours possible d'utiliser SWT à la place de Swing. Est-ce que c'est top moumoute?

   Personnellement, ce n'est pas une technologie vers laquelle je me tourne.

Mathieu147 a écrit :

Est-ce que C#/Mono/.NET et tous ces bazar là sont plus intéressants?

   Je te déconseille ces technologies, dont le développement est fait de manière unilatérale par une seule entreprise – le fait que cette entreprise soit Microsoft est purement anecdotique, le problème c'est que cette technologie est dépendante d'un seul acteur.

Mathieu147 a écrit :

Mon application sera essentiellement graphique, discutera «intensément» avec une base de données et fera des transferts de diverses informations (dont des fichiers) sur un réseau local.

   Donc, les parties critiques sont dans le système de requêtes de la base de données et dans la couche réseau, deux éléments sur lesquels tu ne vas pas faire de développement. Au vu de tes contraintes, la solution Python + Gtk+ me semble la plus appropriée : elle fonctionnera sur tout système utilisant X (prochainement Wayland) et en natif sous MacOS X et Windows, le seul besoin étant d'avoir un interpréteur Python (tout comme pour Java il faut une machine virtuelle fonctionnelle).

valAa a écrit :

Sinon il y a aussi la solution compile everywhere tongue : C++ avec wxWidgets ou Qt ou GTKmm, et un bon système de build genre Cmake.

   La méthode que tu proposes est en effet efficace et portable. Depuis le temps, je pense que tout le monde aura compris que je ne suis pas du tout défavorable à C++, au contraire. Cependant, je rappelle que son apprentissage est long et difficile et qu'il n'existe toujours pas de langage parfait pour tout. Ce qu'il faut, c'est chercher le langage le plus adapté aux besoins particuliers. En l'occurrence, je pense que le besoin de Mathieu147 est mieux couvert par la solution Python + Gtk+.

   À bientôt.

Le Farfadet Spatial

Hors ligne

#7 Le 10/02/2011, à 08:31

Mathieu147

Re : Langage + toolkit mulitplateformes

Le Farfadet Spatial a écrit :
Mathieu147 a écrit :

Je cherche actuellement la meilleure combinaison langage+toolkit pour faire des applications graphiques multiplateformes.

   Faire en sorte que les applications que l'on développe fonctionnent sur le plus de plateformes possible est une excellente habitude.

C'est également mon avis. Là j'ai une demande pour un programme qui devra fonctionner uniquement sur Windows, mais par «principe» (et aussi quand-même pour anticiper un peu de futures demandes qui pourraient survenir) je voudrais il faut qu'il tourne au moins sur les trois principales plateformes.

Le Farfadet Spatial a écrit :
Mathieu147 a écrit :

Sinon, il est toujours possible d'utiliser SWT à la place de Swing. Est-ce que c'est top moumoute?

   Personnellement, ce n'est pas une technologie vers laquelle je me tourne.

J'ai fait quelques tests hier, et j'ai lu quelque pages web. Pourtant ça n'a pas l'air mal du tout. On a des contrôles natifs quel que soit le système et ça a l'air assez simple et souple à utiliser.

Le Farfadet Spatial a écrit :
Mathieu147 a écrit :

Est-ce que C#/Mono/.NET et tous ces bazar là sont plus intéressants?

   Je te déconseille ces technologies, dont le développement est fait de manière unilatérale par une seule entreprise – le fait que cette entreprise soit Microsoft est purement anecdotique, le problème c'est que cette technologie est dépendante d'un seul acteur.

C'est un peu ce qui m'ennuyait aussi. Je n'ai pas envie d'apprendre un nouveau langage, une nouvelle technologie, un nouvel IDE et tout le tralala pour quelque chose qui n'en vaut pas vraiment la peine.

Le Farfadet Spatial a écrit :
Mathieu147 a écrit :

Mon application sera essentiellement graphique, discutera «intensément» avec une base de données et fera des transferts de diverses informations (dont des fichiers) sur un réseau local.

   Donc, les parties critiques sont dans le système de requêtes de la base de données et dans la couche réseau, deux éléments sur lesquels tu ne vas pas faire de développement. Au vu de tes contraintes, la solution Python + Gtk+ me semble la plus appropriée : elle fonctionnera sur tout système utilisant X (prochainement Wayland) et en natif sous MacOS X et Windows, le seul besoin étant d'avoir un interpréteur Python (tout comme pour Java il faut une machine virtuelle fonctionnelle).

Je ne me suis peut-être pas bien exprimé (ou alors je n'ai pas compris ce que tu voulais dire), mais je vais programmer tout moi-même: mon équipe de développement ne comporte qu'un seul membre big_smile

Donc je vais faire des requêtes à la base de données, programmer aussi la partie réseau etc.

Le Farfadet Spatial a écrit :
valAa a écrit :

Sinon il y a aussi la solution compile everywhere tongue : C++ avec wxWidgets ou Qt ou GTKmm, et un bon système de build genre Cmake.

   La méthode que tu proposes est en effet efficace et portable. Depuis le temps, je pense que tout le monde aura compris que je ne suis pas du tout défavorable à C++, au contraire. Cependant, je rappelle que son apprentissage est long et difficile et qu'il n'existe toujours pas de langage parfait pour tout. Ce qu'il faut, c'est chercher le langage le plus adapté aux besoins particuliers. En l'occurrence, je pense que le besoin de Mathieu147 est mieux couvert par la solution Python + Gtk+.

Oui, ça, tout le monde a compris depuis longtemps que tu aimes bien C++ big_smile

J'en ai déjà fait un petit peu pendant mes études, mais je n'avais pas tant accroché: on n'avait utilisé C++ que pour un seul cours, sans vraiment avoir eu de bonnes explications sur le langage. Ce qu'on avait fait fonctionnait fort bien mais je ne sais pas (du tout) à quel point on avait bien fait les choses ou bien si on avait programmé comme des manches.



En fait, j'aime bien Java parce que je le trouve élégant et agréable, et aussi parce que je le connais déjà. Donc je ne suis pas très impartial et objectif dans le choix des technologies, et ma question devrait peut-être être reformulée: utiliser Java + SWT, est-ce que ça peut avoir un impact négatif sur mon futur développement?


Pffff…

Hors ligne

#8 Le 10/02/2011, à 21:27

Le Farfadet Spatial

Re : Langage + toolkit mulitplateformes

Salut à tous !

Mathieu147 a écrit :

Donc je vais faire des requêtes à la base de données

   Oui, mais sauf erreur de ma part, tu ne vas pas implémenter un gestionnaire de bases de données. Tu vas te contenter de faire des requêtes.

programmer aussi la partie réseau

   Pareil, je doute que tu implémentes une pile TCP/IP. Là encore, tu seras utilisateur de la couche réseau, pas implémenteur.

   Ce que je voulais dire, c'est que les parties critiques pour ton application sont que le gestionnaire de bases de données doit être efficace, ainsi que la couche réseau. Ceci, tu ne vas pas le développer, tu vas t'appuyer sur l'existant. Donc, pour les éléments que tu vas développer toi-même, tu n'as pas besoin d'utiliser un langage compilé.

En fait, j'aime bien Java parce que je le trouve élégant et agréable, et aussi parce que je le connais déjà. Donc je ne suis pas très impartial et objectif dans le choix des technologies, et ma question devrait peut-être être reformulée: utiliser Java + SWT, est-ce que ça peut avoir un impact négatif sur mon futur développement?

   Le fait que tu connaisses le langage est un élément fort : cela va t'éviter de passer du temps à apprendre une nouvelle technologie. Globalement, Java + SWT est portable. Est-ce qu'il y aura un jour un impact négatif ? Difficile à dire. Si jamais Oracle se met à poser problème, il y aura sans doute un projet qui permettra de prendre le relais : on se trouvera plus probablement dans la situation du basculement de OpenOffice.org à LibreOffice que dans la situation de l'abandon d'OpenSolaris.

   Personnellement, je suis prudent vis-à-vis de Java et je ne le trouve pas plus élégant que Python. Cela dit, si tu es à l'aise avec Java + SWT, ce n'est sans doute pas une mauvaise solution.

   À bientôt.

Le Farfadet Spatial

Hors ligne

#9 Le 14/02/2011, à 10:56

Mathieu147

Re : Langage + toolkit mulitplateformes

Le Farfadet Spatial a écrit :

   Oui, mais sauf erreur de ma part, tu ne vas pas implémenter un gestionnaire de bases de données. Tu vas te contenter de faire des requêtes.
[..]
   Pareil, je doute que tu implémentes une pile TCP/IP. Là encore, tu seras utilisateur de la couche réseau, pas implémenteur.

Effectivement.

Le Farfadet Spatial a écrit :

   Ce que je voulais dire, c'est que les parties critiques pour ton application sont que le gestionnaire de bases de données doit être efficace, ainsi que la couche réseau. Ceci, tu ne vas pas le développer, tu vas t'appuyer sur l'existant. Donc, pour les éléments que tu vas développer toi-même, tu n'as pas besoin d'utiliser un langage compilé.

Ok, je vois ce que tu veux dire, et je suis d'accord.

Le Farfadet Spatial a écrit :

   Personnellement, je suis prudent vis-à-vis de Java et je ne le trouve pas plus élégant que Python. Cela dit, si tu es à l'aise avec Java + SWT, ce n'est sans doute pas une mauvaise solution.

Je ne sais pas vraiment si Python est plus ou moins élégant que Java, mais c'est vrai que je connais Java et pas Python.

Quand j'ai fait mes études, on faisait pas mal de Java, donc je le connais bien. Maintenant je ne sais pas si on fait toujours autant de Java là où j'ai eu mon diplôme, mais je sais qu'ils ont changé des cours et qu'ils font du Python…


Pffff…

Hors ligne