Deux grandes méthodes/philosophies pour les outils de programmation

Bonjour,

Je suis nouveau sur le forum donc je ne sais pas s’il faut mettre résolu lorsque dans le titre du sujet
lorsque c’est ok.

Pour coder un programme il y a deux grandes méthodes :

  • télécharger chacun des outils séparément (éditeur de texte + compilateur + debuggeur)
  • utiliser un IDE

A la suite de cela j’ai deux questions :

  • quelle est selon vous la meilleur méthode j’entends par la la plus efficace et pas forcément la plus complexe ?
  • qu’es ce qui est utilisé en entreprise selon votre expérience ?

Merci pour vos réponses.

Ps : je me suis vraiment fais chier à comprendre comment fonctionne vim, le paramétrer, les plugins, les raccourcis … mais je ne regrette rien. Vim est hyper efficace

D’après la philosophie linux un programme fait une seule chose mais il l’a fait super bien donc personnellement je pencherai pour la première méthode.
Cependant j’ai vraiment l’impression que c’est plus chiant et moins efficace.

j’ai testé les deux méthodes et franchement ne pas avoir mes raccourcis claviers Vim lorsque je suis sur codeblocks par exemple je suis frustré, énervé et surtout je perds du temps !

Une dernière chose si vous avez un plugin d’autocomplétion pour Vim assez efficace ça m’intéresse !

Vos avis et votre expérience m’intéresse à ce sujet.

Bon étant donné que tu es nouveau venu je ne peux pas déplacer ton sujet dans la section Pause Café, ça attendra que tu es participé un peut plus.

Pour ma part j’utilise à la fois Atom et Vim, l’un comme l’autre me permette de push sur un Gitlab ou sur Github.
Atom je l’utilise lorsque je manipule de nombreux fichiers simultanément ou avec beaucoup de lignes/blocs.
Vim je le conserve pour de la petite édition.

Pour ce qui est de la compilation … là je passe mon tour je n’utilise uniquement Atom et de façon très sporadique sur une année.

L’utilisation d’outils dédiés, spécialisés. Donc ne pas mélanger la rédaction du code, sa correction, le contrôle de son style…

Avec des outils spécialisés, tu adaptes tes outils à tes méthodes de travail, et donc bosse bien mieux au final.

Avec un IDE, tu dois adopter les méthodes de travail choisies à ta place par les concepteurs de l’IDE. Qui forcément ne seront pas adaptées à tes besoins du moment.

Des IDE. Tout le temps.

Pour faire produire le plus rapidement possible du code de mauvaise qualité par des développeurs mal formés.

L’inverse est également vrai. :grin:

Merci beaucoup pour vos réponses.
Comme je vous l’ai dit précédemment il y a trois outils (éditeur de texte + compilateur + débuggeur) :

  • L’éditeur de texte ça va maintenant et encore je suis loin de le maîtriser mais disons je suis à l’aise (Vim)

  • Le compilateur j’utilise GCC. Le souci c’est que quand j’ai plusieurs fichiers je suis obligé de faire un Makefile afin d’automatiser en ligne de commande. Es ce une bonne pratique car ça fait perdre du temps et j’ai l’impression qu’avec les IDE on a pas à se soucié de cela ? Connaissez vous mieux ? De plus même quand je demande à des développeurs expérimentés ils ne savent même pas ce qu’es un Makefile, c’est moi qui suit dans la mauvaise direction ou bien l’inverse ?

  • Le débuggeur, quel débuggeur me conseillé vous ? Il y a bien sure GDB le classique mais je trouve que faire des lignes de commandes pour débugguer son code n’est vraiment pas pratique. L’interface graphique est largement plus appropriée dans ce cas je trouve, par exemple pour mettre des breakpoints ou encore choisir les variables que l’on veut observer.

Une dernière chose comme en entreprise ils utilisent les IDE tout le temps, par lequel commencé ?
Visual studio est le plus populaire je commence par celui la ?

Franchement c’est hyper chiant d’apprendre 15 000 outils différents (éclipse, netbeans, intellij, codeblocks, …), changer d’interface etc etc alors qu’au final on fait la même chose mais je suppose qu’en entreprise on a pas le choix ?

Merci encore pour vos réponses.

Un développeur qui se dit « expérimenté » mais ne sait pas ce qu’est un Makefile, ça s’appelle un charlatan :stuck_out_tongue:

