[Index Software] Coin des développeurs :]

Pour les gens qui ont simplement envie de discuter sans souhaiter faire passer d'information particulière.
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

Ixy a écrit :Je le crois pourtant. En C++ tu n'as pas à t'embêter autant pour les allocations qu'en C. Il existe aussi les références qui évitent des erreurs avec les pointeurs lors des passages aux fonctions. Et surtout les bibliothèques std facilitent beaucoup la programmation, pas besoin de se faire des nœuds au cerveau pour des structures complexes.
Bien programmer en C++, c'est notamment utiliser les smart-pointers (et les bons pour le bon usage), les références n'apportent rien, ce sont juste des pointeurs déréférencés qui permettent dès la compilation d'éviter certains problèmes. Le C++ c'est aussi l'usage intensif et la création de template (s) , notion inexistante en C. J'ai vu des développeurs C++ expérimentés, avec plus de 10 ans de pratique, dire qu'ils en apprenaient encore tous les jours sur ce langage (C++). Je t'assure que le C++ est le langage le plus complexe qui soit (sans parler de C++ 11 :hotcry: ) et donc le conseiller à quelqu'un qui débute est .... criminel. :innocent:
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Ixy
Prolifique
Messages : 4667
Enregistré le : jeudi 20 mars 2014 à 20:59
Localisation : 92

Re: Coin des développeurs :]

Message par Ixy »

Bubu a écrit :
Ixy a écrit :Je le crois pourtant. En C++ tu n'as pas à t'embêter autant pour les allocations qu'en C. Il existe aussi les références qui évitent des erreurs avec les pointeurs lors des passages aux fonctions. Et surtout les bibliothèques std facilitent beaucoup la programmation, pas besoin de se faire des nœuds au cerveau pour des structures complexes.
Bien programmer en C++, c'est notamment utiliser les smart-pointers (et les bons pour le bon usage), les références n'apportent rien, ce sont juste des pointeurs déréférencés qui permettent dès la compilation d'éviter certains problèmes. Le C++ c'est aussi l'usage intensif et la création de template (s) , notion inexistante en C. J'ai vu des développeurs C++ expérimentés, avec plus de 10 ans de pratique, dire qu'ils en apprenaient encore tous les jours sur ce langage (C++). Je t'assure que le C++ est le langage le plus complexe qui soit (sans parler de C++ 11 :hotcry: ) et donc le conseiller à quelqu'un qui débute est .... criminel. :innocent:
un débutant en C++ n'a absolument pas besoin de savoir comment on s'en sort dans ces cas complexes. D'ailleurs on est même pas obligé de tout comprendre à la programmation objet pour commencer à coder en C++. On peut essayer de tout écrire dans le code main en impératif et ensuite les classes ça vient peu à peu.
Je n'ai pas de diagnostic /!\
Ce que tu as la force d'être, tu as aussi le droit de l'être - Max Stirner
Alown
Occasionnel
Messages : 17
Enregistré le : vendredi 22 janvier 2016 à 18:10
Localisation : Bretagnes

Re: Coin des développeurs :]

Message par Alown »

............................
Modifié en dernier par Alown le dimanche 24 janvier 2016 à 17:33, modifié 1 fois.
.....................
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

Ixy a écrit : un débutant en C++ n'a absolument pas besoin de savoir comment on s'en sort dans ces cas complexes.
C'est justement dans "ces cas complexes" que le C++ s'impose. On utilise le C++ seulement quand on a pas le choix, que le critère principal est la performance maitrisée. Sinon choisir le C++ est toujours un mauvais choix.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Ixy
Prolifique
Messages : 4667
Enregistré le : jeudi 20 mars 2014 à 20:59
Localisation : 92

Re: Coin des développeurs :]

Message par Ixy »

