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 18/09/2009, à 00:21

Creak

Programmer sous linux

Bonjour,

J'imagine qu'il a dû il y avoir quinze milles sujets à ce propos, mais j'ai pas trouvé... Ceci dit, j'utilise peut-être pas les bons mots clés...

J'ai commencé à programmer sous linux à mon école, avec emacs, puis vim. Ensuite j'ai codé sous Visual, à cause de mon taf. Ca fait maintenant plus de 3 ans que je suis programmeur "officiel", donc le langage n'est pas vraiment le problème.
Nan c'est plutôt l'environnement de programmation... Malgré le fait que j'ai uniquement une ubuntu chez moi depuis... depuis vachement longtemps maintenant! A chaque fois que je tente de me remettre à la programmation sous linux, je suis bloqué.

Ayant gouté à Visual, je cherche de préférence un IDE, mais à vrai dire, si on me dit que emacs c'est mieux que tout, je n'ai rien contre, du moment qu'on m'explique pourquoi. Niveau IDE, j'ai testé Anjuta, Code::Blocks, mais c'est pas encore au point... ça freeze, les breakpoints marchent quand ils veulent, les recherches de définitions et de déclarations ne marchent pas en dehors du projet.

Je me dis que si y a des gars qui arrivent à créer des logiciels comme le kernel, Gnome, Rhythmbox, etc... c'est qu'il doit quand même y avoir un minimum d'outils pour aider le développeur autre que valgrind et gdb... smile

Voilà, aidez-moi s'il vous plait! Je veux comprendre!!!

Dernière modification par Creak (Le 18/09/2009, à 00:24)

Hors ligne

#2 Le 18/09/2009, à 07:48

yohann

Re : Programmer sous linux

tiré de  http://www.cs.vassar.edu/~priestdo/emacspeak/list.archive.1999/msg00358.html

Respondent Editor     Compiler    Debugger     IDE       Background   
                                                               
Jonathan    Emacs     gcc          gdb            Emacs   GNOME Control
Blanford                                                              Center     
                                                               
Jay Cox     XEmacs   Pro       gdb, dbx         XEmacs     GIMP     
                C/C++,                                     
                egcs,                                       
                gcc                                       
                                                               
Kurt         vim          egcs    gdb                None          KDE     
Granroth                                                       
                                                               
Carsten    jed           gcc     None              None          Enlightenment
Haitzler                                                       
                                                               
Andi        vi             gcc      gdb               XEmacs      PHP     
Gutmans                                                       
                                                               
Eric         Emacs       gcc     gdb               Emacs        Fetchmail   
S. Raymond                                                     
                                                               
Linus       Micro         gcc     None             None         Linux     
Torvalds  Emacs                                               
                                                               
Marius     Emacs        gcc     gdb               Emacs       Guile+GTk   
Vollmer                                                       
                                                               
Alan Cox  None         gcc    GNOME-terminal  None  Linux kernel 
                                       windows

alors est ce parce q'ils ont appris avec ces éditeurs (et que rien d'autre n'existait à l'époque), est ce parce que ces éditeurs sont très performant?
en tout cas aucun des ces programmeurs légendaires n'utilise un autre EDI que emacs.
c'est pour répondre à la dernière question.


ensuite si tu est habitué a visual, essaye eclipse, je me suis laissé dire qu'il était bien

edit: et puis il ne faut pas oublier que bash est un enorme environement de dev , a grand coup de grep -ri 'fonction' /usr/lib/

Dernière modification par yohann (Le 18/09/2009, à 08:00)


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#3 Le 18/09/2009, à 14:18

Creak

Re : Programmer sous linux

