Journal Les outils pour développer

Posté par  .
Étiquettes : aucune
0
2
sept.
2003
Je programme un peu sous Linux en c/c++, et comme j'en ai un peu marre de me limiter à des interfaces en ncurses (sympa le machin cela dit :-)), je suis en train de regarder les outils qui existent pour XWindow.

Je me dit qu'un IDE ca serait cool, un machin pour faire les interfaces à la souris, ca serait mieux, ca n'est pas super gratifiant à se coltiner ca :)
De plus, si la lib graphique permet de faire du cross plateforme windows/linux (avec le meme source) ca serait un plus.

Amis développeurs de clickodromes, qu'utilisez-vous ?

Voici déjà les outils dont j'ai entendu parler :

- kdevelop : j'ai essayé. Ca met trois plombes à compiler une fenetre avec "hello world", ca m'a l'air super lourd et demandeur de ressources comme pas deux, donc j'ai pas trop aimé et ne me donne pas vraiment envie de développer avec la lib Qt.

lazarus : j'aime assez bien, mais il encore en plein developpement donc pas vraiment utilisable pour des projets concrets je pense.

machins java : depuis les projets scolaires, mon docteur m'a formellement déconseillé ce langage pour ma santé :-)

Ceux-ci, j'en ai juste entendu parler, je ne sais pas ce qu'ils valent :

vdkbuilder
Anjuta/glade
fltk

