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 :

Le langage de programmation C a 50 ans


Sujet :

C

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    mai 2019
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2019
    Messages : 747
    Points : 9 983
    Points
    9 983
    Par défaut Le langage de programmation C a 50 ans
    Le langage de programmation C a 50 ans,
    et reste l'un des langages les plus plébiscités

    Le langage de programmation C a 50 ans et reste l'un des langages les plus plébiscités. « C'est absolument stupéfiant de voir à quel point les gens des Bell Labs ont tout simplement "vu juste". Le système d'exploitation et la philosophie d'Unix, l'interpréteur de commandes d'Unix et le langage de programmation C ont si bien défini l'interface et les abstractions qu'ils dominent toujours 50 ans plus tard. Je me demande quel logiciel créé aujourd'hui nous regarderons dans 50 ans avec autant de respect », déclare un internaute.

    C est un langage de programmation informatique à usage général. Il a été créé dans les années 1970 par Dennis Ritchie et les Bell Labs, et reste très largement utilisé et influent. De par sa conception, les fonctionnalités de C reflètent clairement les capacités des processeurs ciblés. Il a trouvé une utilisation durable dans les systèmes d'exploitation, les pilotes de périphériques, les piles de protocoles, bien que de moins en moins pour les logiciels d'application, et est commun dans les architectures informatiques qui vont des plus grands superordinateurs aux plus petits microcontrôleurs et systèmes embarqués.

    Successeur du langage de programmation B, C a été développé à l'origine aux Bell Labs par Dennis Ritchie entre 1972 et 1973 pour construire des utilitaires fonctionnant sous Unix. Il a été appliqué à la réimplémentation du noyau du système d'exploitation Unix. Au cours des années 1980, le C a progressivement gagné en popularité. Il est devenu l'un des langages de programmation les plus utilisés avec des compilateurs C disponibles pour presque toutes les architectures informatiques et tous les systèmes d'exploitation modernes. Le langage C est normalisé par l'ANSI depuis 1989 (ANSI C) et par l'Organisation internationale de normalisation (ISO).

    C est un langage procédural impératif supportant la programmation structurée, la portée lexicale des variables et la récursion, avec un système de types statique. Il a été conçu pour être compilé afin de fournir un accès de bas niveau à la mémoire et des constructions de langage qui correspondent efficacement aux instructions de la machine, le tout avec un support d'exécution minimal. Malgré ses capacités de bas niveau, le langage a été conçu pour encourager la programmation multiplateforme. Un programme C conforme aux normes et écrit dans un souci de portabilité peut être compilé pour une grande variété de plates-formes informatiques et de systèmes d'exploitation avec peu de modifications de son code source.


    Le C est un langage impératif et procédural dans la tradition d'ALGOL. Il possède un système de types statique. En C, tout le code exécutable est contenu dans des sous-routines (également appelées "fonctions", mais pas au sens de la programmation fonctionnelle). Les paramètres des fonctions sont transmis par valeur, bien que les tableaux soient transmis sous forme de pointeurs, c'est-à-dire l'adresse du premier élément du tableau. Le passage par référence est simulé en C par le passage explicite de pointeurs vers la chose référencée.

    De nombreux langages ont emprunté directement ou indirectement au C, notamment C++, C#, le shell C d'Unix, D, Go, Java, JavaScript (y compris les transpilers), Julia, Limbo, LPC, Objective-C, Perl, PHP, Python, Ruby, Rust, Swift, Verilog et SystemVerilog (langages de description du matériel). [La plupart d'entre eux (Python étant une exception spectaculaire) expriment également une syntaxe très similaire à celle du C, et ils ont tendance à combiner la syntaxe reconnaissable des expressions et des déclarations du C avec des systèmes de types sous-jacents, des modèles de données et une sémantique qui peuvent être radicalement différents.

    Depuis 2000, le langage C se classe régulièrement parmi les deux premiers langages dans l'indice TIOBE, une mesure de la popularité des langages de programmation.

    « Je pense que Java/C# et Rust seront toujours utilisés et en bonne forme dans 50 ans. Les deux premiers sont bons pour la programmation de la couche application avec suffisamment de fonctionnalités pour être utiles mais pas trop pour permettre aux programmeurs de se tirer dans le pied à plusieurs reprises », ironise un programmeur C.

    « Ils sont également très rapides pour la plupart des applications. Rust pourrait être l'avenir lorsque les performances ou la maîtrise du matériel sont nécessaires. Sinon, il ne restera que le C et le C++ (imaginez que le C ait 100 ans et qu'il y ait encore des gens qui l'embauchent pour programmer le code de leur nouvelle montre numérique)

    « Peut-être qu'un ou deux des frameworks web populaires seront encore utilisés. Quelque chose comme React, Node js, ou Blazor (si vous adhérez au rêve de Microsoft de fournir un langage unique pour tout développer, suffisamment rapide et portable). Je ne vois pas pourquoi Python ne continuerait pas à se développer, étant toujours un langage de script puissant dans un demi-siècle », ajoute-il.

    Et vous ?

    Quelle est votre appréciation du langage C après 50 ans d'existence ?

    Avez-vous une expérience avec le langage C ? Que pensez-vous de ce langage ?

    Voir aussi :

    Microsoft célèbre les 20 ans de .NET, son Framework de développement, les dépôts .NET seraient dans le top 30 des projets open source à plus haute vélocité sur GitHub depuis 2017

    Microsoft a publié la version stable de Visual Studio 2022 avec une nouvelle expérience de rechargement à chaud pour les applications natives C++, cette version est disponible uniquement en 64 bits

    Un développeur publie un langage de programmation qui peut être traduit automatiquement en C, C++, C#, Java, JavaScript, etc., avec une traduction rapide et sans machine virtuelle
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre averti
    Inscrit en
    juin 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 226
    Points : 441
    Points
    441
    Par défaut
    Et bien, je crois que ce sera toujours une référence en la matière, mais il et vrai qu'il y a plus sexy de nos jours.

    Je l'utilisais toute une époque sous Linux/Mac (au lieu de faire de gros script bash) mais je l'ai délaissé au profit de Purebasic, qui l'air de rien à une philosophie proche du C tout en adoptant la syntaxe et certaines spécificités du Basic.

    Je l'utilise toujours pour l'Arduino, mais peut-on encore parler de C, tant on est très limité ?

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    août 2011
    Messages
    15 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 15 414
    Points : 37 230
    Points
    37 230
    Par défaut
    Plus sexy, je sais pas, mais au moins on le trouve partout le C.

    Et ça m'étonnerait qu'il y ait des projets d'envergure développé en Basic like même moderne.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    3 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 3 136
    Points : 9 866
    Points
    9 866
    Par défaut
    Citation Envoyé par Ehma Voir le message
    Je l'utilise toujours pour l'Arduino, mais peut-on encore parler de C, tant on est très limité ?
    Surtout que Arduino c'est du C++ !
    (enfin on peut faire ça en C , mais le SDK officiel c'est du C++ ).

  5. #5
    Membre averti
    Inscrit en
    juin 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 226
    Points : 441
    Points
    441
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Plus sexy, je sais pas, mais au moins on le trouve partout le C.

    Et ça m'étonnerait qu'il y ait des projets d'envergure développé en Basic like même moderne.
    Tout dépend de ce que l'on appel "des projets d'envergure". Oui, en tout cas, Purebasic pourrait, avec des performances très honnêtes et il existe des outils sérieux de GRH ou de Facturation fait avec Visual Basic (bon, on ne parle pas des performances).

    En aucun cas je ne dis que le C est fini, bien loin de moi cette idée. Il a toujours son utilité et je l'ai pratiqué et c'est pour cette raison que je peux dire qu'il n'y a pas de raison que Purebasic ne le puisse pas.

    Ce que Purepasic ne pourrait pas, c'est faire un OS (du moins je ne le pense pas). J'ai très longtemps été développeur Delphi (qui n'était pas tout à fait pris au sérieux non plus), C++ Builder, une peu de Qt et je ne vois pas pourquoi un langage qui a une dialectique basic ne pourrait pas. Purebasic, comme je le dis, n'a que le voccabulaire du Basic, pas sa structure ni son fonctionnement, là il est plus proche du C (il y a aussi des pointeurs, des includes, des structures, ....).

    Pour en revenir à l'envergure d'un projet, ça n'a rien à voir avec le langage (pourvu qu'il ait le minimum requis), mais avec la façons dont on organise le projet. J'ai vu d'affreux chaos en Java par des société très très réputées (qui participent au lancement de fusées dans l'espace) et des choses très solides en interprété (Bash par des sysadmin par exemple).

    Le seul reproche que je pourrais faire au C, c'est que la portabilité est difficile à gérer si on veut du GUI, réseau, database, ... on dépend toujours de frameworks tiers et de leur qualité. C'est en ça que je le trouve moins sexy. Le C devrait s'inspirer de Purebasic et inclure des obj réseau, GUI, database, indépendant des plateformes. Ca,je le sais, c ne l'aura jamais.

    Moi, ça me sert surtout de Purebasic pour automatiser/faciliter/rendre accessible aux utilisateurs, des choses compiquées sur nos serveurs, qu'ils soient Windows ou Linux et ce depuis un poste Windows/Mac/Linux. En C, ce serait, en effet, très vite un projet d'envergure alors que là en moins de 500 lignes, c'est souvent fait et de bonne qualité, pour toutes les plateformes.

    Comme disait un de mes profs, avant la grande guerre, il faut choisir son langage en fonction de ce que l'on doit faire : le C peut tout faire, mais si on peut se faciliter la tâche, il serait stupide de s'en priver.

    Si je parle beaucoup de Purebasic, c'est à titre d'exemple, c'est, à tort, considéré comme langage de hobbistes. Mais ça pourrait être tout à fait autre chose. C n'a pas le monopole du bon développement ni de la performance.

  6. #6
    Membre averti
    Inscrit en
    juin 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 226
    Points : 441
    Points
    441
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Surtout que Arduino c'est du C++ !
    (enfin on peut faire ça en C , mais le SDK officiel c'est du C++ ).
    Au milieu des limitations du langage de l'Arduino, la différence est subtile. Oui, du C++ alors, milles excuses.

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    août 2011
    Messages
    15 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 15 414
    Points : 37 230
    Points
    37 230
    Par défaut
    Le seul reproche que je pourrais faire au C, c'est que la portabilité est difficile à gérer si on veut du GUI, réseau, database
    C'est encore pire pour les autres langages. Mais le C est un langage de bas niveau, il peut être complété par des framework tel que Qt. Pour le réseau, le C gère les sockets, tu peux donc faire ce que tu veux, au delà il faut utiliser des bibliothèques plus haut niveau. Pour les bases de données, il te faudra un connecteur fourni pour ton langage, pour le C normalement pas de prob., pour les autres langages, plus ton langage est connu et répandu, plus tu as de chances d'en avoir un, sinon il y aura l'ODBC.

    Pour moi le langage le plus portable actuellement est le Java car conçu pour ça, (connu pour l’adage write once, run anywhere repris des fois sur la forme code everywhere, debug everywhere - à relativiser bien sûr), celui-ci utilise d'ailleurs la syntaxe C. Pour l'interface graphique, dans Java tu as JavaFX interface graphique prévu pour les applis de bureau, les applis Internet riches, les tablettes et smartphone.

    viens ensuite le C.

    Je me souviens petit à l'école, l'initiation à l'informatique se faisait avec le Basic, maintenant je pense que c'est plutôt le Python.

    Je pense que dans 30 ans on parlera toujours du C, au moins en tant qu'origine des langages utilisés.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  8. #8
    Membre averti
    Inscrit en
    juin 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 226
    Points : 441
    Points
    441
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    C'est encore pire pour les autres langages. Mais le C est un langage de bas niveau, il peut être complété par des framework tel que Qt. Pour le réseau, le C gère les sockets, tu peux donc faire ce que tu veux, au delà il faut utiliser des bibliothèques plus haut niveau. Pour les bases de données, il te faut faudra un connecteur fourni pour ton langage, pour le C normalement pas de prob., pour les autres langages, plus ton langage est connu et répandu, plus tu as de chances d'en avoir un, sinon il y aura l'ODBC.

    Pour moi le langage le plus portable actuellement est le Java car conçu pour ça, (connu pour l’adage write once, run anywhere rerpis des fois sur la forme code everywhere, debug everywhere - relativiser bien sûr), celui-ci utilise d'ailleurs la syntaxe C. Pour l'interface graphique, dans Java tu as JavaFX interface graphique prévu pour les applis de bureau, les applis Internet riches, les tablettes et smartphone.

    viens ensuite le C.

    Je me souviens petit à l'école, l'initiation à l'informatique se faisait avec le Basic, maintenant je pense que c'est plutôt le Python.

    Je pense que dans 30 ans on parlera toujours du C, au moins en tant qu'origine des langages utilisés.
    Oui, ça j'en suis certain, le C ne disparaîtra pas, mais il sera réservé aux plus exigeants, experts, ... d'entre nous.

    Oui, je suis d'accord pour les framework, mais ce serait bien qu'un éditeur fasse un QT (un peu plus light à déployer) contenant tout, à l'image de ce que fait Purebasic (je trouve que c'est un bon exemple de ce qu'un langage/outil de développement devrait proposer).

    Java ? Là oui il y a des framework à la volée. Le déploiement n'est pas toujours facile, les builds sont parfois très lourds, .... Mais aucun langage n'est idéal ! ;-)

  9. #9
    Membre expérimenté
    Profil pro
    programmeur du dimanche
    Inscrit en
    novembre 2003
    Messages
    359
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2003
    Messages : 359
    Points : 1 383
    Points
    1 383
    Par défaut
    Citation Envoyé par Ehma Voir le message
    Oui, ça j'en suis certain, le C ne disparaîtra pas
    Oui, pour la bonne raison qu'il est assez portable, qu'il y a beaucoup de lib anciennes, et que l'ABI de C est suffisamment standard pour que les langages modernes puissent charger les lib. en c.
    Ex : python
    Ex : Kotlin : un langage moderne avec 2 grosses sociétés derrière. La version qui compile en natif n'a pas de GUI multi-plateforme comme beaucoup de langages modernes en fait.
    Alors, qu'un langage anecdotique tenu par des volontaires, nim (qui transpile en C), peut non seulement utiliser une vieille lib multiplateformes en C (IUP), ou moderne (raylib), mais en plus compiler en statique en un seul binaire grâce à la compatibilité ABI.

  10. #10
    Membre éprouvé

    Homme Profil pro
    Retraite
    Inscrit en
    octobre 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 423
    Points : 1 048
    Points
    1 048
    Billets dans le blog
    1
    Par défaut
    J'ai 70 ans et j'ai connu le C, c'était la révolution, chacun avait son C , borland , Metrowerks CodeWarrior, microsoft, .... chacun mettaient en avant ce que l'autre n'avait pas comme lib... ou comme doc. Celui de borland avait une doc d'enfer.

    je passais mes voyages de transport pour aller au boulot a potassé, on se faisait tout notre TUI la base de données avec l'arbre Btree , les traces ou plutôt le sillon a été à jamais et sans aucun doute la marque indélébile. (j'ai gardé des livres que l'on ne trouve plus, mais qui sont d'une richesse…)

    Il fallait écrire nos propres drivers par exemple communication avec les douchettes et j'en passe et des meilleurs, les premières communications avec TO7 l'ancêtre de boxes internet avec la ligne téléphonique 24k qui permettait de relier des dépôts avec l'ordinateur central...

    Mais il y a d'autre langage comme le RPG d'IBM qui n'a cessé d'évoluer et qui lui aussi plus de 50 ans qui n'a cessé d'évoluer. Bon je dirais qu'ils avaient 30 d'avance sur tout ce qui existait et qu'en 1980 on parlait déjà de LG3 et très rapidement LG4 mais cela reste du propriétaire.

    Aujourd'hui je fais encore du C voir C++ ça occupe la retraite. Beaucoup de langage on un compilateur en C en dessous...

    Ce que je regrette les impressions avec les séquences escape pour des listes et autre en gestion, c'était tout bête. (ça ne veut pas dire qu'il n'y a rien aujourd'hui)
    l'abandon du TUI qui avait ses lettres de noblesse, taille mémoire ridicule, le graphique à compliqué beaucoup de choses (à ne pas confondre avec utilité).

    Ce que je vois aujourd'hui, on utilise des lib toutes faites, mais on ne regarde pas comment elles sont faites et si elles méritent d'être incorporées, j'ai toujours regardé et souvent repris une partie du code pour incorporer pour ce dont j'avais besoin et je pratique encore comme ça.

    Je finis, Merci à ceux qui ont fait et font encore le C j'ai pris mon pied . Signé : un informaticien


    @bientôt

  11. #11
    Membre expérimenté
    Profil pro
    retraité
    Inscrit en
    décembre 2010
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : décembre 2010
    Messages : 625
    Points : 1 691
    Points
    1 691
    Par défaut
    Quitte à parler Basic autant utiliser Gambas, qui est gratuit et portable aussi non ?

  12. #12
    Membre averti
    Inscrit en
    juin 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 226
    Points : 441
    Points
    441
    Par défaut
    Citation Envoyé par archqt Voir le message
    Quitte à parler Basic autant utiliser Gambas, qui est gratuit et portable aussi non ?
    Oui, c'est vrai que ça a un peu dérivé sur le Basic, qui n'est pas le sujet, parce que Purebasic (qui n'a rien de basique ni de Basic, si ce n'est le vocabulaire) est un IDE bien foutu et ses lib sont géniales.
    C'était pour donne l'exemple de ce que pourrait être le C si on lui intégrait des chouettes lib plus orientées DB, GUI, Réseau, ... C'était juste à titre d'exemple.
    Pour moi, Purebasic montre un idéal que personne (je parle des développeurs de langage et d'IDE) ne suit. Et c'est bien dommage !
    Je trouve que le C reste un peu rustre, même s'il a ses grandes qualités.

    Sinon, je crois que Gambas n'est que pour Linux (peut-être Windows, mais pas pour Mac) et c'est interprété.

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    juillet 2005
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : juillet 2005
    Messages : 676
    Points : 1 566
    Points
    1 566
    Par défaut
    Purebasic je l'avais testé pendant quelque temps, j'avais trouvé ca génial....
    Les seuls défaut que je lui trouve :
    - Trop axé Windows, Purebasic sous Linux c'est pas aussi simple à utiliser notamment pour tout ce qui est graphique
    - Ils ont mis le mot "Basic" dans le nom et c'est bien dommage, les gens s'imaginent un langage pas puissant, lent, pour débutant et c'est pas du tout le cas

  14. #14
    Membre averti
    Inscrit en
    juin 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 226
    Points : 441
    Points
    441
    Par défaut
    Citation Envoyé par bombseb Voir le message
    Purebasic je l'avais testé pendant quelque temps, j'avais trouvé ca génial....
    Les seuls défaut que je lui trouve :
    - Trop axé Windows, Purebasic sous Linux c'est pas aussi simple à utiliser notamment pour tout ce qui est graphique
    - Ils ont mis le mot "Basic" dans le nom et c'est bien dommage, les gens s'imaginent un langage pas puissant, lent, pour débutant et c'est pas du tout le cas
    Oui, ils ont mis Basic dans le nom.... Probablement qu'à l'époque sous Amiga ça avait du sens.

    Sinon, Purebasic est (aujourd'hui) aussi simple sous Linux que sous Mac et Windows, je dois peu ré-écrire (et c'est rare) d'une plateforme à l'autre. Sauf les / qui deviennent des \

  15. #15
    Membre expert
    Profil pro
    undef
    Inscrit en
    février 2013
    Messages
    833
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : undef

    Informations forums :
    Inscription : février 2013
    Messages : 833
    Points : 3 027
    Points
    3 027
    Par défaut
    La stabilité syntaxique, ça compte. Les langages dont la syntaxe change tout les quatre matins et flirtant dangereusement avec l'incompatibilité de version sont des catastrophes industrielles en devenir.

  16. #16
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    juillet 2013
    Messages
    1 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 1 347
    Points : 8 475
    Points
    8 475
    Billets dans le blog
    43
    Par défaut
    Sans doute le langage qui a eu le plus d'influence dans l'industrie de l'informatique avec comme principale qualité sa simplicité et sa cohérence syntaxique.

    Je noterais quand même qu'il n'a pas vraiment introduit de concepts d'avant-garde, si ce n'est mettre l'emphase sur la programmation structurée, ce qui certes à l'époque n'allait pas encore de soi.

    Aussi, certains éléments dans le langage C trahissent le fait que les auteurs ne se sont pas résolus à aller jusqu'au bout de cette logique de programmation structurée, je pense au reliquat "goto" ou encore au peu élégant "switch / case / break" qui a été repris en l'état dans d'autres langages, hélas.

    Quoiqu'il en soit, une longévité méritée, avec des cas d'usage toujours pertinents à l'heure actuelle comme l'embarqué ou la gestion du matériel.
    Pour le reste, les langages qui lui ont succédé ont permis aux développeurs d'être nettement plus productifs grâce à l'apport du paradigme orienté objet qui a lui aussi été une révolution en favorisant l'encapsulation et la modularité. C'est possible en C, mais au prix d'une discipline et d'une verbosité contre-nature.
    Tutoriels et FAQ TypeScript

  17. #17
    Expert éminent
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    juillet 2012
    Messages
    1 237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : juillet 2012
    Messages : 1 237
    Points : 9 338
    Points
    9 338
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    je passais mes voyages de transport pour aller au boulot a potassé, on se faisait tout notre TUI la base de données avec l'arbre Btree , les traces ou plutôt le sillon a été à jamais et sans aucun doute la marque indélébile. (j'ai gardé des livres que l'on ne trouve plus, mais qui sont d'une richesse…)
    (.../...)
    Ce que je regrette les impressions avec les séquences escape pour des listes et autre en gestion, c'était tout bête. (ça ne veut pas dire qu'il n'y a rien aujourd'hui)
    l'abandon du TUI qui avait ses lettres de noblesse, taille mémoire ridicule, le graphique à compliqué beaucoup de choses (à ne pas confondre avec utilité).

    Ce que je vois aujourd'hui, on utilise des lib toutes faites *, mais on ne regarde pas comment elles sont faites et si elles méritent d'être incorporées, j'ai toujours regardé et souvent repris une partie du code pour incorporer pour ce dont j'avais besoin et je pratique encore comme ça.
    J'ai connu en début de carrière dans les années 80 cet univers là côté système - production / exploitation, pour nos chères lectrices et lecteurs selon Wikipedia :

    Environnement en mode texte
    Un environnement en mode texte (TUI, de l'anglais « Text User Interface », « Textual User Interface » ou encore «Terminal User Interface » est un rétronyme introduit dans le jargon informatique après l'invention des environnements graphiques pour se distinguer des interfaces en ligne de commande (.../...)

    Arbre B
    En informatique, un arbre B (appelé aussi B-arbre par analogie au terme anglais « B-tree ») est une structure de données en arbre équilibré. Les arbres B sont principalement mis en œuvre dans les mécanismes de gestion de bases de données et de systèmes de fichiers. Ils stockent les données sous une forme triée et permettent une exécution des opérations d'insertion et de suppression en temps toujours logarithmique (.../...)

    ...

    Impressions avec les séquences escape :

    Listing (impression)
    Un listage ou listing est un imprimé des lignes de codes d'un programme informatique ou d'un fichier de données dans un format lisible par un humain (.../...)

    Séquence d'échappement
    On entend par séquence d'échappement (de l'anglais escape sequence) une séquence de quelques octets et/ou de caractères présente dans un flot de texte et jouant un rôle particulier à l'endroit où elle est présente. Elle est introduite par un code prévu à cet effet, généralement le code de contrôle 0x1B ESC (pour escape). Bien que les terminaux physiques en mode texte soient devenus rares au début du XXIe siècle, les séquences d'échappement restent utilisées dans les émulateurs de terminaux, ainsi que pour l'écriture d'interface en mode semi-graphique, grâce à l'API ncurses.


    Lib toutes faites * ... méritent d'être incorporées

    ncurses
    ncurses (de l'anglais « New curses », littéralement « Nouvelles malédictions ») est une bibliothèque libre fournissant une API pour le développement d'interfaces utilisateur à menu déroulant, en utilisant les caractères et couleurs d'un mode semi-graphique. Non seulement ce type d'interface utilisateur se conçoit de manière indépendante du terminal, mais il accélère le rafraîchissement d'écran, diminuant par là le temps de latence que subissent d'ordinaire les utilisateurs de shells à distance.

    Beaucoup de langages de programmation intègrent aujourd'hui un lien vers cette bibliothèque : Python, Ruby, PHP, JavaScript, Perl, Ada et Gambas (.../...)


    Une bonne impression au final, la boucle est bouclée


    * [Edit]

    Précision selon Wikipedia :

    Bibliothèque logicielle
    En informatique, une bibliothèque logicielle est une collection de routines, qui peuvent être déjà compilées et prêtes à être utilisées par des programmes. Les bibliothèques sont enregistrées dans des fichiers semblables, voire identiques aux fichiers de programmes, sous la forme d'une collection de fichiers de code objet rassemblés accompagnée d'un index permettant de retrouver facilement chaque routine. Le mot « librairie » est souvent utilisé à tort pour désigner une bibliothèque logicielle. Il s'agit d'un anglicisme fautif dû à un faux-ami (library) (.../...)
    « La musique doit être donnée à ceux qui l'aiment, je veux donner des concerts gratuits ; c'est la réponse. »
    Sviatoslav Richter (1915 - 1997)

    Club des professionnels en informatique
    Le plus important club en langue française pour les professionnels en informatique ... À qui s'adresse le Club ... Pourquoi pas de cotisations ?

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    octobre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : octobre 2006
    Messages : 58
    Points : 112
    Points
    112
    Par défaut Un des plus mauvais langage
    Bonjour à toutes et tous,
    Je vais me faire incendier mais, pour moi, le langage C est un des plus mauvais langage qui soit et je sais de quoi je parle ayant été chef de projet du développement d'un compilateur de langage C avant même qu'il soit normalisé (le seul document disponible à l’époque était le livre de Brian W. Kernighan et Dennis M. Ritchie, première version de 1978. Ce développement a été effectué au début des années 80.
    Pourquoi est-ce un mauvais langage ?
    Parce que :
    - Il n'est que faiblement typé donc pas du tout "secure" (conversions implicites)
    - On peut arriver à faire n'importe quoi avec les pointeurs en C grâce au "cast"
    - Le "switch/case" est une horreur car on est obligé d'utilisé break sans arrêt
    - Ler #define est une horreur car il oblige à faire des interactions dans le compilateur entre la phase d'analyse lexicale et syntaxique (bon depuis il y a le typedef)
    - L’équivalence pointeur/tableau qui a obligé Stroustrup a définir un « grigris » en C++ (la paire de crochet sur delete) pour indiquer qu’on veut détrire toutes les instances d’un tableau et pas seulement le premier élément.
    - les setjump et longjump pour « simuler » le mécanisme d’exception qui n’existe pas en C.
    - Le caractère NULL (\0) pour matérialiser la fin d’une chaîne de caractère alors que les chaînes de longueur variable étaient bien mieux traitées à l’époque dans un langage comme PL/1.

    Je pourrais allonger la liste de bien d’autres défauts mais ce n’est pas la peine d’alourdir le fardeau.
    PS : c'est curieux comme ce sont toujours les plus mauvais "outils" qui sont choisis par la majorité (et pas seulement pour les langage informatiques, mais en général). On recommence d'ailleurs avec Python et son typage dynamique déficient (dans les nouvelles versions, il y a bien une tentative d'introduire le typage statique mais est-ce réellement utilisé ?) et sa matérialisation des blocs d'instructions par l'indentation (un comble dans la stupidité !). Hélas il y a d'autres langages qui utilisent cette... syntaxe comme : CoffeeScript, Miranda, Occam par exemple.

  19. #19
    Membre éprouvé

    Homme Profil pro
    Retraite
    Inscrit en
    octobre 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 423
    Points : 1 048
    Points
    1 048
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jacti Voir le message
    Bonjour à toutes et tous,
    Je vais me faire incendier mais, pour moi, le langage C est un des plus mauvais langage qui soit et je sais de quoi je parle ayant été chef de projet du développement d'un compilateur de langage C avant même qu'il soit normalisé (le seul document disponible à l’époque était le livre de Brian W. Kernighan et Dennis M. Ritchie, première version de 1978. Ce développement a été effectué au début des années 80.
    Pourquoi est-ce un mauvais langage ?
    Parce que :
    - Il n'est que faiblement typé donc pas du tout "secure" (conversions implicites)
    - On peut arriver à faire n'importe quoi avec les pointeurs en C grâce au "cast"
    - Le "switch/case" est une horreur car on est obligé d'utilisé break sans arrêt
    - Ler #define est une horreur car il oblige à faire des interactions dans le compilateur entre la phase d'analyse lexicale et syntaxique (bon depuis il y a le typedef)
    - L’équivalence pointeur/tableau qui a obligé Stroustrup a définir un « grigris » en C++ (la paire de crochet sur delete) pour indiquer qu’on veut détrire toutes les instances d’un tableau et pas seulement le premier élément.
    - les setjump et longjump pour « simuler » le mécanisme d’exception qui n’existe pas en C.
    - Le caractère NULL (\0) pour matérialiser la fin d’une chaîne de caractère alors que les chaînes de longueur variable étaient bien mieux traitées à l’époque dans un langage comme PL/1.

    Je pourrais allonger la liste de bien d’autres défauts mais ce n’est pas la peine d’alourdir le fardeau.
    PS : c'est curieux comme ce sont toujours les plus mauvais "outils" qui sont choisis par la majorité (et pas seulement pour les langage informatiques, mais en général). On recommence d'ailleurs avec Python et son typage dynamique déficient (dans les nouvelles versions, il y a bien une tentative d'introduire le typage statique mais est-ce réellement utilisé ?) et sa matérialisation des blocs d'instructions par l'indentation (un comble dans la stupidité !). Hélas il y a d'autres langages qui utilisent cette... syntaxe comme : CoffeeScript, Miranda, Occam par exemple.
    tu aurais connu comme moi l'informatique , a cette époque mise à part assembleur et le basic et encore ce n'était pas le basic que tu connais, mais le gwbasic , puis le pascal , est arrivé le C (je parle sur PC) et encore sur un 86 en cga et la mémoire central pas en Go mais 64ko et un disk de 10go valait son pesant d'or , on mettait souvent des routines en assembleur( avec le basic et le pascal) bref le C était une vraie révolution, j'ai vu les premiers pc arrivé 1981 (en france) mais il y avait , et en france en 1985 le pc Français révolutionnaire par sa conception bien entendu le gouv. n'y a pas cru perso je me suis fait tuer à la maison à l'époque j'ai dépensé 5000fr un somme (pratiquement plus de 2 mois de salaire) pour avoir un pc et une carte hercule pas en couleur.

    alors le C ouvrait des portes... , franchement tu n'es pas très juste avec le C , par contre tu aurais pu dire que la programmation pouvait devenir la foire d'empoigne , on avait l'habitude à cette époque de dire en lisant le programme si la personne était bien dans ses baskets rien qu'en regardant comment le code était employé... Après, c'est comme tout, tout dépends ce que tu en fait.

    j'ai travaillé sur IBM PC, modèle 5150,l'ancêtre du pc 1979 puis j'ai suivi l'évolution .... et en parallèle, je travaillai, sur des midrange ibm serie 32.34 38 400 etc.. là, c'était une autre histoire, là aussi certain ordinateur comparé à ceux d'aujourd'hui malgré leurs important volume sont beaucoup moins performant qu'un pc lambda sauf et je dis sauf que l'on comptait les instructions et connaissait le poids de chaque instruction, on arrivait à faire une saisie de commande en moins de 32 ko et aussi intelligente que celle que l'on peut voir dans les grands magasins style boulanger etc... ps: j'ai commencé en informatique en 1976

    aujourd'hui beaucoup de langage, mais peu très peu permettent de faire le tour de problème sans faire intervenir d'autre comparse

  20. #20
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    août 2011
    Messages
    15 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 15 414
    Points : 37 230
    Points
    37 230
    Par défaut
    - Il n'est que faiblement typé donc pas du tout "secure" (conversions implicites)
    - On peut arriver à faire n'importe quoi avec les pointeurs en C grâce au "cast"
    La philosophie du C est le programmeur sait ce qu'il fait.

    - Le "switch/case" est une horreur car on est obligé d'utilisé break sans arrêt
    La structure switch/case n'est pas forcément adaptée dans tous les cas de figure, facilement remplaçable par une suite de else if, ce que doit faire le compilateur. Mais ça facilite la lecture de code.

    Le caractère NULL (\0) pour matérialiser la fin d’une chaîne de caractère alors que les chaînes de longueur variable étaient bien mieux traitées à l’époque dans un langage comme PL/1.
    Là je connais pas, si tu peux développer ...

    Il faut remettre dans le contexte de l’époque, c'était un compilateur "facile" à réaliser, développable sur des machines peu puissantes.

    Puis est arrivé le C++, au départ le code C++ était transformé en code C avant d'avoir un compilateur complètement indépendant. Le C++ permet de pallier une bonne partie des "faiblesses" du C.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Le langage de programmation Cobol fête ses 60 ans
    Par Bill Fassinou dans le forum Cobol
    Réponses: 46
    Dernier message: 03/08/2020, 13h51
  2. Réponses: 50
    Dernier message: 31/01/2017, 19h10
  3. Réponses: 2
    Dernier message: 13/04/2016, 09h27
  4. Le langage de programmation COBOL a cinquante ans
    Par Pierre Louis Chevalier dans le forum Cobol
    Réponses: 35
    Dernier message: 01/10/2012, 21h02
  5. Le langage de programmation COBOL a cinquante ans
    Par Pierre Louis Chevalier dans le forum Actualités
    Réponses: 12
    Dernier message: 20/09/2009, 19h53

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