Là tu parles de considérations de développeur pro :naugty: Pour un vrai débutant, C++ est selon moi un meilleur choix. C'est déjà plus fun que le C. D'ailleurs je conseille de démarrer avec Qt Creator, ça simplifie la compilation et Qt dispose d'outils sympas pour la création d'interfaces graphiques.
Je n'ai pas de diagnostic /!\
Ce que tu as la force d'être, tu as aussi le droit de l'être - Max Stirner
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

Ixy a écrit :Là tu parles de considérations de développeur pro :naugty:.
Au contraire, je propose aux amateurs une façon de s'y mettre. Et conseiller le C++ à des débutants est une immense connerie.
Je vais arrêter là. @Ixy : :kiss:
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Ixy
Prolifique
Messages : 4667
Enregistré le : jeudi 20 mars 2014 à 20:59
Localisation : 92

Re: Coin des développeurs :]

Message par Ixy »

On ne se mettra pas d'accord de toute façon. Mais si tu fais une recherche google, tu verras qu'on trouve aussi bien une réponse comme l'autre. Ca dépend de la façon d'apprendre et de programmer j'imagine :innocent:
Je n'ai pas de diagnostic /!\
Ce que tu as la force d'être, tu as aussi le droit de l'être - Max Stirner
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

Ixy a écrit :On ne se mettra pas d'accord de toute façon. Mais si tu fais une recherche google, tu verras qu'on trouve aussi bien une réponse comme l'autre. Ca dépend de la façon d'apprendre et de programmer j'imagine :innocent:
Bon j'ai dit que j’arrêtais, :lol: Je te defie de trouver un site sérieux via Google, en lien, qui dit que le C++ est un langage simple ! :kiss:
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Ixy
Prolifique
Messages : 4667
Enregistré le : jeudi 20 mars 2014 à 20:59
Localisation : 92

Re: Coin des développeurs :]

Message par Ixy »

Bubu a écrit :
Ixy a écrit :On ne se mettra pas d'accord de toute façon. Mais si tu fais une recherche google, tu verras qu'on trouve aussi bien une réponse comme l'autre. Ca dépend de la façon d'apprendre et de programmer j'imagine :innocent:
Bon j'ai dit que j’arrêtais, :lol: Je te defie de trouver un site sérieux via Google, en lien, qui dit que le C++ est un langage simple ! :kiss:
La même chose pour toi pour C :kiss:
Je n'ai pas de diagnostic /!\
Ce que tu as la force d'être, tu as aussi le droit de l'être - Max Stirner
Avatar du membre
Rudy
Prolifique
Messages : 1137
Enregistré le : samedi 28 mars 2015 à 18:52

Re: Coin des développeurs :]

Message par Rudy »

Oh, je n'avais pas vu les réponses.

@astro: Merci pour le conseil pour les algos! Je me pencherai dessus.

J'avais lu différentes choses sur les langages (et appris le terme "haut niveau" en dehors du carcan TSA par la même occasion :lol: ) et, à vrai dire, je ne savais pas par quoi commencer. Alors, je suis tombée sur un bouquin qui explique le langage en C (du site du zéro) qui justement est adressé aux personnes qui n'ont jamais fait de programmation. Et qui m'a convaincu de commencer par celui là. En gros, le choix qui était proposé était de choisir entre un langage plus simple qui se rapproche du nôtre (type Visual Basic et Python dont vous parlez), et un langage plus bas niveau (comme le langage C). Le dernier étant plus difficile, mais, qui permettait d'en apprendre plus sur la programmation et sur la fonction dont fonctionnait un ordinateur, et qui, une fois maîtrisée, pouvait nous permettre d'apprendre à utiliser d'autre langage plus facilement, puisque (de ce que j'ai lu hein), la façon de procéder dans le langage C se retrouve dans la plupart des autres langages et que c'est un programme très utilisé.

J'ai passé quelque chapitre (p.78 sur 408...) et effectivement, c'est assez ardu à assimiler quand on y a jamais touché. Mais une fois les notions acquises, je trouve ça plutôt "facile" à appliquer, je me suis déjà amusée à créer des choses. :) Bon, j'en suis encore à la console et je me suis créer des noeuds dans la tête pour y arriver hein... :mryellow:

