Are you still working on the dark ?

December 21st, 2004 par Eric

Après cette petite allusion à Eclipse, l’équipe de Netbeans a sorti la version 4.0 de Netbeans et celle-ci est disponible ici. Voici une bref présentation des nouvelles fonctionnalités :

La notion de Projet

Cette version rompt avec la précédente (3.6) en apportant la notion de projet - la notion de projet existait précédemment mais elle n’était que l’association de plusieurs répertoires sources et de jars. Maintenant Netbeans 4.0 s’appuient totalement sur Ant pour la gestion des projets qui sont divisés en plusieurs types :

  • Java Application: une application Java avec une fonction main()
  • Java Class Library: génère un fichier jar
  • Web Application: gère les fichiers jsp, jspf (code complétion et tagslibrary) et les servlets (J2EE 1.3 et J2EE 1.4)
  • Java Project with existing sources: une application avec des sources déjà existantes
  • Web Project with existing sources: une application avec des sources déjà existantes
  • Java Project with existing Ant script: une application avec un fichier build.xml déjà existant
  • Web Project with existing Ant script: une application avec un fichier build.xml déjà existant
  • Maven Project: ce module est disponible sur le site de mevenide

Cette notion de projet permet d’associer des “buts” de Ant avec des opérations de l’IDE, classiquement la compilation, le debuggage, etc.

Celà fonctionne très bien et le fichier build.xml est paramètrable par héritage en modifiant buildImpl.xml.

Cette notion est maintenant commune a tous les IDE modernes avec les paramètres habituels (quel JDK, quels jars, etc.), il est dommage que cette notion ne soit pas vraiment normaliser afin de pouvoir utiliser le même projet avec Eclipse, JBuilder ou Netbeans en fonction des préférences de chacun des développeurs.

Refactoring

Enfin Netbeans supporte en natif le refactoring des sources, celui-ci marche correctement, mais il n’est pas comparable à RefactorIt ou le module d’Eclipse, il s’améliorera dans la prochaine version …

Disponibilité d’un profiler gratuit

Un profiler est disponible gratuitement (et en open source) celui-ci est basé sur le projet de recherche JFluid de Sun (qui est désormais arrêté). Celui-ci est disponible en version beta (la version finale sera disponible en même temps que Netbeans 4.1) avec les fonctionnalités suivantes :

  • Peu d’overhead (JFluid se base sur une version modifiées du JDK 1.4)
  • Possibilité de s’attacher via une socket à un process lancé
  • Profiling de la performance CPU
  • Profiling de l’utilisation de la mémoire
  • Vision de l’activité des threads

