IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

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


Sujet :

C++

  1. #861
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Pas d'alloc dynamique ? (comment ça j'attendais que tu le confirmes ? ) Il ne reste que la 0-initialisation qui peut couter plus cher que nécessaire sur un vecteur.
    Attention : l'initialisation d'un code critique n'est PAS critique... Le code critique, c'est celui qui tourne en boucle, hors initialisation et finalisation. Oui, je sais, c'est vicieux.
    Donc, t'as le droit à un new/malloc à l'init, mais pas pendant le fonctionnement (à fortiori, encore moins le droit aux resize/realloc bien sûr).

    Citation Envoyé par Luc Hermitte Voir le message
    Qu'est-ce qui me fait dire que je n'étais pas le seul ? Des codes que j'ai croisé et qui abusent de mutex -- car abus d'états partagés. Avec une réflexion dès la conception pour voir qu'il n'y avait un gros sac de noeud en place d'une hiérarchie, les choses auraient été différentes.
    T'inquiètes pas, j'en ai vu aussi : non, tu n'es pas fou, ni maudit, ni persécuté par les serial-mutexeurs...
    Comme toujours, il y a des gens qui les utilisent sans savoir le faire réellement. Mais il y a aussi des gens qui savent les utiliser, et surtout QUAND les utiliser, simplement ils ne sont pas légion.

    Citation Envoyé par Luc Hermitte Voir le message
    Pour les lock-free, j'ai l'impression que c'est récent comme approche (du moins, c'est moins confidentiel qu'avant), mais les implémentations qui marchent me semblent brevetées...
    Brevetés, je ne sais pas, mais confidentiels et en code fermé, ça je peux te le garantir par contre... Mettre 50% de perfs dans les dents à la concurrence, ça vaut son pesant d'or et tu tiens donc le "comment" secret.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  2. #862
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2009
    Messages : 237
    Points : 6
    Points
    6
    Par défaut
    Pour cette histoire de code critique il y a des techniques qui demandent surtout un code fait maison, par exemple Pool d'allocation et le Cache c'est deux la peuvent affecter les performances d'une manière très significative et en général leurs implémentations reste spécifique a ce qu'on veut faire.

    par exemple pour doxygen, ou il y a utilisation d'un cache fait maison pour accélérer le traitement, j'ai fait l'expérience de virer le cache et le temps a tout simplement doublé pour le traitement de certains projets.


    Pour l'abstraction et la simplification de la couche technique qui était l'origine d'une grande querelle, j'ai tomber par hasard sur un post du créateur de boost.asio qui dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    A design goal of asio is to provide a basis for further levels of 
    abstraction. One of the ways to develop abstractions on top of 
    asio is to create what I like to call composed operations. These are 
    simply operations that are made up of calls to other lower-level 
    operations. Asio already includes some composed operations to address 
    common network programming problems: async_read and async_write to deal 
    with short reads and writes; and async_read_until to perform delimited reads.
    a un moment j'ai insister qu'on peut faire une abstraction pour une librairie existante pour notre besoin spécifique et j'avais pris comme exemple boost.asio justement , vu que les librairies en général propose des fonctionnalités génériques, mais il y avait une grande résistance

    le but la n'est pas de relancer le sujet, parce que je pense que ça ne se terminera jamais mais le but est de montrer que c'est un point de vu que beaucoup le partage, et chacun a sa manière de structurer et concevoir, il n y a pas de manière unique.

  3. #863
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    Le vrai vrai de vrai, vraiment réél probleme de C++, c'est qu'en tant que développeur en dotNet, avec un framework qui possede un très grand nombre de librairies, ou tu peux ajouter enterprise library, entity framework ou nhibernate ou une tonne d'utilitaires très pratique facile, c'est difficile de se retrouver dans un monde C++ ou tout est disparate et non standard, t'as le choix de plein de librairies, pas toujours facile à trouver, pas toujours facile à inclure dans un projets et ca rend la complexité tellement grande que c'est difficile de monter un environnement de developpement en C++ pour faire quelques applications que ce soit....

  4. #864
    screetch
    Invité(e)
    Par défaut
    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?

  5. #865
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Pour ma part, je dirais que c'est parfois un problème, parfois un avantage.
    Mais j'avoue que c'est parfois assez énervant. Du coup, j'ai de plus en plus tendance à programmer en java ou en c# lorsque je dois faire des applis simple, standar (dans le sens: qui n'ont pas besoin de faire des choses vraiment spécifiques) et avec peu de contraintes (rapidité et portabilité principalement).
    Mais parfois, le C++, voire le C, sont tout simplement indispensables. Et au final, avec un peu d'expérience, on fini par s'habituer à la "constellation" de bibliothèques et a apprendre à les utiliser sans trop se prendre la tête.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

Discussions similaires

  1. Pourquoi mon image ne s'affiche plus
    Par Gouyon dans le forum 2D
    Réponses: 5
    Dernier message: 18/03/2011, 13h51
  2. Réponses: 6
    Dernier message: 27/12/2010, 15h40
  3. Réponses: 10
    Dernier message: 22/12/2009, 19h58
  4. Réponses: 6
    Dernier message: 26/06/2006, 15h52
  5. Pourquoi n'y a-t-il plus de "délestage" massif sur le forum ?
    Par Eusebius dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 7
    Dernier message: 25/05/2006, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo