Developpez.com - Rubrique C++

Le Club des Développeurs et IT Pro

Pourquoi la communauté C++ s'intéresse plus à la technique et ignore la conception ?

Le 2009-07-30 19:02:20, par Issam_Lahlali, Membre extrêmement actif
Bonjour,

Depuis la naissance de C++ et la communauté se focalise plus sur la technique et ces astuces.

Or s'intéresser a la conception simplifie beaucoup de choses et contribue a rendre l'utilisation de C++ très simple.

Malheureusement les sociétés commencent à fuir c++ à cause de sa complexité puisqu'on perd beaucoup de temps au niveau des couches techniques or l'essentiel c'est la couche métier.

La communauté DotNet et Java s'intéressent plus a la conception et ça se voient dans la facilité d'utilisation de leurs frameworks.

Quand la communauté C++ s'intéressera plus a la conception ?
  Discussion forum
864 commentaires
  • gl
    Rédacteur
    Envoyé par Issam_Lahlali
    d'autre part il n y a pas de culture de conception pour la communauté C++ il suffit juste de comparer les forums C++ a ceux de Dotnet et java ou on remarque qu'on parle plus de la conception.
    Je ne vois surtout pas pourquoi on viendrait sur le forum C++ (ou tout autre forum orienté langage) pour parler conception, de telles discutions ont plus leur place dans un forum conception.

    Les problématiques de conception sont, en grande partie, indépendantes des langages, mélanger les deux me semble être une erreur.

    PS : ceci étant, je suis d'accord avec toi pour dire que se focaliser uniquement sur les aspects techniques est une erreur.
  • certains trouvent que c'est un problème, d'autres que c'est mieux comme ca.
    Si C# et C++ etaient similaire, quel interêt d'avoir les deux?
  • jabbounet
    Membre expert
    partiellement vrai, Il existe des framework et des environnement métiers même en C++. j'ai même développé sur un EAI telecom (orienté métier) ou tu définissait un modèle UML sous rational rose et qui te générais et compilait le code C++ derrière, et sur ce projet personne n'a jamais été modifié a la main une seul fois le code généré.
  • Issam_Lahlali
    Membre extrêmement actif
    Envoyé par jabbounet
    j'ai même développé sur un EAI telecom (orienté métier) ou tu définissait un modèle UML sous rational rose et qui te générais et compilait le code C++ derrière, et sur ce projet personne n'a jamais été modifié a la main une seul fois le code généré.
    Effectivement si l'équipe est orienté conception on arrivera a un résultat pareil, mais malheureusement c'est pas toujours le cas.

    d'une part les frameworks techniques de C++ sont encore compliqués surtout pour un débutant donc il passera plus de temps juste pour faire une interface graphique simple.

    d'autre part il n y a pas de culture de conception pour la communauté C++ il suffit juste de comparer les forums C++ a ceux de Dotnet et java ou on remarque qu'on parle plus de la conception.

    J'ai l'impression qu'en C++ on bataille encore avec l'aspect technique or pour un langage mature on doit dépasser cette étape et ce concentrer sur le métier.
  • Issam_Lahlali
    Membre extrêmement actif
    Juste pour donner des exemples concrets des dangers d'être trop technique et ignorer la conception.

    pendant mon expérience en c++, la majorité des développeurs avec qui j'ai bosser considère la technologie COM très compliquée et voila a mon avis une raison:

    la couche COM pour un projet mal conçu est utilisé pour implémenter les objets metiers, donc on traine toute la complexité du COM avec tout ces types BSTR,SAFFEARRAY, le probléme de marshaling ainsi de suite.

    or pour un projet bien conçu les objets metiers sont des classes très simples(POCO) et a la fin on peut créer des wrappers COM autour de ces classes, donc un seul développeur qui maitrise COM suffit, on va gagner beaucoup de temps au niveau développement et surtout on facilitera la tache aux ressources humaines pour lui eviter de chercher plusieurs profils qui maitrisent la technologie COM.

    Or si on pense pas a bien concevoir l'application on contribuera forcement a l'idée que C++ est très compliqué.
  • nikko34
    Membre éprouvé
    Ben à part que la complexité des COM n'est nullement lié au langage C++, euh.. ok.

    Il faut bien distinguer ce qui est du C++, ce qui est du Windows, ce qui est du C et ce qui est du Linux.
  • Issam_Lahlali
    Membre extrêmement actif
    Envoyé par gl

    Les problématiques de conception sont, en grande partie, indépendantes des langages, mélanger les deux me semble être une erreur.
    Normalement pour un projet on passe un tiers du temps au niveau analyse et conception l'autre tiers au niveau codage et le dernier tiers on teste.

    Par contre si je bataille pour coder des choses simples forcement je piétine sur le temps de la conception et aussi de test.

    c'est vrai que la conception est général a tous les langages, mais si les frameworks et le langage ne me facilite pas la tache au niveau codage ça sera en dépend de la conception.
  • Issam_Lahlali
    Membre extrêmement actif
    Envoyé par nikko34
    Ben à part que la complexité des COM n'est nullement lié au langage C++, euh.. ok.

    Il faut bien distinguer ce qui est du C++, ce qui est du Windows, ce qui est du C et ce qui est du Linux.
    lorsque je dis que ca rend le C++ plus compliqué , je parle d'un point de vue décideur, il ne va pas rentrer dans les détails pour savoir que COM est une couche indépendante du langage, par contre il va voir que le planing est dépassé , qu'on arrive pas a trouver des ressources, ect...

    et l'exemple de COM est juste pour montrer les dangers de la mauvaise conception.

    je ne suis pas contre C++ , d'ailleurs je code toujours avec, mais je suis pour le principe de "Keep it Simple" pour essayer de remettre le C++ a sa vrai place qui commence a la perdre de plus en plus.
  • gl
    Rédacteur
    Envoyé par Issam_Lahlali
    Par contre si je bataille pour coder des choses simples forcement je piétine sur le temps de la conception et aussi de test.
    Mais justement, dans ce cas, c'est bien un problème technique et non de conception, même si au final cela peut se ressentir sur le temps affecté à la conception.
    Et cette problématique est identique pour tout les langages, même si elle sera fatalement moins fréquente pour toi dans un langage où tu es à l'aise.
  • Issam_Lahlali
    Membre extrêmement actif
    Envoyé par gl

    Et cette problématique est identique pour tout les langages, même si elle sera fatalement moins fréquente pour toi dans un langage où tu es à l'aise.
    Ça fait 10 ans que je fais du c++ et je sais qu'un débutant en C# va terminer avant moi une interface graphique en c# si moi je la code en c++

    le problème c'est qu'on a tolérer trop la complexité des frameworks techniques de C++ et pire a chaque fois on leur trouve des explications.