Bonjour,
Votre question mérite quelques éclaircissement.
Avez-vous des connaissances en langages de programmation, en méthodologie, en OO ?
Ou votre problème est-il de participer au déverminage de programmes écrit en C ou C++ ?
Dans ce dernier cas, je m’en voudrais de vous conseiller quoique ce soit. Pour moi C est un langage d’importance historique majeur. Il a permit de s’affranchir de l’obligation de parler un langage machine (« assembler ») propre à chaque machine. Mais c’est un langage, compliqué, très dangereux. Comme je le disait à mes étudiants: c’est un couteau que coupe bien de tout côté. Donc, il vaut mieux ne pas l’utiliser en directe. Il cependant encore être utilisé comme dernier étage d’un compilateur de plus haut niveau conceptuel. C++ est un bâtard de l’OO …
Si inversement, vous voulez programmer des applications correctes grâce à une méthode rigoureuse, alors je ne peux que vous suggérer d’utiliser de vous lancer dans Eiffel. Deux réserves cependant:
1)votre but ultime ne doit pas être de produire des page web (html+javascript)
2)La rigueur mathématique ne doit pas vous effrayer. Ceci ne veux pas dire que vous soyez un matheux hors paire, mais bien que cela ne vous donne pas des boutons.
Si donc ces prérequis sont satisfait, chargé l’IDE EiffelStudio et amusez-vous. Il est indispensable d’utiliser l’IDE car c’est un très puissant guide de la méthode sous-jacente au langage Eiffel. Et en plus il vous débarrasse de tous les aspects graveleux de la génération de code, Makefile et compagnie. (voir Eiffel.com, Abstraction.ch)
ps: j’ai enseigné C, Eiffel et corrigé de travaux en Java. Java est certainement le langage le plus en vogue. Méfiez-vous de la mode…

Mdr +1 :+1:

Mais le mauvais code n’est pas la faute des IDE, uniquement de ce qu’on en fait et de leur customisation. :slightly_smiling_face:

À mon avis ce n’est pas si simple.

Les personnes que je connais et qui ont appris à développer sur des IDE sont de biens plus mauvais développeurs que celles qui ont appris à développer indépendamment de leurs outils.

Je n’ai pas étudié le sujet plus loin pour savoir si c’est juste une corrélation ou s’il y vraiment a un lien de causalité, mais le lien est indéniable.

ben en fait, le lien de causalité est à faire avec le prof, pas l’outil. Si avec un marteau tu tords un clou, c’est parce que tu n’a pas appris à t’en servir correctement, ou que tu es un mauvais élève.

Au théorème de Gödel près…

Si le professeur ou même l’école étaient les mêmes à chaque fois, je n’en serais pas arrivé à mettre les IDE en cause :wink:

Ben après , coté enseignement, normalkement il est sensé y avoir des méthode, voire pédagogiques, mais depuis Blanquer et son prédécesseur, j’avoue que c’est plutot la misère. Ces mecs la rendrait presque la méningite sympathique

Bonjour,
Bien que ce soit ma première contribution ici, je saute sur ce thread car nombre de réponses m’ont pour le moins interloquées ! :roll_eyes:
Aie ! Le C !
Si le C est un couteau, en effet il coupe bien.
Mais si le Maitre l’a bien enseigné, l’élève n’aura aucun problème avec.
Quand au C++, il est intéressant de lire ce que Linus Torvald en dit lui même cette semaine : C++ est de la merde ! Ni plus, ni moins (et je plussoie). J’ajoute même : que fait-on de plus avec C++ que l’on ne puisse pas faire en C pur et dur à part générer des exécutables 10 fois plus gros et plus lents ?
Eiffel est aussi un excellent outil, mais comme vous le dites, il peut assez rapidement donner mal à la tête à des non matheux (bien que la programmation en général réussisse aussi très bien à de purs littéraires de formation grâce à leurs talents linguistiques et d’analyse).
Alors pour répondre à la question originale, pourquoi ne pas poser d’abord la bonne question suivante : programmer et avec quels outils, oui, mais pour programmer quoi (dans quels domaines) et sur quelles plateformes hardware (micro PC type Pi, PC ou tablettes, Mid Range Computers, Main Frames, Cloud) et software (quel OS ou cross plateforme) et enfin dans quel but (développement personnel de loisir ou professionnel d’entreprise) ?
La réponse à cette première question permettrait de bien mieux orienter notre ami Tartuff car entre développer de petites applications web (en PHP + Javascript) ou de très grosses applications de gestion (pourquoi pas encore de nos jours en Cobol - là où il y a le plus de propositions d’embauche de nos jours) ou encore des outils de télécommande de robots sur un Pi (en C ANSI pur et dur, voir même directement en assembleur) ou enfin des modélisations astronomiques (pourquoi pas en ADA) cela ne nécessitera ni les mêmes outils ni les mêmes langages.
Aussi, avant de recevoir cette réponse à cette question fondamentale, je me garderai bien de préconiser quoi que ce soit (langage ou outil).
Cependant, j’aime votre note au sujet de Java et de l’attention à porter à la mode (qui ne dure qu’un temps), ce qui peut d’ailleurs s’appliquer à bien d’autres langages tel Python, Ruby ou encore Scala, etc. etc. etc.
Enfin, pour ceux qui pensent qu’utiliser un IDE n’est destiné qu’à de mauvais programmeurs, je réponds simplement qu’il n’y a que les mauvais ouvriers qui critiquent leurs prétendus mauvais outils !
Bien cordialement en attendant un retour de notre ami Tartuff.

1 J'aime

Bonjour,

J’utilise Emacs dans sa version nox.
Uniquement pour écrire.

Parfois, lorsque j’écris du HTML, je me surprends à utiliser F10.

Ctrl+z en fin de rédaction pour lancer ma ligne de compilation.

% pour revenir au processus précédemment mis en suspend.

Ctrl+x Ctrl+c pour quitter emacs.

Le mieux c’est emacs.

Parfois même, je m’interroge.
Est-il utilie de sortir d’emacs ?

Oui pour commencer à travailler avec vim :innocent:

1 J'aime