Merci à ceux ou celles qui pourront me guider dans mon choix :-)
  • # Re: Les outils pour développer

    Posté par  . Évalué à 3.

    Moi je suggère emacs+glade (glade permet de creer des interfaces graphiques gtk) et ensuite t'utilises la libglade pour charger ton ui, et t'écris le reste du prog avec emacs (t'as aussi le droit d'utiliser vim à la place d'emacs ;)
    Si tu veux faire du cross platform, qt et gtk ca marche (qt marche probablement un peu mieux), garde en tête que tu peux pas faire un logiciel libre cross platform avec qt...
    • [^] # Re: Les outils pour développer

      Posté par  (site web personnel) . Évalué à 1.

      y'a pas wxwindows ou un truc du genre comme widget portable ?

      "La première sécurité est la liberté"

    • [^] # Re: Les outils pour développer

      Posté par  . Évalué à 1.

      Qt (2.x pour rester libre je sais :-)) plus portable que gtk ? Pourtant, la plupart des applis que je sais exister à la fois sous windows et sous linux utilisent gtk.
      • [^] # Re: Les outils pour développer

        Posté par  . Évalué à 1.

        il me semble -mais je peux me tromper- que les dev de gtk et donc de gimp ont dis que la version windows n'est pas aussi stable que cela ou un truc du genre, et que donc le portage n'est pas forcément réussissable (euh barbarisme ça)
        • [^] # Re: Les outils pour développer

          Posté par  . Évalué à 1.

          Ouais, c'est ça que je voulais dire, que la version windows de qt (et surtout l'obtention d'un comportement identique entre les versions win et linux d'une appli) était probablement plus aboutis. Mais gtk sous windows marche aussi très bien :)
  • # Re: Les outils pour développer

    Posté par  . Évalué à 1.

    Pour ma part, ca serait :

    ANJUTA
    GLADE

    Le tout avec les librairies GTK. Elles fournissent une librairie d'outils standards ( qui n'ont rien à voir avec Xwindow) , la GLIB. On y trouve des outils de traitement de caractères, gestions des listes chaînées, des arbres (binaires) et d'autres encore. Ensuite il y a la GDK qui fourni des fonctions juste au dessus de la Xlib (accés intéressant pour un affichage graphique type dessin) et enfin la librairie GTK qui est au dessus des deux précédentes, qui comporte les fenetrages au niveau utilisés pour la création d'interface proprement dite.

    Glade est un IDE de création d'interface orienté GTK.
    ANJUTA est un IDE de programmation C,C++ et surement d'autres langages.

    Bien sûr, il existe on nombre d'autres librairies, telle que la QT3 que tu cite aussi, mais je ne les connais pas. D'autres se feront un plaisir d'argumenter.
    • [^] # Re: Les outils pour développer

      Posté par  . Évalué à 1.

      Tu utilise Anjuta ? L'Ide est réactif ? compilation pas trop poussive (kdevelop m'a impressionné par ce dernier point tellement tout était leeeeent ) ?

      Ah, je m'apercois que j'ai oublié de préciser que mon portable tourne en 800x600, donc pas question d'outils qui ne sont pas parfaitement compliants avec cette résolution :-)
      • [^] # Re: Les outils pour développer

        Posté par  . Évalué à 1.

        Hé bien, pour tout dire, j'utilisais Anjuta jusqu'à il y a peu, mais n'étant pas un pro de la compilation sous linux, je ne comprenais pas tout les fichiers créés par cet IDE.

        Je suis donc revenu au bon vieux traitement de texte. J'utilise kate ( qui bogue de temps en temps : la souris disparaît ! ) qui permet d'avoir plusieurs fichiers ouverts en même temps et un terminal qui permet de lancer les compils. J'ai écris un Makefiles rudimentaire pour compiler mon appli et voila.

        Maintenant, le temps de compil entre Anjuta et un make direct est sensiblement identique ( je travaille actuellement sur un portable aussi ).
  • # Re: Les outils pour développer

    Posté par  . Évalué à 1.

    qtDesigner (livrée avec la lib de dev qt)+terminal pour lancer les compile

    Kate (avec coloration syntaxique) + plugin console activité
  • # Re: Les outils pour développer

    Posté par  . Évalué à 1.

    Tu peux aussi essayer glade qui permet de faire facilement une interface gtk et qui est "portable" (mais beaucoup moins que Qt).

    La compilation d'applications Qt est très longue c'est vrai (ça l'est généralement pour les applications c++).

    Si tu veux essayer Python, il y a Boa, c'est un IDE qui permet de faire des interfaces graphiques à la souris avec la librairie wxWindow (portable).

    Mais sincérement, je te conseil de te plonger plus longuement dans la librairie Qt, avec son IDE Qtdesigner, c'est vraiment très puissant, propre, bien documenté, parfait si tu aimes le C++, l'héritage de classes, etc
    Pour faire un version portable, il faudra utiliser Qt 2.x seulement car la version 3.x n'existe pas en version libre sous windows actuellement.
    Une fois que tu aura découvert la facilité d'utilisation de Qt, tu oubliera la lenteur de la compilation.

    Sinon, pour améliorer les temps de compilation, essayes ccache.
    • [^] # Re: Les outils pour développer

      Posté par  . Évalué à 1.

      Pour tester kdevelop, je ne me suis pas embêté : nouveau projet, défilement des pages du wizard, puis compilation. Il m'a trouvé des erreurs dans un makefile - dont j'ai trouvé la taille monstrueuse pour une petite appli - généré automatiquement ! ca commencait bien.
      Attendre plus d'une minute pour compiler une malheureuse fenetre vide, j'ai trouvé ca un peu abuser. Qu'est-ce que ca va etre avec des applis de taille conséquentes ? je sais bien que toutes les parties d'un projet ne sont recompilées qu'en cas de modification, mais ca m'inquiètes quand meme.

      Merci cependant pour tes conseils :-) Je vais me pencher également sur le cas de python/boa (on peut faire des binaires avec python, je veux dire que l'utilisateur n'a pas forcément besoin de python installé ?)
      • [^] # Re: Les outils pour développer

        Posté par  (site web personnel) . Évalué à 2.

        > Qu'est-ce que ca va etre avec des applis de taille conséquentes ?

        tu peux compter une bonne grosse minute par fichier, pour des fichiers de ~1000 lignes

        et je suis bien d'accord, c'est extrêmement casse-couille
      • [^] # Re: Les outils pour développer

        Posté par  . Évalué à 1.

        KDevelop contruit les fichiers nécessaire au fonctionnement de autoconf/automake et fait un ./configure la première fois que tu compiles, donc ça explique en partie le temps qu'il lui a fallu.
        • [^] # Re: Les outils pour développer

          Posté par  . Évalué à 1.

          Mhmm, d'après ce que j'ai vu, le ./configure est lancé lors de la génération du projet (qui dure un bout de temps lui aussi).
          Bon, je donne quand même une chance à kdevelop, et fais quelques essais avec. J'ai pas vraiment de bol ceci dit, puisque QtDesigner se bloque systématiquement au lancement (cpu à 100%, ne semble rien faire) si le fichier ~/.qt/qt_designerrc existe (et comme il est créé automatiquement à chaque lancement, ca freeze une fois sur deux).
          Vous remarquerez que je reste malgré tout patient et continue de laisser sa chance à kdevelop&cie :-)
    • [^] # Re: Les outils pour développer

      Posté par  . Évalué à 1.

      Arf, je viens de tester QtDesigner, il n'a pas l'air vraiment 800x600 compliant celui-là, encore un mauvais point :-( A moins qu'il soit possible de décrocher la fenetre de prévisu de la form.
    • [^] # Re: Les outils pour développer

      Posté par  . Évalué à 1.

      Ne nous emballons pas...
      Tu laisses entre que Qt 2.x est disponible en version libre sous windows ce qui est totalement faux. Il existe une version gratuite c'est vrai mais c'est tout.
      D'ailleurs, le fait que la version windows de Qt 3.x ne soit pas distribué sous license libre n'empêche pas de compiler avec la version QPL et de distribuer la version ainsi générée, ainsi que ses sources... c'est juste que tout un chacun ne pourra pas le compiler lui-meme.

      Pour revenir à Qt, c'est une librairie C++ que je trouve pour ma part extremement bien faite et facile d'utilisation, avec ou sans QtDesigner d'ailleurs.
      Concernant le temps de compilation, cela ne m'a jamais choqué, je pense que ce n'est pas plus ou moins long qu'une autre bibliothèque C++.
  • # Re: Les outils pour développer

    Posté par  . Évalué à 3.

    Je suis deja intervenu dans une de mes réponses en parlant de Qt... je voudrais apporter qq precisions et parler de mon expérience personnelle puisque c'est ce que tu demandes :-)
    (bien sur selon le type d'applications que tu veux realiser, mon experience sera +/- pertinente...)

    J'utilise frequemment Qt que ce soit professionnellement ou pour mes logiciels (libres) perso. A la fois sous windows et sous linux.
    Je tiens à préciser que j'adore le C++ donc ca conditionne peut-être mon choix par rapport à des bibliothèques C, java ou même "C objet qui n'est pas du C++" :-).

    Je ne suis pas un fan de RAD (ce que tu appelles "clickodrome" :-) ) mais j'utilise parfois QtDesigner que je trouve réellement très performant (en comparaison de ce que propose Visual 6 par exemple), mais je dis pas qu'il y a pas mieux (de toute facon, je suis pas fan et l'avantage de Qt c'est que ce n'est pas très coûteux de coder une interface "à la main", mais c'est aussi une question d'habitude).

    Je n'ai jamais utilise KDevelop, j'en ai entendu de bons echos, mais sans reellement utiliser personnellement. Un de ses avantage est de servir d'environement de developpement... mais j'utilise qmake pour generer mes Makefile et ca simplifie tout aussi bien ma vie. Comme quelqu'un l'a recommande plus haut, utiliser Kate comme editeur et lancer des make dans la console marche tres bien :)

    Concernant la portabilite windows/linux elle est quasi parfaite, il est tres rare d'avoir plus qu'a re-compiler (en fait le portage joue plus sur les differences entre les compilateurs utilises sur le code ecrit et non pas sur l'utilisation de Qt).

    Mais le principal avantage de Qt est surtout que c'est une bibliothèque fabuleuse! C'est du c++ propre, les API sont bien concues, les developpeurs sont manifestement doues, la documentation est excellente, les evolutions sont regulieres et coherentes et il y a une grande communaute autour... Maintenant, je ne force personne a utiliser Qt :-)) Mais pour realiser des applications performantes rapidement et proprement je trouve que c'est un bon choix (si tu aimes le c++, bien sur).
    A noter que si tu preferes le python, tu peux utiliser le binding pyQt :-)

    En tout cas, il faut bien distinguer le fait d'utiliser/aimer KDevelopp et le fait d'utiliser/aimer Qt, ce n'est pas du tout la même chose!
    • [^] # Re: Les outils pour développer

      Posté par  . Évalué à 1.

      Bon, lançons un troll, c'est même pas la peine de me répondre :)

      > C'est du c++ propre

      mais il faut quand meme utiliser un precompilateur, et ca réinvente la roue au lieu d'utiliser la stl :)

      Y a aussi des bindings python et c++ pour gtk+ (qui s'intègrent bien avec la stl eux :)
      • [^] # Re: Les outils pour développer

        Posté par  . Évalué à 1.

        Tu pourrais meme rajouter
        "et d'abord Qt c'est pas libre il faut donc utiliser gtk+ qui est totalement libre"
        afin de continuer dans les affirmations erronees trollesques.

        A noter a ce sujet que je considere qu'une bibliotheque GPL c'est mieux (dans le sens "plus libre") qu'une bibliotheque LGPL... mais c'est une question de gout, c'est sur :-)
        • [^] # Re: Les outils pour développer

          Posté par  . Évalué à 2.

          Y a quoi d'erroné dans mon post ? Et oui, Qt sous windows c'est pas libre, donc Qt n'est pas top pour faire du developpement libre cross platform. C'est d'ailleurs assez amusant, beaucoup de défenseur de Qt passent leur temps à dire « Qt c'est libre » (sous entendu sous windows), « Qt c'est cross platform », mais disent beaucoup trop rarement de façon explicite que Qt Win n'est *pas* libre, et donc Qt ne marche pas pour du devel libre cross platform.

          Je préfère effectivement Gtk+ à Qt, mais si tu lis mes autres posts dans ce thread, tu verras que je défends aussi un peu Qt, mon but c'est pas de faire utiliser Gtk+ à tout prix, mais plutôt de donner diverses infos qui peuvent aider la personne ayant posté ce journal à faire son choix. Encore une fois si y a des trucs faux dans ce que j'ai dit, merci de me corriger plutôt que de laisser entendre que je dis n'importe quoi sans te justifier.

          Et mes remarques à la con sur Qt, c'était plus en réaction au post d'avant du type « Moi je suis un informaticien professionnel et un pro du c++, et je peux vous dire que Qt c'est parfait de chez parfait ». C'était une réaction vaguement trollesque pour nuancer un peu ton propos
          • [^] # Re: Les outils pour développer

            Posté par  . Évalué à 4.

            Hummm, tu sembles un peu t'enerver, ce n'etait pas mon but.
            Etant donne que tu ne te justifiait pas non plus et que tu mettais pleins de smiley, je pensais pouvoir en faire autant sans paraitre impoli... Bon, je vais donc tenter de mieux m'expliquer alors.
            En particulier, je ne t'accuse aucunement d'attaquer Qt.

            Concernant Windows (ca reprend un post que j'ai fait un peu plus haut dans ce journal mais je vais tacher de le preciser), il est vrai que la version Qt pour Windows n'est pas disponible en GPL.
            Je tiens d'ailleurs à nouveau à préciser que la version "non commerciale" de qt 2.3.2 sous windows n'est pas une version libre (pour plus de détail, le mieux est de lire la license sur le site de Trolltech. Pour le reste, il est tout à fait possible de faire du free software avec les versions windows de Qt, c'est très clairement dit par Trolltech. Il n'empêche qu'il faut acheter la license windows et que les sources de la version windows de Qt (pas du logiciel) ne doivent pas être distribuables. Je suis d'accord que tout le monde ne peut pas se payer ce genre de license mais on peut éventuellement trouver quelqu'un qui a cette license et qui accepte de vous le faire (vu que cela ne nécessite (quasiment) pas de changement par rapport au code fonctionnant sous unix. Je n'ai pas dit que Qt était GPL sous Windows mais il permet du développement de free software (c'est ce que j'ai dit).

            J'ai peut-être été un peu maladroit dans mon premier message si tu y as compris que je disais « Moi je suis un informaticien professionnel et un pro du c++, et je peux vous dire que Qt c'est parfait de chez parfait »... je voulais simplement mettre en garde qu'il fallait juger mes propos dans un contexte "developpement en C++" parceque l'auteur du journal ne paraissaît pas être fixé sur le choix de son langage de prédilection et je sais très bien par expérience que si sa passion c'est de développer en C ou en Java ou autre, tous les avantages que pourra présenter Qt ne seront d'aucun intérêt pour lui.

            Concernant l'emploi d'un précompilateur dans Qt, Trolltech s'est déjà longuement exprimé à ce sujet et a justifié ses choix. En très gros, les arguments de Trolltech sont qu'il est vrai que cela impose d'utiliser une macro "Q_OBJECT" à mettre dans les .h et à utiliser moc. Concernant l'usage d'une macro, c'est en effet pas très propre mais bon, c'est la seule à utiliser (je ne connais pas gtk+ mais il m'avait semblé comprendre qu'il fallait aussi utiliser des macros et même plus qu'une ?). La justification du précompilateur est que cela permet d'écrire un code simple et lisible et évite l'écriture d'un code fastidieux et répétitif pour la gestion des signaux/slots. Maintenant quand je dis que le code de Qt et ses API sont en c++ propre et bien maîtrisé, il faut voir l'ensemble de la bibliothèque et de son code et aller plus loin que l'emploi de moc, je parle de l'utilisation réelle de la bibliothèque pour un développeur : cohérence de l'ensemble, fonctionnalités offertes, facon de l'employer (pas de bidouilles pour utiliser telle ou telle classe ou pas de risque de plantage si on hérite d'une classe sans surdéfinir telle autre méthode, pas d'utilisation abusives de macros, etc... bref une maitrise du c++ correcte et non pas approximative comme cela existe dans d'autres bibliotheques). Il est à noter que le précompilateur est parfaitement integre dans les outils de dev et que generalement on n'a pas a s'en préoccupper (notamment grace a qmake mais il existe d'autres moyens). Ce que je reproche a la phrase "il faut quand meme utiliser un precompilateur", c'est que souvent c'est l'argument simpliste utilise par certains comment argument supreme pour denigrer Qt en disant que c'est du coup tres sale a utiliser ce qui n'est pas le cas a mon avis.

            Et enfin (desole je suis long quand je donne des explications), concernant "ca réinvente la roue au lieu d'utiliser la stl", Trolltech a toujours ete tres clair a ce sujet : ils fournissaient des classes "stl-like" afin que les personnes travaillant avec des compilateurs c++ n'ayant pas la stl ne soient pas handicapees (Trolltech a commence en 1994 ne l'oublions pas et ils vivent de la vente de leur bibliotheque a des entreprises donc je suppose qu'il y avait au moins a l'epoque un interet pour eux a le faire). Mais Qt fonctionne tres bien avec la stl, les classes sont memes adaptees pour (par exemple les algorithmes de la stl sont applicables aux classes Qt, il y a des conversions, etc...) et c'est donc totalement compatibles (accessoirement je trouve qu'un cerains nombres de classes qt sont plus pratiques (et plus de fonctionnalites))

            Voila, voila :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.