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 :

C++ un langage non "batteries included".


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut C++ un langage non "batteries included".
    Salut les C++,

    Je suis débutant totale en C++ (pas en programmation), et après mes 400 pages de lecture sur le sujet je me suis rendus compte que le C++ n'est pas un langage "batteries included",

    c.a.d que la STL ou library standard ne fournis que les bases et non comme python tout le nécessaire pour faire de tout.

    Par exemple comment implémenter une socket en C++ ou faire une requête HTTP.

    La réponses est bien sur qu'il faut passer par une bibliothèque tierce.

    Alors je vous demande si vous le désirez bien de bien vouloir poster un ou plusieurs nom(s) de library C++ avec un petit descriptif des fonctionnalités implémenter.
    Je vous en serai reconnaissant.

    A savoir que je connait déjà le SDL2 car c'est la même qu'en C et je me demandait si ncurses existe pour le C++.

    Je tourne sous Linux et j'ai remarquer que souvent les library C++ sont suffixer de "mm" en tout cas c'est le cas pour GTK+3.
    D'ailleurs en parlant de GTK+3 est ce que les autres librairies sont installer aussi: je pense a la glib, cairo, atk, gobject etc... en version C++.

    Merci pour vos précieuses réponses.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonjour,

    Tu as une liste (pour les bibliothèques open-source) ici par exemple : http://en.cppreference.com/w/cpp/links/libs . Rien ne garantie qu'elle soit exhaustive par contre.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    402
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 402
    Par défaut
    C'est plutôt l'inverse, les requêtes HTTP et les sockets ne sont pas des batteries sans quoi le C++ est inutile. Tout le monde n'a pas besoin de ces fonctionnalités. Le C++ est plutôt la batterie et il faut l'utiliser avec les libs externes, qui fournissent de nombreuses fonctionnalités plus avancées.

    Et pour rester dans l'analogie, les autres langages sont plus "à batterie soudée". C'est effectivement assez perturbant quand on débute le C++ après un autre langage de voir qu'il faut chercher en dehors du langage pour trouver des fonctionnalités qui sont fournies de base dans d'autres langages.

    Quand tu feras ta recherche pour trouver la lib qui te conviens, tu auras peut être l'impression qu'il est difficile de choisir, chaque lib proposant des choses différentes. Du coup, on peut se poser la question : comment les autres langages ont réussit à normaliser des fonctionnalités aussi hétérogènes et complexes ? Assez simplement : en faisant des choix. Et ce n'est pas dans la philosophie du C++ d'imposer des choix aux développeurs (regarde par exemple std::regex. Ils ont choisit de ne pas se limiter à un langage de regex, mais de supporter tous les langages majeurs de regex)

    Même les outils proposés dans la lib standard ne sont pas un choix définitif. Beaucoup de classes proposent des possibilités de modifications via les paramètres template (allocateur, destructeur, etc). Il est tout à fait possible d'écrire son propre conteneur et l'utiliser avec les algos standards ou proposer un algo et l'utiliser avec les conteneurs standards.

    Et tu peux utiliser n'importe quelle lib C en C++, idéalement en écrivant un wrapper dessus.

    HS : tu utilises quel livre pour étudier le C++ ?
    J'ai l'impression, en voyant ce que tu as dit :
    Bon d'accord mais ca y ressemble quand ont regarde plus près: les classes n'étant rien d'autres que des structures (très) améliorées et les conteneurs ressemble au ensemble de données que l'on peut trouver en C (arbre, set, listes chainées, etc...)... Ca reste a débattre.
    que tu lis un livre qui se focalise sur la syntaxe du C++, mais pas sur la "philosophie" du C++. A mon sens, si tu utilises le langage C++ en pensant C ou Python ou autre chose, tu risques de passer à côté de ce qui fait la force du C++ et au contraire être frustré par les faiblesse apparentes du C++ face aux autres langages (comme l'absence de certaines fonctionnalités de base)

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Salut,

    une telle liste est utopique.
    Quand tu cherches à faire quelque chose, google "http request C++" et tu trouves les libs (ou au moins une partie) de celles qui le permettent. Ou bien comment l'implémenter toi-même.
    Mais il n'existe, à juste titre, aucun listing des lib disponibles.

    Pour socket en particulier, c'est l'API socket du C qui est utilisé. Et ce n'est pas du tout externe au langage mais juste propre à chaque plateforme.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    N'y a-t-il pas boost::asio de recommandé pour C++?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Merci pour vos réponses éclairées,

    pour répondre a la question de mintho carmo
    HS : tu utilises quel livre pour étudier le C++ ?
    Et bien je lis le livre de Jürgen Wolf C++: Das umfassende Handbuch, aktuell zum Standard C++11.
    C'est un livre de 1062 pages qui se veut complet et concernant l'esprit du C++ l'auteur matraque sans arrêt qu'il ne faut pas faire du C-Like C++ et il a presque mis le passage sur les pointeurs dans un annexe (ce qu'il n'a finalement pas fait).
    Et chose que je n'aime pas dans ce livre est que l'auteur explique sans arrêt ce qu'il ne faut pas faire avec le C++ et donne du code de ce qu'il ne faut pas faire (d'après lui). Chose que je ne trouve pas très didactique. Ont pourrait presque appeler le livre: ce qu'il ne faut pas faire en C++...
    Mais l'auteur est une pointure dans la littérature informatique allemande car j'ai lu son livre su le C et c'était passionnant.

    Bon côté lib donc Google est mon amis mais le problème est que je tourne sous Linux et que je préfère quand les lib sont inclus dans les dépôts, ça permet de distribuer ses créations sans devoir compiler les sources de la lib, mais a défaut c'est du champ des possible.

    Et merci beaucoup pour le lien, y en a pas mal pour la plupart des usages.

    Sinon le site propose aussi une liste de bibliothèques C++.

Discussions similaires

  1. Réponses: 18
    Dernier message: 12/09/2007, 19h18
  2. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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