Mais bon, aussi bien dans quelques jours je vais pleurer, et voir mes ambitions aux rabais. Je garde donc en tête Python, Java, et Visual Basic quand je me sentirai trop en difficulté.

@Bubu: Qu'est-ce que tu entends pas la difficulté au niveau gestion mémoire?

Ce que je veux en faire en fait je ne sais pas. Je n'arrive pas à me représenter de quoi je suis vraiment capable et dans quel but je fais ça, je connais pas tout le potentiel de la programmation. Je trouvais ça juste fascinant sur le coup de découvrir des choses insoupçonnées en informatique (quand j'ai réparé un téléphone portable en entrant en mode "développeur"). :)
Diagnostiquée avec un TSA léger (anciennement Asperger) par un CRA.
Avatar du membre
Tugdual
Modérateur
Messages : 41271
Enregistré le : jeudi 15 novembre 2012 à 0:13
Localisation : Nord-44

Re: Coin des développeurs :]

Message par Tugdual »

Je ne suis pas sûr qu'il y ait de langage idéal pour apprendre,
dans la mesure où chacun a sa propre vision de la simplicité.

Personnellement, j'ai un besoin quasi physique de savoir
comment sont implémentées les structures d'un langage
en assembleur pour me sentir complètement à l'aise, car
c'est la seule façon d'en avoir une compréhension à 100%.

Du coup, le C/C++ ne m'a pas paru compliqué. J'ai même
trouvé astucieuses certaines de ses implémentations
(gestion des objets et du polymorphisme par exemple).

Mais si ceci correspond à ma façon de fonctionner,
ce n'est pas forcément le cas pour d'autres personnes ...
TCS = trouble de la communication sociale (24/09/2014).
Avatar du membre
Ixy
Prolifique
Messages : 4667
Enregistré le : jeudi 20 mars 2014 à 20:59
Localisation : 92

Re: Coin des développeurs :]

Message par Ixy »

Si ce qui t intéresse c'est de voir comment les choses fonctionnent de l'intérieur, alors continue en C. Si un jour tu voudras faire des choses plus appliquées tu pourras toujours passer en C++ ou java (la syntaxe est proche)
Je n'ai pas de diagnostic /!\
Ce que tu as la force d'être, tu as aussi le droit de l'être - Max Stirner
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

Rudy a écrit : @Bubu: Qu'est-ce que tu entends pas la difficulté au niveau gestion mémoire?
Bon je récidive :lol:
En C et C++, c'est au programmeur d'explicitement détruire les allocations mémoires qu'il a lui même alloué. Dans d'autres langages, il y a le ramasse-miette (ou garbage collector) qui inspecte en fond les allocations et leur portée. Quand une ressource allouée n'est plus à la portée de quiconque, il se charge comme un grand de la détruire.
Par exemple, tu as besoin de créer un tableau de 100 valeurs. Et bien en C/C++ ce sera à toi de le détruire quand tu n'en aura plus besoin, sinon il y aura une "fuite mémoire" (memory leak).
Bon maintenant, il y a des outils qui permettent facilement d'identifier d'ou vient la fuite, mais ça peut être galère à déboguer, et une perte de temps.

Je te conseillerais bien le Java, mais renseigne toi sur les langages objets avant. (Notion de classe, d'héritage, de polymorphisme, etc ...)
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
lenine
Assidu
Messages : 205
Enregistré le : mardi 12 mai 2015 à 22:50
Localisation : Saint-Etienne

Re: Coin des développeurs :]

Message par lenine »

Si tu veut vraiment faire de la programmation, il faut commencer par avoir de bonnes bases en algorithmique.

