Journal CDT 3.0 pour eclipse.

Posté par  .
Étiquettes : aucune
0
21
août
2005
Voilà, le nouveau CDT est sorti pour eclipse 3.0. Cela nous fait donc un excellent (outre les trolls habituels sur eclipse) environnement de développement C/C++ multi-platesformes (et libre).
Au menu :
-Support toutes les fonctionnalités d'eclipse (dont les java-istes connaissent très bien la puissance et le confort)
-Amélioration du parsing du langage (et du DOM associé pour la vue interne d'eclipse) particulièrement pour le formatage K&R.
-Meilleure indexation.

Concretement, tout est accéléré, rendant CDT exploitable, dont les suggestions de complétion se font maintenant en temps normal (et oui avant il fallait attendre 3-4 seconde pour la complétion sur mon AMD 2700+). Je suis ravis d'imaginer que je vais pouvoir coder en C++ avec autant de plaisir qu'en java, c'est trollesque, mais je trouve eclipse admirable, et je n'ai jamais trouver mon bonheur chez les IDE libres.


Page de CDT: http://www.eclipse.org/cdt/(...)
  • # Complétion

    Posté par  . Évalué à 3.

    J'ai testé tout à l'heure cette nouvelle version de CDT, effectivement y'a pas mal de nouvelles choses qui sont très bien.
    Mais un truc que je reproche à tous les IDE libre que je peux essayer c'est que la complétion c'est vraiment très loin de ce que propose Visual Studio. Au début je comprenais pas pkoi on m'en disait tant de bien, mais après essai, y'a pas photo...

    Mais bon que CDT continue comme ça, ils sont sur la bonne voie :)
    • [^] # Re: Complétion

      Posté par  . Évalué à 4.

      T'es gentil de nous parler de visual studio, mais tout le monde ne peut pas se l'offrir !
      Il a quoi de si différent ? Parce que netbeans (je code surtout en Java en ce moment) a une complétion du tonnerre à mon goût...
      • [^] # Re: Complétion

        Posté par  . Évalué à 3.

        Au passage : tous les langages ne peuvent pas être auto complétés, il faut y penser. En python par exemple, c'est impossible d'avoir une auto complétion fiable. Voici un exemple :
        class test:
          def coucou(self):
            self.coucoued = True
          def hello(self):
            print "hello"
        
        a = test()
        a. => coucou et hello, pas de problème
        a.coucou()
        a. => coucoued ne peut être vu ! Sauf si le programme est exécuté par l'auto complétion, ce qui serait une aberration !
        • [^] # Re: Complétion

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

          ipython fait déjà quelques trucs sympas niveau complétion : sur les méthodes, les noms de variables, etc.
          Évidemment, c'est un interpréteur, pas un IDE, mais c'est pratique tout de même.

          Sinon pour une complétion à la VS sous un éditeur décent (mais seulement sous windows), ya Intelisense : http://www.vim.org/scripts/script.php?script_id=747(...)
          Jamais essayé, j'ai pas Windows.
      • [^] # Re: Complétion

        Posté par  . Évalué à 2.

        Ben je suis étudiant en info, et l'école a les licences donc bon ;)
        Mais la complétion est vraiment bien foutue je trouve, les méthodes, variables, etc sont bien différenciées. Au niveau des méthodes, une description de la méthode est données avec ses arguments ainsi que le nombre de surcharges disponibles. Enfin réellement le mieux c'est de tester pour bien s'en rendre compte :)

        Après pour ta remarque de ton second post, on parlait de CDT là, donc de C/C++ et pas de python ;)
        • [^] # Re: Complétion

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

          Au sujet de Visual Studio, j'ai entendu parler d'une version gratuite (pas libre hein, faut pas rêver...) de Visual Studio, permettant notamment de développer sur Windows CE ET WindowsXP en conservant 80% de son code,

          bref, une GROSSE claque pour les kits de dev pour palm et autres linux embarqués ...
        • [^] # Re: Complétion

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

          La complétion de Visual Studio est pas mal dans le sens où elle est assez rapide comparé à celle de CDT. Mais par contre, au niveau des choix proposé, je trouve qu'elle merdouille un peu.
          Par exemple, les fonctions proposé ne sont pas dans le champ d'application autorisé.
          Exemple :
          Tu as 2 procédures :


          void foo1()
          {
          foo2(); /* <-- foo2 n'est pas visible depuis cette fonction */
          }

          void foo2()
          {
          foo1(); /* foo1 peut être appelé ici */
          }


          Dans la première procédure (foo1), si tu veux insérer le code qui appèle la seconde procédure (foo2) et que tu essayes de faire faire la complétion, Visual te le proposera.. Pas Eclipse... Et ce qui est juste pour eclipse.
          En effet, la fonction foo2 n'est normalement pas visible depuis foo1 car déclaré après.

          Par contre, foo1 pourra etre complété si appelé à l'interieur de foo2.

          Cependant, c'est vrai qu'il y a encore du travail :
          * Il reste 1 gros problèmes au niveau de la completion dans CDT, c'est la vitesse. Les développeurs ont mis en place un parseur C/C++ qui me parait assez correct (il restait quelques bugs au niveau de l'usage intensif de macro qui a l'air dévoir été corrigé dans cette release.) Par contre, quand on regarde comment ce parseur fonctionne, on se rend compte qu'il est appelé à chaque demande de completion. Et tous les fichiers inclus sont à chaque fois reparsé... Donc, si vous travaillez sans inclure trop de header et de libs, tout va bien.. Si vous commencez à include wxWidget par exemple, le temps va vous parraitre très long. Il y a un système de cache qui se met en place mais ce n'est pas encore au point.

          * Un autre problème qui est un peu moins génant, mais qui fait perdre le coté pratique de la complétion, c'est comme tu le dis Flink, le manque d'infos lors de la completion (l'affichage des commentaires pourrait etre sympa par exemple)... Et justement il y a une reflexion en cours là dessus sur la ML. Ils parlent de mettre un parseur spécifique pour lire les donnés annexes au code, comme les commentaires doxygen, etc.. Ce parseur pourrait etre extensible pour pouvoir aussi bien utiliser doxygen que javadoc ou autre.


          Pour en revenir à Visual, il y a une extension payante qui s'apelle Visual Assist qui permet d'améliorer un peu les points faible de visual mais bon... Même avec les améliorations apportés, il y a moyen de faire beaucoup mieux.

          L'architecture d'Eclipse est assez bien foutu et si ils arrivent à transposer la puissance de JDT (le plugin Eclipse pour Java) et en faire la même chose pour CDT, je pense alors que Eclipse/CDT pourrait etre l'IDE C++ le plus puissant qu'il y a sur le marché.
          • [^] # Re: Complétion

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

            Pour vraiment arriver au niveau du JDT, il faudrait que CDT inclue un compilateur C/C++ incrémental, ce qui du coup accélèrerait la complétion. Mais je doute que ce soit si évident.
      • [^] # Re: Complétion

        Posté par  . Évalué à 2.

        Il y a maintenant des versions gratuites de Visual Studio :
        http://lab.msdn.microsoft.com/express/default.aspx(...)

        Je suppose qu'ils ont dû supprimé pas mal de fonctionnalités par rapport à la version payante.
        • [^] # Re: Complétion

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

          C'est pas gratuit, c'est en beta. A terme ca sera vendu entre 50 et 100$.
          Ca ressemble à un Visual Studio, mais quelques trucs n'y sont pas : pas de class designer (DSL &Co), pas les outils de tests unitaires et de profiling.
  • # Eclipse sous KDE

    Posté par  . Évalué à 3.

    Il est sans doute utile de noter que ca bouge aussi du cote de l'integration d'Eclipse dans KDE (ou devrais-je dire Eklipse ? ;) ).

    Apparemment, un developpeur de KDevelop[0] s'est mis un peu a Eclipse[1] (pour un Google Summer of Code), ca l'a emballe[2] et ca donne donc ca[3].

    Je n'ai jamais vraiment utilise aucun de ces deux IDE (KDevelop et Eclipse), sans doute parce que je suis trop intoxique par les raccourcis claviers "a la Emacs", mais je me demandais si, entre ces deux IDE, et avec la recente nouvelle version de CDT, lequel serait le plus a meme de recueillir les louanges des programmeurs C++.

    [ Et au passage, sent-on la difference lorsque l'on compile Eclipse avec gcc-4 ? ]

    [0] http://www.kdevelop.org/(...)
    [1] http://adymo.blogspot.com/2005/08/eclipse-hacking-experience.html(...)
    [2] http://adymo.blogspot.com/2005/08/kde-eclipse.html(...)
    [3] http://kde-eclipse.pwsp.net(...)
    • [^] # Re: Eclipse sous KDE

      Posté par  . Évalué à 1.

      Bonjour,
      Quel est l'intérêt de recompiler Eclipse avec gcc-x (quelque soit la version). Pour un IDE le logiciel en Java avec une JVM est à mon avis amplement suffisant... Gagner quelques micro voir milli secondes par-ci par-là n'est valable que pour des applications vraiment "temps réel" et où même certaines partie sont à revoir en assembleur !
      Les machines actuelles (moins de 5 ans) sont largement suffisante pour supporter tout interface avec les plus grands virtuoses du clavier là où l'on peut voir des différences c'est quand on demande des informations comme les références croisées, contrôle de qualité du code et les compilation elles-mêmes. Les interactions clavier/écran interprétés ou compilées n'ont que peu d'impacts par contre les add-ons ou plutot plug-in c'est une autre histoire et là on ne dispose pas nécessairement des sources car il sont souvent libre d'usages non-pro mais open-source.
      A+
  • # migration depuis CDT 2.1

    Posté par  . Évalué à 2.

    Quelqu'un a testé la migration d'un projet depuis CDT 2.1 ?

    Ca se passe bien ?

    Si on est plusieurs à travailler sur le même projet, j'imagine que tous le monde doit migrer en même temps (si le .cdtbuild est touché).

    Des expériences ?
  • # fonctionnalités

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


    Support toutes les fonctionnalités d'eclipse (dont les java-istes connaissent très bien la puissance et le confort)


    Euh, soit on m'a eu et on m'a refilé une version moisie, soit le CDT est bien-bien loin d'implémenter les mêmes fonctionnalités que le JDT (qui est son pendant Java et qui est bien plus avancé). Mes reproches:

    - l'indentation est médiocre (à peine un éditeur de texte avancé). À comparer avec JDT ou Emacs...
    - Pas de refactoring (ne pas appeller le pauvre "rename" qui traine dans les menus du refactoring, je risquerais de mourir de rire).
    - Pas de fonctionnalités "Source" comme celles présentes dans le JDT (genre, implémenter des getters/setters ou surcharger une méthode existante).
    - La "gestion de projets" est relativement limitée: pas moyen de créer plusieurs exécutables depuis un seul projet, par exemple.
    - Pas moyen d'utiliser Ant avec des cpptasks, car le parseur d'erreurs se perds à moitié dans les messages d'erreur.

    J'aime bien Eclipse pour faire du Java, mais pour du C/C++, je reste avec mon baril de Emacs, merci bien (et pourtant, qu'est-ce que je ne donnerai pour avoir du refactoring qui marche avec du C++...).

    seb.

Suivre le flux des commentaires

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