Forum Solarus-Games francophone

Jeux amateurs => Programmation => Discussion démarrée par: Morwenn le 12 Juin 2011 à 00:32

Titre: Outils utiles au développement
Posté par: Morwenn le 12 Juin 2011 à 00:32
Outils utiles au développement

Histoire de participer un peu à l'activité de cette section et d'aider les gens, j'ai décidé de créer une petite liste de logiciels gratuits utiles au développement. Cela comprend bien sûr les éditeurs de code et autres environnements de développement, mais également quelques utilitaires aux fonctions très pratiques :)

Après tout, quoi de mieux que de bons logiciels pour bien programmer ? :D


Editeurs de code

Notepad++ (http://notepad-plus-plus.org/)
AvantagesInconvénients
Kate (http://kate-editor.org/)
AvantagesInconvénients

Environnements de programmation

Eclipse (http://www.eclipse.org/)
AvantagesInconvénients
NetBeans (http://netbeans.org/)
Un environnement de programmation complet pour Java. Il peut également supporter les langages Python, C, C++, JavaScript, XML, Ruby, PHP et HTML.
AvantagesInconvénients
Code::Blocks (http://www.codeblocks.org/)
Un environnement de programmation pour le C/C++.
AvantagesInconvénients
Dev C++ (http://www.bloodshed.net/devcpp.html)
Un environnement de développement pour le C/C++ utilisant de base le compilateur GCC.


Logiciels de gestion de versions

Apache Subversion (http://subversion.apache.org/)
Plus souvent appelé SVN. Est inclus dans le logiciel de gestion de projets Trac. Fait l'objet de plugins dans de nombreux environnements de développement.

Git (http://git-scm.com/)
Un autre logiciel de gestion de versions.


Utilitaires divers

Make (http://www.gnu.org/software/make/)
Make est ce qu'on appelle un "moteur de production", à savoir un logiciel servant principalement à automatiser la compilation des fichiers donnés dans des projets utilisant de nombreux sources d'origines parfois diverses. La commande make cherche dans le dossier courant un fichier nommé "Makefile" ou "makefile", lit les instructions de compilation que vous aurez écrites et les exécute. Make est à l'origine une commande traditionnelle UNIX, mais existe depuis pour d'autres OS.

CMake (http://www.cmake.org/)
CMake (Cross Platform Make) est un logiciel multiplateformes permettant de générer de manière plus ou moins automatique (il y a des fichiers et syntaxes associées) des makefiles ou des fichiers de projets. Cet utilitaire est particulièrement pratique pour les projets de groupes où il arrive que les développeurs utilisent des configurations différentes, des éditeurs de code différents, etc...

Doxygen (http://www.stack.nl/~dimitri/doxygen/)
Un utilitaire de génération automatique de documentation de code.
Cela implique bien évidemment d'avoir recours à une syntaxe particulière dans les commentaires des fichiers source.
Avantages
tkdiff (http://sourceforge.net/projects/tkdiff/)
Un utilitaire permettant de comparer les différences existantes entre deux fichiers texte. Très utile pour comparer les différentes versions d'un code source.



Bien entendu, cette page est loin d'être complète (très très loin même, ce n'est qu'une ébauche), et je n'attend que vos suggestions pour l'enrichir, la compléter, etc...
Egalement, proposez des détails pour enrichir les descriptions des logiciels. Par exemple en donnant les principaux avantages qu'ont certains logiciels par rapport aux autres^^[/list]
Titre: Re : Outils utiles au développement
Posté par: Chonde le 12 Juin 2011 à 00:47
Excellente idée de regrouper les outils de programmation ici. Ça servira à plus d'un, et moi aussi peut-être.  :super:
Titre: Re : Outils utiles au développement
Posté par: Noxneo le 12 Juin 2011 à 15:53
Sur Mac OS X, j'utilise XCode (gratuit pour les développeurs enregistrés Apple) pour le développement iOS, et TextMate (60$, mais l'un des meilleurs éditeurs de texte graphique qu'il existe, toute plateformes confondues) avec un terminal ouvert à côté pour tout le reste.

Pour ce qui est gestion du code, etc., j'utilise personellement Git (via Github), ma boite fait de même (vu que c'est à moi qu'est revenu la décision), et mon labo utilise SVN. Tout ça via les outils console dédiés (tout comme diff... qui a besoin d'un truc graphique pour faire des diff, sérieusement? :ninja: )

Quand j'étais sous Linux (dans mes années folles), c'était vim + terminal, netbeans pour des gros projets Java.

Mon IUT nous a forcé à tout utiliser en console la première année (gcc, make, gdb, etc. - les profs étaient pour beaucoup des fanboys Linux), ce qui est important pour bien comprendre comment ça marche et pouvoir aisément se faire aux outils graphiques par la suite. À mon goût, ce n'est pas super de commencer à programmer direct avec un IDE- ça occulte beaucoup trop de choses.
Titre: Re : Outils utiles au développement
Posté par: Morwenn le 12 Juin 2011 à 16:58
Le problème de la commande diff, c'est qu'elle n'existe pas partout (sous Windows notamment) :/
Et puis bon, tkdiff reste diaboliquement simple au niveau utilisation aussi,  même genre d'aperçu qu'avec SVN.

Je pourrais également ajouter Trac à la liste, mais c'est surtout pour la gestion de projets en groupe. Je n'ai vraiment aucune idée de s'il peut être utile ou non lorsqu'on fait seul un projet. Il a cependant l'avantage d'intégrer SVN.

Bon, ben c'est parti... Git, SVN et netbeans en plus dans la liste.


Ah oui, si vous avez des suggestions quelconques quant aux descriptions des logiciels, vous pouvez également les poster. Il vaut toujours mieux avoir les avis des gens qui s'y connaissent le mieux ;)
Titre: Re : Outils utiles au développement
Posté par: Wouf le 12 Juin 2011 à 17:06
Je plussoie ce qui a été dit.

Ceci dit, je propose d'ajouter des informations supplémentaires concernant les plateformes visées, le prix, la license, la légèreté, l'accessibilité pour les débutants, lien vers le site officiel, d'éventuels tutos, ... Et pourquoi pas un lien vers un zouli screenshot ? :)

Par exemple, Kate qui appartient au projet KDE, est son editeur de texte par défaut. Bien que KDE ait été récemment porté sur Windows, il est à la base prévu pour Linux. Ainsi, pour pouvoir l'utiliser sous Windows, il est indispensable d'installer tout l'environnement KDE, ce qui est assez lourd juste pour un éditeur de texte. Maintenant, je me trompe peut être, certains logiciels développés pour KDE peuvent s'installer sans. Sinon, il est sous license LGPL v2. (libre, open-source, sans copyleft).
Sinon, on peut pratiquement tout paramétrer dessus et rajouter autant de langages qu'on veut (bien qu'ils le soient presque tous par défaut ^^). Il dispose de colo syntaxique, paramétrable.
Mais sa fonction d'autocomplétion se base sur les mots présents dans le fichier courant. Il n'est donc pas très adapté pour de grands projets, spérarés en de nombreux fichiers. En revanche, il dispose d'une vraie console intégrée, ce qui est bien pratique. Pour résumer, je dirais que c'est l'éditeur idéal pour de petits projets, en particulier les scripts ne comportant qu'un unique fichier. Tout du moins, sous Linux.
(Awi aussi, pas de support pour le débug)

De même, Eclipse est un IDE qui peut tourner sur toute plate forme disposant d'une machine virtuelle Java. Mais il faut aussi savoir que c'est une usine à gaz (donc lourd) et qu'en plus, ben tourne sous VM ... Il prend donc pas mal de ressource et mène parfois des fuites de mémoire. C'est le prix à payer pour avoir un IDE très puissant. En effet, il est facilement extensible avec ses nombreux plugins et supporte presque tous les langages existants. Mais surtout, ce que je préfère, c'est son auto-complétion. Contrairement à beaucoup d'IDE, Eclipse peut proposer la complétion d'un élément non défini dans les fichiers du projet, en allant par exemple fouiller dans la lib standard, ou d'autres que l'on peut aisément ajouter. Sa fonction "search and replace" est assez puissante aussi (dans tous les fichiers du projet, et propose même de changer les noms de fichier lorsque la classe publique qu'ils contenaient a été renomée).
Truc sympa aussi, ce sont ses onglets que l'on peut aggrandir en double-cliquant dessus. L'onglet s'affiche ainsi presque en plein écran. Il suffit de redouble cliquer pour le réduire à sa taille normale et retrouver les autres cadres.
Enfin, on peut pratiquement tout paramétrer soi-même. Notemment les colos syntaxiques. D'ailleurs, Eclipse y apporte un petit plus, puisqu'il est possible de donner une couleur spécifique aux fonctions, aux variables, aux types que l'on définit, ... D'habitude, on peut juste en donner aux fonctions standard, aux mots-clés, aux types standards, ...
Ici, grâce à Eclipse, on peut voir du premier coup d'oeil si on a à faire à un type, une fonction ou une variable sans commencer à regarder les conventions d'écriture et la présence de parenthèses (même les éléments non pré-définis). Pour certains langages, il est même possible de différencier la définition d'un élément et son utilisation. Par exemple souligner la variable là où on la définit et pas où on l'utilise.
Certains n'y verront qu'une touche superficielle, mais perso, j'y vois également une amélioration ergonomique.
Moins positif : La rigidité du workspace. Si on veut créer des dossiers de programmation en dehors du workspace, il faut créer un nouveau workspace. Et pour passer de l'un à l'autre, il faut redémarrer le logiciel. De plus, les préférences (et donc toutes les configs, colos, ...) sont locales au workspace courant et il faut faire mumuse avec les dossiers cachés si on veut copier les préférences :mrgreen:
Certains langages proposent un débogueur, mais pas tous.
Il y a une console intégrée, mais ce n'est pas une "vraie" console. Peut être y a-t-il moyen d'en ajouter une en installant un plug-in ?

Bref, Eclipse, c'est cool, mais c'est aussi très lourd ^^


D'autres outils utiles ?

Ben les gestionnaires de version, tels que Git, Subversion, Mercurial, ...
A noter que ce tutoriel (http://www.siteduzero.com/tutoriel-3-254198-gerez-vos-codes-source-avec-git.html) du Sdz présente bien les différences entre ces différents outils (centralisés, support des branches, OS supportés, ...) avant d'aborder Git.

Pour C/C++, il y a Valgrind qui permet de détecter les fuites de mémoire, en plus de proposer du profiling.
D'ailleurs il y a aussi de nombreux outils de profiling (je n'en connais pas perso, mais j'avais vu un copain en utiliser un bon sous NetBeans, pour Java). License GPL v2

Ensuite, les débogueurs. GDB du projet GNU, gratuit et sous license GPL.
Mais perso, je n'aime pas utiliser de débogueur en ligne de commande. Je préfère placer mes checkpoints au clic de souris plutôt qu'en entrant le numéro de ligne :P

Que reste-il ?
Awi, il existe, parrait-il, des outils pour Visual Studio proposés par Intel pour détecter les failles de programmes parallèles/concurrents. Mais bon, je suppose qu'ils ne marchent pas pour les processeurs non Intel :/


Voilà, voilà. Je repasserai ptet de temps en temps rajouter quelque chose ^_^
En attendant, voici un topic (http://ericreboisson.developpez.com/tutoriels/logiciels-indispensables/) de Developpez dans la même optique.
J'avais d'autres liens, plus complets, mais ils sont tous morts :cry3:
Titre: Re : Outils utiles au développement
Posté par: Noxneo le 12 Juin 2011 à 17:14
Je n'aime pas du tout Trac pour la gestion de projets. Mon labo l'utilise, et c'est moche et non-ergonomique au possible.

Pour des projets basiques, des post-its et l'issue manager de base de Github suffisent largement.
Si on veut une solution solide, BaseCamp est la référence dans les pays anglophones (peu de grosses boites françaises l'utilisent, à ma connaissance).
Titre: Re : Outils utiles au développement
Posté par: darkdragon le 16 Septembre 2011 à 16:03
Quand j'ai commencé à apprendre le C, j'utilisais Turbo C de Borland, sous MS-DOS. :)

C'est un IDE avec une interface très proche du petit programme "EDIT" de base de MS-DOS, avec comme seule différence avec celui ci un compilateur assez rapide et un debugger.

Pendant un moment j'utilisais aussi le compilateur DOS de Symantec, (un peu plus galère à mettre en place, puisqu'il faut entrer dans autoexec.bat et/ou exécuter un fichier bat avec divers variables pour le faire fonctionner normalement) qui lui n'est pas un IDE par contre, tout les programmes doivent-être tapés dans un éditeur de texte au préalable et les fichier .obj doivent être linkés avec un utilitaire fournis avec le compilateur.
Titre: Re : Outils utiles au développement
Posté par: Chao le 30 Septembre 2011 à 19:47
Sinon pour tout ce qui est au niveau des sites web je recommande fortement Komodo Edit, logiciel gratuit et open source disponible pour PC et mac. On l'utilise en classe et c'est très sympa.