Pour ce qui est du langage, je te conseille le C ou le C++, car il ont une syntaxe très claire, et pour lequel il existe pleins de librairies, il y a aussi le Python qui est bien mais c'est un langage interprété.
L'Ocaml quand à lui permet d'apprendre à programmer avec beaucoup de rigueur (surtout pour ce qui est des type de données).

Après, c'est à toi de choisir tout dépend de toi (ceci est très subjectif) , et de ce que tu souhaite faire en programmation.
diagnostiqué S.A. en 2013 à 19 ans (Centre Donald T Lyon) .
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: Coin des développeurs :]

Message par Bubu »

La syntaxe du C et du C++ est très simple et très claire, oui. Ça n'empêche en rien aux langages qui utilise cette syntaxe et ses dérivées de pouvoir être très complexes. Bien utiliser le C++, et à bon escient, (inutile d'utiliser une tronçonneuse pour couper sa viande :innocent: ) c'est en pleine connaissance de cause : je veux pouvoir utiliser les niveaux de mémoire cache intelligemment pour maximiser les performances (pas forcément les améliorer, hein), je veux allouer et libérer la mémoire à tel moment précis, j'ai besoin de faire des calculs intensifs, etc ... là, ouais, d'accord, le C++ s'impose. Sinon, c'est qu'une question de "mauvaise" habitude : je veux utiliser le C++ car meilleures performances (idée reçue n°1), parce que ça fait plus connaisseur (idée reçue n°2 , une des plus moche :innocent: ), ou parce que c'est le meilleur langage (idée reçue n°3) et que je connais que celui-là, mais m'en fous, c'est le meilleur t'façon... :innocent: Considérer le C++ plus simple que le C simplement parce qu'il y a plus dans les librairies standards (std:: ...) , parce qu'il y a (par exemple) l'objet std::string en C++ et pas en C, est une grossière erreur de jugement.

Si vous tenez vraiment à conseiller un langage simple qui dérive de la syntaxe C, conseillez le Java (?) . Pas de pointeurs, pas d'histoire d'allocation/libération mémoire, pas de problème de cast entre les types (et même s'il y a ambiguité, l'IDE vous le dira). Le gros inconvénient, je l'avoue est que pour quelqu'un qui débute, il se retrouve d'emblée dans l'OO sans rien comprendre. Mais comme le disait Ixy par rapport à mon argument contre le C++ pour débuter, on peut faire du procédural dans le main() ...
Je ne me souviens plus de la citation en anglais exacte mais en gros elle disait que quand on utilise mal le C++, on se tire une balle dans le pied. (Alors que quand on l'utilise bien, c'est l'opposé.)

Je dirais que rien n'est subjectif dans le choix d'un langage sur un autre, tout dépend du type de développement que l'on veut faire avec. Mais je persiste à dire que pour quelqu'un qui débute, le langage ne doit pas mettre trop (de nouveaux concepts) à la fois. Le Caml (et non pas l'OCaml, c'est autre chose) est un bon choix pour débuter sérieusement (langage fonctionnel fortement typé).

Pour finir, je vais vous donner le programme d'info en fac que j'ai suivi (abandonné en 2° semestre de Master I ... :innocent: )
Licence 1 : Caml (Light)
Licence 2 : C (sans les pointeurs et les allocations mémoires) et SmallTalk (Arghh ! émoticone du mec qui se pend :hotcry: )
Licence 3 : C complet et approfondissement, SmallTalk et intro au Java.
Master I (premier semestre) : C et Java à fond, introduction au C++, puis programmation OO abstraite (on s'en fout du langage) UML, design patterns, etc ...

Vous pouvez critiquer cette pédagogie, mais vous vous mesurez à une équipe pédagogique de haut niveau d'enseignants chercheurs .... Ils doivent quand-même savoir ce qu'ils font vous ne croyez pas ?

Après à vous de décider...
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"