Après, comme j'ai dis, j'ai rien contre le fait de ne pas utiliser un IDE, mais comment ils font pour la complétion? pour le debugging? Parce qu'on ne peut pas dire que ce n'est pas pratique pour coder de gros projets (j'irai même jusqu'à dire que c'est indispensable).

Du coup je suis curieux de savoir comment ils font smile

Edit> je viens de voir que ton lien explique aussi les raisons de leur choix, je vais lire ça! wink

Dernière modification par Creak (Le 18/09/2009, à 14:19)

Hors ligne

#4 Le 18/09/2009, à 16:57

yohann

Re : Programmer sous linux

et une petite pub honteuse pour vim, au cas ou tu serais en recherche d'un IDE leger et puissant:

http://www.metal3d.org/index.php/blog/t … un-IDE-PHP


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#5 Le 18/09/2009, à 17:14

Creak

Re : Programmer sous linux

J'ai pas encore tout lu (chui au boulot, donc ça le fait pas trop smile) mais le premier texte date quand même de 1999. En 10 ans, on a eu le temps d'avoir des besoins un peu différent, non? Y a pas eu d'étude plus récente?

PS: je vais quand même lire le texte ce soir, l'un n'empêche pas l'autre smile

Dernière modification par Creak (Le 18/09/2009, à 17:16)

Hors ligne

#6 Le 18/09/2009, à 18:03

xamaco

Re : Programmer sous linux

Je compatis avec toi, enfin un peu. Il y a un peu plus de 20 ans, j'utilisais Borland C, un IDE en mode texte (pas de Windoze à l'époque, juste MS/DOS). Et c'était super-bien. Je n'ai jamais trouvé d'équivalent en libre.
Ceci dit, si tu sais bien programmer, ce n'est pas un petit problème d'interface qui devrait te gêner. Avec les outils apparemment basiques gcc, gdb, vim / emacs, etc..., tu peux tout programmer pour que ces outils fassent EXACTEMENT ce que tu veux. En fait c'est bien plus puissant et paramétrable que n'importe quel IDE. Un peu un rite de passage big_smile

Hors ligne

#7 Le 18/09/2009, à 19:26

Watchwolf

Re : Programmer sous linux

Creak a écrit :