A l’heure actuelle ce module ne permet pas de se connecter à un serveur distant :-( (mais la version finale devrait le permettre il y a un RFE noté dans bugzilla) et il est lié à un JDK 1.4 modifié, la version finale permettra d’utiliser les fonctionnalités du JDK 5.0.

J2SE 5.0

La version de JDK 5.0 est supporté dans l’éditeur syntaxique (code completion, nouvelle syntaxe prise en compte)

J2ME

Un module J2ME est disponible respectant les normes J2ME MIDP 2.0/CLDC 1.1. Désolé je n’ai pas testé ce module :-(

Les autres améliorations

Il y a une fonction de docking (à la IDEA) bien pratique.

L’outil de création des formulaires Swing a été paufiné : je n’ai que rarement eu l’occasion de l’utiliser mais il était déjà très complet dans les versions précédentes, il a été amélioré dans cette version pour plus de maniabilité (fonction d’auto-hide, possibilité de voir le même objet sours plusieurs formes).

Pour finir la version 4.1 est déjà disponible en EA (Early Access) elle est prévue pour avril 2005 avec les fonctionnalités J2EE Enterprise : EJB, Web Services et Web Components.

Voilà le cadeau que vous a fait l’équipe de Netbeans pour votre Noël !

4 Responses to “Are you still working on the dark ?”

  1. Franck Says:

    Effectivement, j’ai aussi testé la 4.0 et c’est un bon trés bon cru !
    Le principal reproche que l’on peut encore faire à Netbeans 4.0 c’est la faiblesse des fonctionnalités de refactoring par rapport à celles de Eclipse (pas de surround try/catch, extract method, …).
    Mais les points forts de Netbeans sur Eclipse sont pour ma part:
    - les web apps intégrés (pas de plug in!)
    - l’éditeur Swing intégré que je trouve du même niveau que celui de JBuilder
    De plus l’ajout d’une notion claire de projet comme tu l’indiques est un moyen plus simple que le système (peut-être plus puissant) du filesystem à *mounter*.
    En conclusion, je dirais que la concurrence Eclipse/Netbeans a du bon car je ne sais pas les deux protagonistes feraient autant d’effort s’ils étaient tous seuls !
    Je pense que le seul véritable point faible de Netbeans est peut-être la moins grande communauté en terme de nombre vu le nombre de plugin, d’article sur Eclipse.
    Mais quantité n’est pas synonime de qualité…

    PS.: Eric tu peux segmenter ton article avec le lien more pour que ton article ne prenne pas toute la page d’accueil (enfin c’est peut-être le but recherché :-) )

  2. Anonymous Says:

    En ce qui concerne les plugins il est vrai qu’Eclipse est quasiment imbatable !
    Ah le voilà ce que je cherchais c’étai le lien more…

  3. Freddy Says:

    Morte couille, je viens de m’apercevoir avec une bonne semaine de retard que j’avais loupé le premier post de l’ami Eric. Avant de me lancer dans les critiques, je suis assez d’accord avec Franck qu’on a tout à gagner de la coexistence d’un couple Eclipse / Netbeans comme des couples windows / linux, jakarta / objectweb, jBoss / geronimo, OM / PSG, etc …

    Autant je trouve l’idée d’utilisation de ant de manière sous-jacente très séduisante et louable autant après utilisation de maven je suis convaincu que la version 4.4 de Netbeans utilisera non plus ant mais maven. Je vais enfoncer une porte ouverte mais les fichiers build ant peuvent rapidement devenir impraticables et il n’existe pas de moyen avec ant de standardiser la manière de définir les dépendances de librairie, la structure du projet, les dépendances de compilation. Dès aujourd’hui avec le couple maven / eclipse, vous définissez entièrement votre projet sous maven, vous lancer ensuite la commande ‘maven eclipse’ et vous vous retrouvez avec un projet eclipse prêt à l’emploi et synchronisé en permanence avec maven à l’aide du plugin mevenide.

    De la même manière en couplant maven et eclipse on peut sans problème faire des ejb, war, ear ,etc… Ce qui manque à Eclipse c’est uniquement un éditeur de jsp livré en standard.

    Pour la partie refactoring, ce qui est important également c’est qu’en cas d’utilisation d’un gestionnaire de source (ce qui est tout de même la moindre des choses), le plugin prenne bien également en charge la propagation du refactoring au niveau du gestionnaire de source. Ce n’est pas le cas avec jBuilder par exemple, je ne sais pas ce qu’il en est pour netbeans ?

    merci Eric pour ce premier post d’une longue série…

  4. Eric Says:

    Euh afin d’éviter de me faire lyncher en allant travailler, j’aimerais que tu évites les allusions OM/PSG, c’est très mal vu ici…
    Juste pour information, mevenide fonctionne très bien sous Netbeans ! Il n’y a pas de création de projet Netbeans sous maven, mais ce n’est pas compliqué et cela prend 2 minutes à faire (mais je te l’accorde que c’est un bon point pour Eclipse). Pour le problème de synchronisation, il n’existe pas sous Netbeans car le plugin utilise de façon native maven.

    Je ne comprend pas très bien le problème de refactoring / gestionnaire de sources. Netbeans a un très bon gestionnaire de source (CVS/PVCS/Subversion/VSS,etc). D’ailleurs, le créateur de SmartCVS (je vous conseille d’y jeter un coup d’oeil) a été le créateur de la partie CVS de Netbeans.

    Je vais refermer la porte ouverte par Freddy : Netbeans se base sur Ant pour la compilation/debug/test unitaires, mais l’avantage justement c’est que le développeur NE TOUCHE PLUS au fichier Ant, Netbeans se charge de tout paramètrer, et il permet à l’aventurier de l’extrème de faire les ajustement qu’il désire (ou bien d’utiliser un fichier déjà existant). Voilà pourquoi cette évolution est vraiment très bien (j’utilisais la même chose pour générer un fichier build.xml à partir des propriétés du projet - genre de POM avant Maven).

    Pour les dépendances fonctionnels entre projet/librairies, il est vrai que maven est très bien toutefois Ant le permet aussi. Je regarde cela en ce moment, il existe trois projets : Savant, Antlion, Dependencies - HttpUnit. Savant semble assez intéressant. Toutefois le problème des dépendences est vraiment intéressant et je n’ai pas trouvé de solution (sauf développé spécifiquement) au problème de dépendence de 2 applications web. C’est à dire une première application définissant les couches basses (disons une partie propriétaire d’accès aux droits en surchargant HttpServlet… et offrant une partie d’administration (jsp/html)).

Leave a Reply

You must be logged in to post a comment.