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 :

Norme qui décide ?


Sujet :

C++

  1. #21
    Inactif  

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonsoir,

    Citation Envoyé par LeGreg
    pour qu'un header soit accepté par la norme il suffit qu'il soit compilable par un compilateur adapté à la norme du C/C++. Ce qui est très vaste et il n'y en a pas de liste compilée(arf).
    Traduisons:

    Pour qu'une nouvelle régle soit acceptée en tant que telle, il faut que cette dernière soit conforme à la règle précédante.

    Donc se pencher vers "la règle précédante".

    Qu'est une "compatibité adaptée à la norme du C/C++" ?
    Si la norme du C/C++ prévaut avant toute création de logiciel, j'ai bien peur que l'on ne peut plus rien créer.

    D'ailleurs faudrait dire clairement ce qu'est la norme C/C++.

    J'ai plutôt l'impression que ceux sont les créateurs de logiciels qui poussent la norme. Cette dernière ne fait qu' a posteriori que
    de décerner des certificats d'aptitude ou non.

    Mais qui sont ces détenteurs de la norme en C/C++ ?

    Des costard-cravates fumant le cigare avec cinisme, sur "l'imbécilité informartique" ?

    Des costard-cravates , ingénieurs , non-fumeurs, rompus aux vertus de l'eau minérale ?

    Peut-être les deux (si ç'est possible ! )...

    Bah ! Je m'en moque.

    Cordialement.

  2. #22
    Membre éprouvé
    Inscrit en
    Novembre 2002
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 120
    Par défaut
    La norme tel qu'elle est fait n'est peut-être pas le meilleur système qui existe, mais c'est le moins pire. Le plus énervant, c'est de prendre des sources sur Internet et devoir tout modifier pour les rendre compilable. C'est pour ça que la norme existe, pour faire gagner du temps et pour que des dialectes ne se forment pas.

  3. #23
    Inactif  

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonsoir,


    Citation Envoyé par ShootDx
    La norme tel qu'elle est fait n'est peut-être pas le meilleur système qui existe, mais c'est le moins pire. Le plus énervant, c'est de prendre des sources sur Internet et devoir tout modifier pour les rendre compilable. C'est pour ça que la norme existe, pour faire gagner du temps et pour que des dialectes ne se forment pas.
    Je trouve votre message paradoxal.

    Si vous prenez des sources sur internet et que vous devez les
    modifier , pour satisfaire à la norme (ANSI ISO), alors je ne
    comprends pas ce que viennent faire ces sources si elles ne sont
    pas "normalisées" ?

    Etonnant de constater que d'un système d'exploitation à l' autre , la
    norme se "travestisse" !

    Mais enfin, comme le souligne JolyLoic, la norme C++, n' est
    peut-être qu' un plus petit diviseur commun ?

    J'insiste sur le fait que des "include" qui étaient certifiés ANSI ISO,
    ont été délestés, alors que ces derniers étaient bien pratiques.

    Ce n'est pas grave je m'en remettrai...

    Cordialement.

  4. #24
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par dj.motte
    J'insiste sur le fait que des "include" qui étaient certifiés ANSI ISO, ont été délestés, alors que ces derniers étaient bien pratiques.
    De quels headers parles tu ? Si quelqu'un a "certifié" ANSI/ISO les fichiers dont tu parles précédemment dans ce post, c'est que cette personne a menti.
    Citation Envoyé par dj.motte
    Mais qui sont ces détenteurs de la norme en C/C++ ?

    Des costard-cravates fumant le cigare avec cinisme, sur "l'imbécilité informartique" ?

    Des costard-cravates , ingénieurs , non-fumeurs, rompus aux vertus de l'eau minérale ?
    La norme se vote au niveau internationnal. Chaque pays qui le souhaite a une voix. Ensuite, la voix de chaque pays est gérée par un comité de normalisation national (en France, par exemple, c'est l'AFNOR). Pour être représenté auprès de ces commités, il faut payer (une somme bien plus que symbolique). Donc souvent, une entreprise/université sponsorise un représentant auprès du commité, afin que ce représentant tienne compte des intérets de celle ci.

    En pratique, le commité C++ cherche plus à atteindre un certain consensus qu'une simple majorité. Et les membres qui le compose n'ont pas forcément de cravate ni de costard. Ce sont souvent des experts du langage, des implémenteurs de compilateurs, de bibliothèques...

    En tout cas, la dernière réunion AFNOR à laquelle j'ai participé, à part le représentant de l'AFNOR qui était là pour gérer les aspects administratifs, je ne me rappelle pas avoir vu un tel costume.

    Citation Envoyé par dj.motte
    Oui, mais si par exemple ni "stricmp" ou "strcasecmp" ne font pas partie la norme ( ISO & son copain ANSI ), je ne vois plus comment faire une comparaison non signée entre chaînes de caractères. Il faudrait dans ce cas réinventer la roue.
    Peut être trouveras-tu ton bonheur sur http://www.gotw.ca/gotw/029.htm ?
    Citation Envoyé par dj.motte
    Où trouver le dictionnaire des fonctions et des "<include>" acceptés par la norme ( ANSI & ISO ) ?
    Dans la norme
    Pour les headers, en voici la liste (extraite de la norme):
    Nouveautés du C++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <algorithm> <iomanip> <list> <ostream> <streambuf>
    <bitset> <ios> <locale> <queue> <string>
    <complex> <iosfwd> <map> <set> <typeinfo>
    <deque> <iostream> <memory> <sstream> <utility>
    <exception> <istream> <new> <stack> <valarray>
    <fstream> <iterator> <numeric> <stdexcept> <vector>
    <functional> <limits>
    Hérités du C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <cassert> <ciso646> <csetjmp> <cstdio> <ctime>
    <cctype> <climits> <csignal> <cstdlib> <cwchar>
    <cerrno> <clocale> <cstdarg> <cstring> <cwctype>
    <cfloat> <cmath> <cstddef>
    Pour les fonctions, comme le norme est un peu ardue (et fait aussi parfois références à la norme C, ce qui oblige à acheter celle là aussi), je trouve ce qu'il y a sur http://www.dinkumware.com/refxcpp.html pas mal.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #25
    Inactif  

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonjour,

    Je dois tout d'abord remercier JolyLoic, pour son
    message trés complet.

    D'ailleurs je n'ai pas eu le temps de lire toutes les
    références de manière exhaustive. (c'est copieux ! ).

    Je programme avec C++, depuis les années 80.
    A cette époque mon logiciel de référence était
    Turbo C++ 3.0 (Borland).

    Dans cette version du C++, le livre dictionnaire des
    fonctions décrivait des fonctions comme
    -stricmp
    -strcmpi
    -strnicmp
    -etc...

    J' ai reconsulté le livre dictionnaire des fonctions.

    Effectivement ces fonctions n'étaient portables qu'avec
    MS-DOS, bien que transmises à BCBUILDER 5.5.

    BCBUILDER 5.5 C++ a-t-il péché par excés de zèle ?

    Maintenant concernant la norme (ANSI-ISO).

    Sans vouloir faire du violon "alter mondialiste", je me
    demande quelles sont les nations qui peuvent se pourvoir
    d' une capacité d'accés à la norme (ANSI-ISO) ?

    C'est peut-être là un point de départ pour se soustraire du
    sous-développement.

    Cordialement.

  6. #26
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 101
    Par défaut
    Salut
    J'ai lu au début de mon livre de prog. en C que la norme ANSI a été crée car chaque entreprise "fesais" son propre language C et que sa devenait un casse-tête pour les programmeurs . c'est en 1983 que cette nrome a été implentée.

  7. #27
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 633
    Par défaut
    Salut,

    Il faut bien se rendre compte que, le but originel du C, et, a posteriori du C++ était de fournir un langage de programmation, non seulement de troisième généraltion ("proche du langage humain"), mais surtout compatible avec les différentes architectures...

    On oublie beaucoup trop souvent qu'il n'y a pas que le PC (qui se décline déjà en 5 grandes "familles" allant du 3x86 au processeur 64bits), mais qu'il y a une multitudes d'autres architectures (du "mainframe" au "mac", en passant par toutes les autres)...

    Le C, à ses débuts, a été "victime de son succès", car tous les concepteurs de l'époque (on était en 1971 quand il est apparu, ce qui ne date pas d'hier) ont voulu créer leur propre implémenation du C, avec un résultat malheureux: le C qui avait pour but avoué d'être compatible partout devenait incompatible avec lui-même (du moins, avec les implémentations de "la boite concurrente")

    C'est un peu come si, tout en parlant tous français, le terme "fourchette" avait une signification différente pour vous et moi... la compréhension devient impossible...

    Dans de telles conditions, une "normalisation" est, non seulement nécessaire, mais indispensable.

    Maintenant, le problème des sources prises sur internet (et, finalement, de toute source dont on n'est pas le créateur) est bien plus un problème de mentalité qu'un problème du à la norme elle-même:

    Si un programmeur, qu'il soit débutant ou professionnel, décide de s'écarter de la norme (personne ne t'interdit de parler en argot, après tout ) il décide "en connaissance de cause" (ou du moins considéré comme) de limiter le nombre de personnes à qui s'adressera potentiellement ses sources.

    Par contre, le programmeur qui décidera de suivre la norme "aussi loin que possible" (par exemple, pour toute la gestion de l'application, avant d'en arriver à la partie graphique) s'assurera, d'une certaine manière, de s'adresser potentiellement à beaucoup plus de monde, garantissant ainsi le "succès" de son code source.

    Je travaille aussi bien sous linux que sous windows, et il est beaucoup plus facile de se baser sur la norme "jusqu'à un certain point" (en fait, jusqu'à ce que l'interface graphique rentre en ligne de compte) que de commencer avec des vérifications préprocesseur à n'en plus finir pour déterminer si l'on travaille sous linux ou sous windows, qui, en plus, nécessiteront de manière quasi systématique la réécriture d'une partie du code pour permettre la compatibilité.

    je ne suis personne pour obliger qui que ce soit à utiliser la norme, mais je pose la question à tous, que vous programmiez sous linux ou sous windows:

    Etes-vous de "cette race d'extrémistes" qui considèrent que seul le système d'exploitation sous lequel vous tournez vaut la peine de coder, ou estimez-vous au contraire que votre code, aussi petit puisse-t-il etre mérite d'être utilisé par le plus grand nombre?

    Je n'ai besoin de la réponse d'aucun d'entre vous, mais réfléchissez-y pour vous-même, et décidez en conséquence de l'opportunité d'utiliser les normes et standards au mieux de leurs possiblités ou non.
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #28
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 89
    Par défaut
    « faisait »

Discussions similaires

  1. [Vxi3] Rapport Webi qui ramène d'une table énorme
    Par kellerman_com dans le forum Webi
    Réponses: 1
    Dernier message: 19/04/2010, 13h25
  2. TDataSet.First ou Last, qui décide ?
    Par Yves Archambault dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/06/2008, 08h44
  3. Marge énorme qui apparaît sous IE6
    Par ericbonnard dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 20/05/2008, 16h20
  4. [Fabrique Abstraite] qui décide de la famille d'objets à utiliser ?
    Par mister3957 dans le forum Design Patterns
    Réponses: 5
    Dernier message: 17/12/2007, 09h35
  5. Réponses: 7
    Dernier message: 07/09/2007, 00h50

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