Après, comme j'ai dis, j'ai rien contre le fait de ne pas utiliser un IDE, mais comment ils font pour la complétion? pour le debugging? Parce qu'on ne peut pas dire que ce n'est pas pratique pour coder de gros projets (j'irai même jusqu'à dire que c'est indispensable).

Du coup je suis curieux de savoir comment ils font smile

Edit> je viens de voir que ton lien explique aussi les raisons de leur choix, je vais lire ça! wink

complétion -> vim, jed, emacs le font
debugging -> gdb, valgrind avec ces extensions. Pas besoin de l'intégrer dans l'éditeur

Après pour le Java c'est particulier,car tout est fait pour que les gens programment de la même façon ce qui permet d'avoir des éditeurs très complet comme Eclipse. Mais il faut suivre la convention Java si c'est mort.

Hors ligne

#8 Le 20/09/2009, à 11:39

Creak

Re : Programmer sous linux

Bon, j'ai enfin pu lire le premier texte (http://www.cs.vassar.edu/~priestdo/emacspeak/list.archive.1999/msg00358.html).
Globalement, je vois pas ce qu'un environnement de développement CLI a de mieux qu'un IDE, hormis le fait qu'un bon IDE n'existe pas encore sur Linux.
A vrai dire, le coté éditeur de texte pourrait me suffire avec vim ou emacs. C'est principalement le debugger qui me chagrine. Pouvoir breaker quand on veut, les breakpoints conditionnels, modifier la valeur des variables au runtime, surveiller une adresse mémoire, ... autant d'outils de debugging qui ne sont peut-être pas indispensable, mais qui facilite grandement la vie du développeur, vous ne trouvez pas?

Je viens de retester emacs là... bon apparemment il va falloir se forcer...

Hors ligne

#9 Le 20/09/2009, à 12:06

yohann

Re : Programmer sous linux

on peut integrer gdb a vim ou emacs, il suffit de faire une recherche.


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#10 Le 20/09/2009, à 12:57

Creak

Re : Programmer sous linux

En fait, je commence à concevoir ce qui ne va pas. Tout le monde parle de son emacs (ou de son vim) complètement customisé pour la programmation. Mais comment on le customise? Parce que, par défaut, c'est juste un éditeur de texte avec des raccourcis imbitables, il faut le dire smile

Je suis tombé là-dessus: http://www.docmirror.net/fr/linux/howto/apps/Emacs-Beginner-HOWTO/
Ca semble pas mal pour débuter

Dernière modification par Creak (Le 20/09/2009, à 13:05)

Hors ligne

#11 Le 20/09/2009, à 13:06

HP

Re : Programmer sous linux

Creak a écrit :

En fait, je commence à concevoir ce qui ne va pas. Tout le monde parle de son emacs (ou de son vim) complètement customisé pour la programmation.

hihi ^^ !
Il a fallu le temps… big_smile
Pour emacs, un bon point de départ : EmacsWiki.
Mais bon, il faut s'investir un minimum ! wink

Et, toujours pour Emacs, au bout d'un moment il faut acquérir un minimum de Lisp, à lire aussi :
Mes expériences avec Lisp et le développement de GNU Emacs (transcription d'un discours de Richard Stallman, 28 octobre 2002).

Dernière modification par HP (Le 20/09/2009, à 13:10)


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#12 Le 20/09/2009, à 13:10

mydjey

Re : Programmer sous linux

Hors ligne

#13 Le 20/09/2009, à 13:36

yohann

Re : Programmer sous linux

le lien que j'ai donné dans le post #4 explique justement comment on fait ça avec vim pour du php.

pour du C c'est encore plus simple je dirais.

le principe de base de la customization de vim et emacs et de jouer avec le fichier de configuration dans $HOME.

pour emace je ne sais plus comment il s'appelle mais il est écrit en lisp.
pour vim c'est le fichier $HOME/.vimrc

il y a aussi un repertoire $HOME/.vim pour ranger des templates, des plugin, des fichier de syntaxe qui ne serait pas intégrés avec la distribution de base (de plus en plus rare).

vim est un peu compliqué à comprendre au début, pas contre à l'usage c'est que tu bonheur.

pour le développement, je te conseille avant tout le plugin Project, qui te permet d'afficher une arborescence des fichiers de tes projets (avec de repli pour ceux qui ne sont pas utilisés), et qui permets aussi d'avoir des fonction sympas telles que: la compilation depuis vim, la synchronisation svn, le grep, le tag des fichiers et bien d'autre à configurer


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#14 Le 20/09/2009, à 18:45

Creak

Re : Programmer sous linux

Bon, je regarde, je regarde... Dans mes souvenirs, je me souviens que vim était plus difficile à prendre en main mais incroyablement plus simple à configurer grâce à son fichier de config C-like.

Sinon, entre vim et gvim... y a un intérêt à prendre la version graphique (vous allez m'en vouloir à force de toujours ramener une couche graphique, mais j'avoue que je vois pas trop l'intérêt de rester en terminal même pour l'éditeur de texte alors qu'on a un tout joli environnement de bureau smile)

Hors ligne

#15 Le 20/09/2009, à 19:34

foobar

Re : Programmer sous linux

Sinon Geany comme IDE simple ou SciTE comme éditeur de texte.
tongue

Hors ligne

#16 Le 20/09/2009, à 22:34

yohann

Re : Programmer sous linux

l'interet de gvim est double:
- utilisation en mode fenetre (redimensionnement, reduire, barre de menu, etc...)
- les touche du clavier ne sont pas interpreté par le terminal, mais directement par gvim (ce qui dans de rare cas peut s'averer handicapant)

ce qui ne m'empeche pas d'utiliser qd meme vim (couplé avec tilda en local, et avec ssh en distant).


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#17 Le 20/09/2009, à 22:47

tuxidermiste

Re : Programmer sous linux

Moi personnellement, je te conseille MonoDevelop. ( http://monodevelop.com/ )

Franchement c'est un IDE assez génial, basé sur SharpDevelop mais qui a évolué dans une toute autre voie.

Moi je l'utilise pour faire du C# (mix de C++ et Java), mais il me semble que l'on peut l'utiliser pour tous les langages du framework .NET (donc C++, Java/J#, C, VB.NET, ........).

Il est en évolution continue, gère l'intellisense (auto-complétition), le debug, la coloration syntaxique, les breakpoints, génération de la doc, ...

Bref, vraiment bien foutu et vivement les prochaines versions qui promette smile

Le reste c'est à toi de voir s'il te convient.


Sinon un autre très sympa c'est QDevelop : http://qdevelop.org/

Mais je ne m'en suis pas servis assez longtemps pour t'en dire plus, je l'ai juste trouver abordable et avec pas mal de fonctions tout en étant assez léger.

Dernière modification par tuxidermiste (Le 20/09/2009, à 22:48)


Sony VAIO VPCEB2M1E + Kubuntu 11.10

Hors ligne

#18 Le 20/09/2009, à 22:59

Creak

Re : Programmer sous linux

Le pb de mono c'est qu'il est restreint à l'environnement .NET et, au delà du problème de liberté que l'on connait tous, cet environnement est excellent pour programmer "productif" (il faut que ça soit prêt rapidement, on s'en fout des ressources machines que ça prend), mais on se retrouve vite limité quand on veut faire du jeu vidéo (car c'est mon domaine).
Ceci dit c'est à peu prêt tout ce que je cherche dans un IDE smile

Dernière modification par Creak (Le 20/09/2009, à 23:00)

Hors ligne

#19 Le 20/09/2009, à 23:12

jarno

Re : Programmer sous linux

Bonsoir,

peut-être que QT Creator pourrait te convenir. Tu peux voir ici une petite démo http://www.youtube.com/watch?v=U7yje3D1UM4

Hors ligne

#20 Le 21/09/2009, à 10:58

Creak

Re : Programmer sous linux

En effet, ça semble pas mal du tout. Je suis plutôt un "GTK", mais bon il faut avouer que Qt fait beaucoup d'effort pour rendre leur plateforme attractive autant d'un point de vue utilisateur que développeur! Je vais tester avec vim/autotools/etc. d'abord et si vraiment c'est trop la plaie, je regarderais de plus près Qt Creator.

Hors ligne

#21 Le 21/09/2009, à 13:30

Le Barde

Re : Programmer sous linux

Je vois qu'on a parlé plusieurs fois d'Eclipse, mais tu n'as as répondu à son sujet. Sous éclipse, moyennant les plugins adéquats, tu peux développer sous n'importe quel langage a priori. Et ça a toute l'ergonomie qu'on peut attendre d'un bon IDE. Seul défaut, c'est lourd, c'est lourd...

Je pense que ton vrai problème, c'est que tu veux un EDI sous Linux qui soit à la fois Beau et Ergonomique. En tous cas, moi c'est mon souci. Je veux un outil beau, ergonomique, et qui n'est pas limité.
Beau, pour Emacs, ce n'était pas le cas, mais maintenant avec la version 23 c'est mieux. Ergonomique... il faut s'accrocher au début, mais ça devient ergonomique quand tu le configures à ta sauce. Par contre, il ne faut jamais se séparer d'une clef usb dans laquelle tu as ton petit dépôt git avec ton fichier ~/.emacs et tout.

Non, franchement, Eclipse me plaît bien. Et même pour les aficionados, sous Eclipse on peut configurer les racourcis pour être comme Emacs. lol

Après, il y a deux types d'esthétiques :
- L'esthétique du Beau pour les yeux ;
- L'esthétique du Beau pour l'esprit (UNIX...).
Et c'est pas forcément la même chose à mon avis.

Ce qui fait étrange au début, j'imagine, est que lorsque l'on pose une question sur l'IDE avec la culture que l'on a, on reçoit sur un forum linux une réponse par rapport à un autre repère ; parce que quand on est sous Linux, on aime bien faire les choses à sa sauce. Du coup, le badaud qui veut le Logiciel-beau-pour-les-yeux sera probablement décontenancé. Alors, Eclipse Beau pour les Yeux et Emacs (ou Vi(m)) Beau pour l'Esprit... Je ne sais pas, en tous cas les deux à mon avis ont potentiellement une bonne dose d'ergonomie à offrir. Le tout, pour Emacs/Vi, c'est qu'il faut approvoiser la bête.

En tous cas, je crois que ça résume à peu près mon sentiment...

Dernière modification par Le Barde (Le 21/09/2009, à 13:41)

Hors ligne

#22 Le 21/09/2009, à 14:31

HP

Re : Programmer sous linux

Le Barde a écrit :

Par contre, il ne faut jamais se séparer d'une clef usb dans laquelle tu as ton petit dépôt git avec ton fichier ~/.emacs et tout.

Perso, j'ai simplement un .emacs.d
le .emacs.el se trouve dedans, puisque il suffit d'utiliser un lien symbolique vers celui-ci…
Mais, je confirme, je ne pourrais me passer d'un moyen rapide d'y accéder… j'ai çà sur FTP et sur DropBox…
les clefs USB, j'ai un peu abandonné…


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#23 Le 21/09/2009, à 17:12

Creak

Re : Programmer sous linux

Comme toi Le Barde, j'ai testé Eclipse, mais il est vraiment trop lourd. Et, si je ne me trompe, en C/C++ il ne génère pas un projet à la sauce Unix (Makefile, etc.).
Par contre, ce que j'apprécie beaucoup sur Eclipse, c'est le fait qu'il compile les .c/.cpp en background dès qu'il y a une modif du fichier. Du coup, quand on veut compiler le projet, il ne manque plus que le link! Et en plus ça affiche les erreurs de compil en "temps réel". C'est tout con, mais ça fait parti des genres de trucs qui simplifient la vie des dev.

Sinon, j'avoue être intrigué par vim plutôt qu'emacs. J'adore les raccourcis, mais je suis pas maso à ce point big_smile
Après avoir lu le début du tuto, bien foutu, donné par mydjey. Je comprend un peu plus l'idée derrière vim et, surtout, son fichier de conf est compréhensible.

Par contre, je suis en train de me taper un howto sur les autotools, car vu que vim et emacs ne sont pas des IDE, ils ne gèrent pas ça tout seul comme des grands.

Pour revenir à la différence beau pour les yeux/beau pour l'esprit, à la différence de pas mal de développeurs linux (surtout les anciens) je ne considère pas qu'une application graphique est une version limité de la version en ligne de commande.
Si l'interface graphique est bien pensée, elle peut permettre d'aller bien plus vite qu'avec une ligne de commande. Je prend pour exemple le rippage de CD. Alors, c'est sûr, si tu connais par coeur la ligne à écrire ça va plus vite (et encore...), mais bon, avec l'interface graphique il suffit de 3 clics... Bref, cessons cette gueguerre gui vs. cli. Les deux ont des avantages, même en terme de performances.

Hors ligne

#24 Le 21/09/2009, à 17:26

Luc Hermitte

Re : Programmer sous linux

Creak a écrit :

Sinon, entre vim et gvim... y a un intérêt à prendre la version graphique (vous allez m'en vouloir à force de toujours ramener une couche graphique, mais j'avoue que je vois pas trop l'intérêt de rester en terminal même pour l'éditeur de texte alors qu'on a un tout joli environnement de bureau smile)

Comme signalé, vim (me) pose des gros problème d'interprétation du terminal, particulièrement des touches reçues. Ainsi, mapper sur la touche alt va s'avérer pratiquement impossible avec vim.

De plus gvim offre des menus, ce qui peut avoir son intérêt pour débuter sous l'éditeur ou avec un plugin donc on ne connait pas encore les raccourcis (et qui a pensé à filer dans le menu graphique).

Après, il y a une multitude de façons différentes de s'en servir et de le customiser. Je suppose que c'est la même chose avec emacs.

Pour le débuggueur intégré, il faut chercher du côté de pyclewn -- mais tu seras tributaire de gdb, et le hic du debugage du C++ vient de lui (il faut le prendre en main, et rajouter ce qu'il faut pour simplifier les sorties)
Pour la compilation, intégrée, non bloquante, il faut filer vers mon plugin semi-expérimental BuildToolWrapper, ou le plugin portable de Marc Weber.
Pour les squelettes de fichiers, le syndrome du NIH est roi.
Pour le C++, il y a une suite qui a une grosse visibilité, et la mienne qui cherche à faire des trucs tordus.
Pour SVN&cie un seul plugin domine aujourd'hui -- mais je lui trouve pas la même ergonomie dont jouissait CVSmenu sad (c'est son utilisation en ligne de commande que j'appréciais plus)
Pour les commentaires : enhancedcommentify (l'ancêtre) ou nerdcommenter (le challenger)
Pour le refactoring (simple) (c'est bibi qui s'y colle de nouveau -- mais je suis à la bourre dans mes releases)
Pour gérer des projets, tu as l'approche "classique" avec navigation explicite avec des plugins comme NerdTree/Project.vim, ou l'approche plus implicite de fuzzyfinder|searchInRuntime + local_vimrc (il existe 3 plugins de ce nom ; ils font la même chose plus ou moins bien).

Tout ça, c'est ce que l'on peut trouver dans une configuration aux petits oignons de vim.
Mais il y a avant les bases du déplacement et de l'édition à connaitre.
Bref, on peut faire beaucoup de choses, mais cela demande un énorme investissement. En cela les EDI sont beaucoup plus simples et donc plus abordables car disposant d'éditeurs simplistes.

Hors ligne

#25 Le 21/09/2009, à 17:26

foobar

Re : Programmer sous linux

Creak a écrit :

Par contre, je suis en train de me taper un howto sur les autotools...

Sinon y a cmake, adopté par le projet KDE à la place des "autohell". big_smile
A voir...

Dernière modification par foobar (Le 21/09/2009, à 17:27)

Hors ligne