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

Affichage des résultats du sondage: Quel langage pour remplacer le C ?

Votants
84. Vous ne pouvez pas participer à ce sondage.
  • D

    5 5,95%
  • Rust

    21 25,00%
  • Go

    1 1,19%
  • Autre langage (lequel ?)

    3 3,57%
  • Aucun langage ne peut remplacer le C

    50 59,52%
  • Pas d'avis

    4 4,76%
Langages de programmation Discussion :

Quel langage pourrait remplacer C ?


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    1 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 089
    Par défaut Quel langage pourrait remplacer C ?
    Quel langage pourrait remplacer C ?
    Après avoir comparé Go, Rust et D, le choix d'Andrei Alexandrescu se porte sur D

    Le langage C est un des langages de programmation les plus utilisés au monde. Et pour cause, il dispose de nombreux atouts tels que la vitesse d’exécution du code, la possibilité d’écrire une application qui pourra être exécutée sans avoir forcément besoin de bibliothèque ou machine virtuelle, l’existence d’un grand nombre de compilateurs et bibliothèques, une compatibilité avec plusieurs architectures…

    Ayant été inventé dans les années 70, ce langage jouit encore aujourd’hui d’une forte communauté. Toutefois, en raison de certains inconvénients qu’on lui connait, plusieurs solutions ont été proposées en vue de remplacer ce langage.

    Nous avons par exemple C++ qui est apparu en 1983, la même année de la création d’un comité de normalisation du langage C. L’objectif était d’améliorer ce dernier en introduisant certains concepts comme les classes, les classes dérivées, les typages forts, etc.

    La soif d’améliorer le langage C n’ayant pas pu être étanchée avec C++, certaines personnes se sont lancées dans une entreprise visant à fournir de nouveaux outils pour remplacer ces deux langages. Dans ce sens, on peut citer le langage D apparu en 1999 qui s’appuie sur C++, Java et Eiffel. Google a suivi le pas depuis ces dernières années en proposant Go qui s’inspire de C et Pascal et enfin Rust qui a été dévoilé par la fondation Mozilla en 2010.

    Pour soutenir son choix, Andrei Alexandrescu (un des co créateur du langage D) s’est proposé de présenter D, Go et Rust dans un tableau comparatif.


    Inconvénients de Go

    Problème de performance : parmi les caractéristiques principales de Go, l’on a les appels indirects de fonction et l’implémentation d’un ramasse-miettes. Toutefois, selon Andrei, ce sont des éléments qui constituent des régressions dans la mesure où ils font décroitre les performances du code exécuté.

    Absence de programmation générique
    : le fait que la programmation générique n’est pas encore possible avec Go constitue, du point de vue d’Andrei, un gros handicap. Les développeurs ont réclamé cette fonctionnalité, mais ces derniers doivent attendre jusque-là. Selon Andrei, ce choix est fait sciemment et est plus de l’ordre politique qu’autre chose.

    La simplicité qui devient un handicap : Go se veut par essence relativement simple. Rob Pike, l’un des trois créateurs de Go, affirmait au sujet des jeunes développeurs « qu’ils ne sont pas capables de comprendre un langage brillant, mais nous voulons les amener à réaliser de bons programmes. Ainsi, le langage que nous leur donnons doit être facile à comprendre et facile à adopter ». Toutefois, Andrei explique qu’à cause de cette volonté de faciliter les choses, les développeurs se retrouvent à écrire et réécrire les mêmes choses, car Go n’offrirait pas beaucoup d’abstraction de code. Eu égard à ce fait, Andrei souligne qu’un développeur qui a utilisé Go dans un projet ne souhaiterait plus retourner vers ce langage.


    Avantages de Go

    Langage alternatif pour la programmation système : Go a été conçu afin d’offrir un langage de programmation simple pour le développement des applications système. Ce domaine a été longtemps dominé par Java. L’équipe de Go qui souhaitait également faire une percée dans ce domaine a usé de stratégies afin de pénétrer le marché des services de réseau.

    Bonne équipe en amont : pour assurer un code de qualité à Go, Google a fait appel à une équipe solide. Cela constitue un point important, souligne Andrei, qui estime que les ingénieurs derrière ce langage ont su compenser le manque de performance du langage par la qualité de Go et précisément avec la bibliothèque et les outils réseau dont dispose Go.

    Bonne image de marque : le fait que Go a été développé par Google représente selon Andrei un élément essentiel pour attirer les développeurs vers cette plateforme, même s’il n’est pas foncièrement extraordinaire. La seule image de Google est suffisante pour inciter les développeurs à adopter le langage.


    Inconvénients de Rust

    Répartition disproportionnée des efforts : selon Andrei, l’équipe de Rust alloue beaucoup d’efforts à la gestion de la mémoire, mais néglige les autres aspects du langage.

    Syntaxe atypique : pour Andrei, la syntaxe de Rust est peu commune aux autres langages de développement. Cela pourrait être frustrant ou même constituer un frein au cas où certaines personnes n’auraient pas de motivation pour s’investir dans un tel apprentissage.


    Avantages de Rust

    Nouvelles théories
    : des trois langages évoqués, admet Andrei, Rust est le seul langage disposant de théoriciens en langage de classe mondiale. Cela dénote de la précision et de la profondeur de l’approche technique de Rust.

    Un langage beaucoup plus sécurisé : l’objectif de Mozilla en implémentant ce langage est d’offrir un langage sécurisé, concurrent, et disposant de fonctionnalités essentielles pour réaliser ce que l’on souhaite. Pour Andrei, l’aspect sécurité est un avantage à ne pas omettre dans les atouts de ce langage.

    Bonne préversion : pour pouvoir atteindre la première version stable, l’équipe de Rust a mis environ cinq années en enchainant préversion sur préversion. Selon Andrei, cela constitue un avantage, car le produit fini est meilleur et comporte moins de bogues. L’effet collatéral est que la communication autour des différentes itérations a été assez forte.


    Inconvénients de D

    Mauvaise perception : à l’origine, D avait été conçu pour être le successeur de C. Mais depuis sa création en 1999, il bénéficie d’une adoption limitée. Cela est dû au fait que les gens perçoivent D comme un langage assez jeune. Cette perception complique davantage les choses dans le milieu professionnel, car les ingénieurs et décideurs sont réticents à adopter un langage qui ne parvient pas à décoller depuis toutes ces années.

    Rejet du ramasse-miettes : D dispose d’un récupérateur de mémoire qui ne jouit pas d’une bonne réputation. L’introduction du ramasse-miettes dans ce langage a été rejetée en grande partie par la communauté des développeurs C et C++. Et même s’il est vrai que l’on pourrait utiliser D avec RAII pour libérer la mémoire des objets non utilisés ou encore utiliser un style de gestion manuel, pour Andrei, cela reviendrait à créer tout le noyau de l’infrastructure et donc à utiliser ce langage de manière bancale.

    Manque du soutien de grandes firmes : il est notoire que plusieurs langages de développement ont été fortement adoptés du fait du soutien de grandes entreprises. Malheureusement, D ne bénéficie pas de ce coup de pouce. Son développement est donc laissé entre les mains de sa communauté fortement peuplée d’ingénieurs qui font plus preuve de perspicacité que de leadership, charisme ou vision à long terme.


    Avantages de D

    Vitesse de compilation du code : la compilation du code D est beaucoup plus rapide que celle du C++ pour des performances équivalentes en ce qui concerne les performances du code exécuté. Go se compile beaucoup plus rapidement, mais produit à l’exécution un code plus lent.

    Également langage de script rapide : D peut être également utilisé pour écrire rapidement des scripts. Et qui plus est, les scripts exécutés bénéficient de performances énormes indépendamment du nombre de scripts écrits (qu’ils soient en petit nombre ou en grand nombre). Par ailleurs, D dispose d’un nombre important de bibliothèques.

    Interfaçage facile avec les bibliothèques C : D utilise la même structure de mémoire que C et C++, ce qui fait que la bibliothèque entière de C est facilement accessible à D. Andrei ajoute que des travaux sont en cours pour faire la même chose avec C++.


    Langage de prédilection pour remplacer C et C++

    Pour Andrei, les caractéristiques d’introspection statique, le temps de compilation assez rapide ainsi que les nombreux atouts uniques au langage D font de celui-ci le remplaçant idéal à C. Partant de ce fait, il trouve que Go est dépassé et n’a même pas saisi le problème, tandis Rust s’essaye à donner quelques éléments de solutions. Et pour aller encore plus loin, Andrei estime que comparativement à D même C++ « s’est égaré dans les bois ».

    Source : Quora

    Et vous ?

    Que pensez-vous des conclusions d’Andrei ? Pensez-vous que D est le successeur idéal face à C ?

    Quel est votre choix personnel pour remplacer C ?

    Voir aussi

    Forum C

  2. #2
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut
    Citation Envoyé par Olivier Famien Voir le message
    Toutefois, en raison de certains inconvénients que l’on lui connait, plusieurs alternatives ont été proposées en vue de remplacer ce langage.
    Un petit rappel des inconvénients svp? A part les overflows (inévitables en quasi-lowlevel), et en ne considérant que les domaines dans lesquels il est utilisé, c'est un très bon langage à mes yeux...

    ps : le gros inconvégniant de Rust c'est qu'il est un peu rouillé

  3. #3
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 872
    Par défaut
    Citation Envoyé par Olivier Famien Voir le message
    Quel langage pourrait remplacer C ?
    Inconvénients de Rust

    Répartition disproportionnée des efforts : selon Andrei, l’équipe de Rust alloue beaucoup d’efforts à la gestion de la mémoire, mais néglige les autres aspects du langage.

    Syntaxe atypique : pour Andrei, la syntaxe de Rust est peu commune aux autres langages de développement. Cela pourrait être frustrant ou même constituer un frein au cas où certaines personnes n’auraient pas de motivation pour s’investir dans un tel apprentissage.
    Pour le développement de Rust, il y a plusieurs équipes qui se concentrent chacune sur un aspect du langage. Je n'ai plus entendu parler "d'efforts de la gestion de la mémoire" depuis un moment. Après je me trompe peut-être...

    La syntaxe du Rust est très proche des langages actuels donc à ce niveau-là, pas de souci. C'est plutôt avec le borrow checker que les développeurs passeront le plus de temps.

  4. #4
    Membre chevronné
    Inscrit en
    Juillet 2012
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 231
    Par défaut
    Citation Envoyé par Andrei Alexandrescu
    Rust puts safe, precise memory management front and center of everything. Unfortunately, that's seldom the problem domain, which means a large fraction of the thinking and coding are dedicated to essentially a clerical job (which GC languages actually automate out of sight).
    Je n’ai pas l’impression que ça ne soit centré tant que ça sur la gestion de la mémoire. L’un des concept central en Rust c’est le concept d’ownership et ça s’applique aux ressources de manières générale (la mémoire bien sûr, mais aussi mutex, fichiers, socket, …).
    C’est aussi de ce concept que découle la promesse de Rust de permettre de faire de la programmation concurrence garantie (à la compilation) sans data race.

    Parmi les trois langages discutés ici, pour moi Rust est la meilleure alternative au C. Après, je ne pense pas que quoique ce soit remplace le C à court terme…

    Go est une blague à ce niveau-là, il ne joue pas dans la même cour que le C (d’ailleurs Go attire plus les gens qui viennent de Python et Ruby que les gens qui viennent de C et C++).
    Pour D, je ne connais pas trop si ce n’est qu’il y a eu une sorte de split de la communauté et qu’il y a eu deux bibliothèques standard (Phobos et Tango)… Mais maintenant que Andrei à quitté Facebook pour se consacrer au D les choses vont peut-être s’améliorer pour le langage.

  5. #5
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Citation Envoyé par grim7reaper Voir le message
    Je n’ai pas l’impression que ça ne soit centré tant que ça sur la gestion de la mémoire. L’un des concept central en Rust c’est le concept d’ownership et ça s’applique aux ressources de manières générale (la mémoire bien sûr, mais aussi mutex, fichiers, socket, …).
    Oui mais 99% du temps c'est bien de mémoire dont on parle puisque tu manipules celle-ci en permanence. C'est d'ailleurs cette omniprésence du vérificateur d'emprunts (borrow checker) qui rend Rust parfois pénible à utiliser.

    Parmi les trois langages discutés ici, pour moi Rust est la meilleure alternative au C. Après, je ne pense pas que quoique ce soit remplace le C à court terme…
    La base de code installée étant immense, C/C++ seront là pour longtemps. Mais pour les nouveaux projets je pense que Rust va rapidement s'imposer comme leur remplaçant. D'autant que là où les concepteurs de matériel commençaient auparavant par écrire un compilo C, de plus en plus souvent ils écrivent plutôt un backend LLVM.

    Go est une blague à ce niveau-là, il ne joue pas dans la même cour que le C (d’ailleurs Go attire plus les gens qui viennent de Python et Ruby que les gens qui viennent de C et C++).
    Pour D, je ne connais pas trop si ce n’est qu’il y a eu une sorte de split de la communauté et qu’il y a eu deux bibliothèques standard (Phobos et Tango)… Mais maintenant que Andrei à quitté Facebook pour se consacrer au D les choses vont peut-être s’améliorer pour le langage.
    Go ne joue effectivement pas du tout dans la même cour, c'est à se demander si ses dévs savaient où ils allaient quand ils l'ont présenté comme tel. En revanche Go pourrait devenir *le* langage pour les centres de données grâce au nom de Google.

    Quant au D, pour moi il appartient à la même génération que Java et C# et s'est fait bouffer par ces deux-là.

  6. #6
    Membre chevronné
    Inscrit en
    Juillet 2012
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 231
    Par défaut
    Citation Envoyé par DonQuiche
    C'est d'ailleurs cette omniprésence du vérificateur d'emprunts (borrow checker) qui rend Rust parfois pénible à utiliser.
    Je préfère un truc pénible à la compilation qu’a l’exécution


    Citation Envoyé par DonQuiche
    Mais pour les nouveaux projets je pense que Rust va rapidement s'imposer comme leur remplaçant.
    J’en suis pas si sûr, mais j’espère me tromper.

    Citation Envoyé par DonQuiche
    D'autant que là où les concepteurs de matériel commençaient auparavant par écrire un compilo C, de plus en plus souvent ils écrivent plutôt un backend LLVM.
    Tu as une (des?) source à ce sujet*?

  7. #7
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Même question que SkyZoThread : quels sont les inconvénients de C ?...
    Parce que "l'assembleur portable" me semble toujours être super : pas de fioritures, juste des instructions sous une forme compréhensibles.
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  8. #8
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 883
    Par défaut
    Salut Luther.

    Citation Envoyé par Luther
    De plus il faut voir que le bancaire dans lequel vous semblez travailler, c'est un domaine très particulier ou le poids de l’existant est souvent énorme. Dans d'autres domaines, il est moins déterminant (même s'il reste généralement important) et on peut plus facilement se permettre d'utiliser de nouvelles technologies.
    Ce que vous dites est tout à fait vrai. Je rajouterai que ce poids de l'existant est particulièrement contraignant car c'est fréquemment le client qui impose ce choix par nécessité.

    Citation Envoyé par Luther
    A court terme peut-être, mais une base de code vieillissante sur des technologies mal maîtrisées ça peut coûter encore plus cher à long terme.
    Si vous soulevez le problème de la maintenance, je suis encore d'accord avec vous.
    Plus la base de code devient énorme, voire gigantesque, plus la maintenance va coûter cher, ce qui implique une impossibilité même à long terme, à tout réécrire dans un langage qui serait plus adapté.

    Imaginez un seul instant, la refonte total du cœur du métier bancaire, en passant du cobol à un langage mieux adapté !
    En l'état actuel, c'est quasiment impossible à faire, car le problème vient essentiellement de la connaissance du métier de la banque.
    Il faut maîtriser ce cœur et je peux vous assurez que même chez les banquiers, cette condition n'est pas toujours présente dans leur effectif.
    Voire même, pour répondre à ce genre de question, on interroge fréquemment les informaticiens. Oui, vous avez bien lu, la connaissance n'est plus chez les banquiers mais dans deux corps de métiers, qui sont les informaticiens et les financiers.
    Alors quand le créateur d'une application vient à disparaître des effectifs de la banque, celle-ci perd une part de sa connaissance et de sa culture.
    Il arrivera un jour où plus personne ne maîtrisera ce système d'information, qui d'une part sera devenu extrêmement complexe, mais d'autre part le niveau de connaissance requis pour le maintenir n'existera plus.
    Oui, je parle aussi de la formation des gens qui seront les informaticiens de demain, dans le domaine bancaire. Le cobol n'est pratiquement plus enseigné dans les écoles, et quelqu'un qui sort d'une de ces écoles préfère se mettre à son compte pour faire du web car c'est plus rémunérateur, et il peut aussi faire ce qu'il veut.

    Citation Envoyé par Luther
    On a plusieurs projet chez nous qui auraient gagné à être refondus il y a longtemps.
    D'où ma question : qu'elle est la raison qui fait que vous remettez à demain ce que vous pourriez faire aujourd'hui ?
    Est-ce un problème de compétences que vous ne trouvez pas sur le marché, un problème de budget ou encore pas le temps nécessaire pour faire une refonte de vos projet ?
    C'est ce poids de l'existant qui est un problème dans le milieu informatique, quelque sort le métier.
    Si vous faites toujours du neuf alors le problème se ne pose pas et n'importe quel langage qui répond à vos besoins fera l'affaire. Sur ce point, je suis en conformité avec ce sujet.

    Citation Envoyé par Luther
    Oui j'ai entendu parler de PacBase, bien que je n'en ai jamais fait personnellement.
    J'ai fait du pacbase et c'est une grosse merde qui a été imposé par IBM dans les banque. Le slogan étant de nous faire gagner du temps dans les développements.
    Mais au final, cela posait plus de problème dès que les traitements devenaient complexes. En fait, pacbase est adapté pour des tous petits projets qui évolue autour du noyau centrale.

    Citation Envoyé par Luther
    Chez nous, je ne dirais pas que le Cobol est un succès : on a des gens qui font avec dans certains projets bancaires, mais c'est généralement par contrainte et non par choix
    A ma connaissance, le cobol est utilisé essentiellement sur le gros système IBM et plus rarement sur des mini-systèmes.
    Oui, vous avez encore raison, ce n'est pas par choix, mais parce que le client impose ce choix par nécessité !

    Citation Envoyé par Luther
    On essaie de le remplacer par autre chose dès que c'est faisable sans trop de surcoût.
    Quand vous en avez la possibilité, je veux bien, mais sur gros système IBM, à part Pacbase et le cobol natif, il n'y a pas grand chose d'autre. Peut-être de l'assembleur IBM 370 ???

    Citation Envoyé par Luther
    En général si on trouve le C++ simple, c'est qu'on l'utilise mal.
    Tout dépend comment vous développez. D'après mon expérience, beaucoup de gens qui font du C++ ne maîtrisent pas correctement la POO. Autrement dit, ils utilisent du C++ pour faire du procédurale.

    Citation Envoyé par Luther
    Les concepts ne sont pas foncièrement complexe au premier abord, mais si on ne les connais pas bien toutes les implications parfois subtiles, on se retrouve très facilement avec des erreurs sournoises.
    Pour être honnête avec vous, je n'ai jamais travaillé sur des projets très complexe en C++. Et d'après ce que j'ai vu, notre façon de développée était plus du procédurale que de la POO.

    Citation Envoyé par Luther
    J'ai cité Google et Mozilla comme exemple et car se sont les créateurs des langages et que s'ils pris la peine de faire ça c'est bien avant tout pour répondre a leur besoins.
    Je ne vous fait aucun reproche. Je dis simplement que c'est le besoin de Google et de Mozilla mais pas nécessairement le besoin de ceux qui sont extérieurs à ces deux entreprises.
    Je prends le cas de la Macif, à Niort, où ils utilisent le Natural/Adabas, qui créé par la société allemande Software AG et qui est très bien adapté pour ce qu'ils font. Donc vous ne pouvez pas conclure qu'ailleurs, cela sera de même.

    Citation Envoyé par Luther
    Mais la simplicité, l'efficacité et la sécurité, c'est des besoins somme toute assez communs, ...
    Oui, mais pour qui ? C'est cette dimension que vous avez tendance à généraliser.

    Citation Envoyé par Luther
    ... il est évident qu'ils sont partagés par bien d'autres entreprises.
    Définissez moi les besoins de l'entreprise et je vous dirais si cela répond à ses besoins.
    Il n'y a pas qu'un seul corps de métiers en informatique et de ce fait, il n'y a pas qu'un seul besoin.

    Citation Envoyé par Luther
    Je ne vois pas ce que l'enthousiasme a à faire là dedans.
    Je parlais de Olivier Famien et de son manque d'objectivité. Il se trouve, mais je n'en sais rien, qu'il est peut-être très impliqué dans ce projet pour avoir les idées suffisaments claires.

    Citation Envoyé par Luther
    Comme tout le monde ici, je sais bien que le C n'est pas prêt de disparaître.
    Tout à fait car ce langage est directement lié à Unix et par voie de conséquence à Linux et à ces dérivés.
    Et quand on parle du C, est-ce du langage qui porte ce nom, ou du concept dont beaucoup de langages s'inspirent ?
    Je pense plus à un enrichissement qu'à un changement de concept, donc oui, le langage va évoluer mais pas nécessairement disparaître.

    Citation Envoyé par Luther
    Mais tout comme le Cobol n'est plus la référence indispensable pour les nouveaux projets, je pense qu'il y a clairement de la place dans les projets bas niveau a venir pour des langages plus modernes qui apportent plus de simplicité, sécurité, ...
    Je ne dis pas le contraire, mais vous avez tendance à sous-estimer la lourdeur de l'existent qui a justement tendance à freiner les innovations.

    @+

  9. #9
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Pourquoi remplacer le C ?

    J'ai jamais trop compris l'intérêt de vouloir "remplacer". Le C à des avantages et des inconvénient, ces forces et ces limites font qu'il répond a un besoin: la performance.


    En générale, moi je code les partis critique d'un programme en C et le reste en Python.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 204
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Pourquoi remplacer le C ?

    J'ai jamais trop compris l'intérêt de vouloir "remplacer". Le C à des avantages et des inconvénient, ces forces et ces limites font qu'il répond a un besoin: la performance.


    En générale, moi je code les partis critique d'un programme en C et le reste en Python.
    Justement tu pourrai très bien le faire en Rust, voire en D. Go me parait compliqué à intégrer car son garbage collector n'étant pas désactivable il risque d'entrer en conflit avec celui de python. Concernant les performances, il me semble avoir lu des articles dans lesquels les devs de du core Rust pensent que d'ici peu il sera plus rapide que le C car le langage étant plus restrictif il permettra au compilateur de faire des optimisations plus agressives.

    A titre personnel si je veux faire du bas niveau je préfère faire du Rust que du C. Néanmoins le C étant le seul langage dont tous les autres (ou presque) peuvent s'interfacer avec, il n'est pas près de disparaitre. Ce n'est pas le cas du C++ qui lui risque de souffrir des langages mentionnés dans l'article.

  11. #11
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Citation Envoyé par NSKis Voir le message
    Vous avez tous des arguments pour démontrer à quel point il serait judicieux de promouvoir tel ou tel langage pour remplacer le C... Et tout autant d'arguments pour prévoir un futur radieux pour ce bon vieux C!
    A mon sens, vous oubliez un élément essentiel: Ce n'est malheureusement pas que la qualité d'un langage ou l'avis des développeurs qui fait loi mais bien l'argent!!!

    La "réussite" d'un nouveau langage dépend énormément de la puissance financière qui est engagée pour le promouvoir... Si un Google ou un Microsoft décide que le prochain langage à la mode sera le "Zozo", nul doute que ce langage sera rapidement adopté par de nombreuses grandes entreprises, que du jour au lendemain des postes de développeurs "Zozo" seront à pourvoir et qu'une grosse communauté de développeurs spécialisés dans le Zozo apparaitra
    Je suis a moitié d'accord. Par exemple pour Swift, oui c'est un succès garanti, non pas a cause des mérites du langage (bien qu'il en a assurément), mais uniquement car c'est LE langage d'avenir promu par Apple pour les iBidules.
    De même le Javascript c'est imposé non pas grâce à ces mérites (bien qu'il ... heu, en fait non), mais parce que c'était le seul langage géré en natif coté client web.

    Mais dans le cadre de programmation système, on peut utiliser tout ce que l'on veut tant que ça finit en code machine, imposer sa technologie n'est pas aussi systématique. La qualité du langage et du compilateur joue énormément, le poids de l'existant aussi.

    Citation Envoyé par grim7reaper Voir le message
    Bah nope, suffit de regarder Go : y’a Google derrière et pourtant je n’ai pas vu « de nombreuses grandes entreprises » se mettre à l’utiliser.
    Idem pour certains langages de Microsoft qui ont fait des flops.
    Go a été quand même relativement bien adopté pour un langage si jeune, maintenant il est plutôt employé dans le domaine des serveurs, pas celui de la programmation système.
    Dont il est de fait plus en concurrence avec Python, Java, C#, ... que des langage comme C++, D ou Rust

    Citation Envoyé par sazearte Voir le message
    Pourquoi remplacer le C ?

    J'ai jamais trop compris l'intérêt de vouloir "remplacer". Le C à des avantages et des inconvénient, ces forces et ces limites font qu'il répond a un besoin: la performance.
    Remplacer l'intégralité du code C existant, ce n'est évidemment pas prêt d'arriver : la base est trop énorme. La question se pose pour les projet à venir.
    Envisager d'utiliser, à la place du vénérable C, un langage plus récent, comme C++, Rust ou D, qui offrirait des mécaniques plus avancées et/ou plus propres sans pour autant transiger sur les performances, ce n'est pas forcément dénué de sens.

    Citation Envoyé par Metalman Voir le message
    Merci grim7reaper des exemples !
    Ceux de Uther me paraissent moins solides, car on sait déjà que l'on va rencontrer ces "difficultés" vu que le langage est prévu pour faire du bas niveau depuis toujours (après, il faut ajouter ce que grim7repear a dit sur le low level...).
    (sinon je suis comme sazearte : pourquoi vouloir absolument remplacer ?...)
    On a beau savoir le type des difficultés auxquelles on s'expose, ça ne suffit pas a les résoudre toutes pas pour autant. J'ai beau être au courant des risques du C, si on dépasse une certaine taille de code, je suis sur que je vais commettre des erreurs qui ne me seraient pas arrivées avec un langage plus strict. Et je ne pense pas que ce soit uniquement du à mon incompétence vu qu'on trouve très régulièrement des problèmes de sécurité mémoire dans les applications les plus surveillées au monde (OS, navigateurs, ...).

    Un langage comme Rust permet d'avoir la garantie que l'on n'aura pas de problème de sécurité mémoire ou de "data race". Ça ne suffit bien évidement pas a faire un programme garanti correct, mais c'est une aide dont il serait idiot de se passer.
    De plus, si l'on peut avoir accès à des fonctionnalités de plus haut niveau sans que ça coûte en performances, je ne vois pas pourquoi s'en priver sous prétexte que l'on fait du bas niveau.

  12. #12
    Inactif  
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    794
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 794
    Par défaut
    Pour moi l'avenir c'est un système du type S# + Bartok

  13. #13
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Le projet de R&D de Microsoft dont on ne sait pas grand chose et qui a été en grande partie abandonné?

  14. #14
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Par défaut le langage pouvant remplaçer le C
    Le langage qui peut remplaçer le C est le Java puisqu'il est portable et peut fonctionner sur toutes les plates formes

  15. #15
    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
    Mais il ne remplit pas du tout la même fonction que 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.

  16. #16
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Citation Envoyé par Tatiekamlionel Voir le message
    Le langage qui peut remplaçer le C est le Java puisqu'il est portable et peut fonctionner sur toutes les plates formes
    Si Java pouvait remplacer le C, il l'aurait déjà fait.

  17. #17
    Membre très actif

    Homme Profil pro
    Mentaliste
    Inscrit en
    Mars 2008
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Mentaliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 872
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Pourquoi remplacer le C ?
    J'ai jamais trop compris l'intérêt de vouloir "remplacer". Le C à des avantages et des inconvénient, ces forces et ces limites font qu'il répond a un besoin: la performance.
    En générale, moi je code les partis critique d'un programme en C et le reste en Python.
    J'aimerais bien savoir qui t'a mis 3 down et surtout pourquoi

    Citation Envoyé par Gugelhupf Voir le message
    La question "Quel langage pourrait remplacer C ?" ou ses dérivés ("Est-ce que le C va mourir ?" etc) revient tout les ans, dans 20 ans on aura toujours du C et niveau concept il n'aura pas bougé d'un poil.
    Il n'y a qu'a voir sur les 10 dernières années, les développeurs les plus demandés, et dans quels domaines : en gros, c'est toujours C, C++ et Java. Sur les 20 dernières années, c'est toujours C et C++. Donc bon... heureusement qu'à l'IUT les étudiants mangent du C++ pendant presque deux ans... quand on connaît bien C++, tous les autres langages paraissent à la fois simples et peu évolutifs... car le C++ a absolument toutes les choses que les autre langages acquièrent au fil du temps : classes, héritage, héritage multiple, surcharge opérateurs, bas niveau, etc etc.


    Bref d'ici que le C ne soit plus dans le top 3 on sera tous grands-parents... si jamais ça arrive

  18. #18
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    J'aimerais bien savoir qui t'a mis 3 down et surtout pourquoi
    Parce que j'ai dit Python, j'ai l'impression les membres de ce forum semble ne pas trop aimer le python


    Vouloir supprimer le c c'est supprimer tous ces "cousins" (Python, PHP...etc), beaucoup de langages de script sont fais en C.

  19. #19
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Citation Envoyé par SurferIX Voir le message
    J'aimerais bien savoir qui t'a mis 3 down et surtout pourquoi
    Personnellement je l'ai fait pour un mix de ces raisons :
    - Entre l'article et les réponses, des raisons il y en a, on peut ne pas les trouver suffisantes, mais elles existent.
    - Il parle du C comme si c'était le seul langage valable pour le bas niveau alors que le Rust et le D en sont tout à fait capable.
    - Il parle comme si on voulait faire disparaitre le C du jour au lendemain, ce qui est idiot. Il ne s'agit que de discuter des alternatives possibles pour les développements a venir.

    Ça donne l'impression qu'il s'est focalisé sur un seul mot du titre, l'a mal interprété et lu le reste en diagonale.

    Citation Envoyé par sazearte Voir le message
    Vouloir supprimer le c c'est supprimer tous ces "cousins" (Python, PHP...etc), beaucoup de langages de script sont fais en C.
    Python n'a rien d'un cousin du C et malgré une ressemblance au niveau de la syntaxe, j'aurais du mal a classer PHP dans sa famille directe.

    Si tu veux dire que les interpréteurs/VM de ces langages sont généralement fait en C, c'est vrai. Mais ça n'a rien d'obligatoire. Il y a des implémentations dans d'autre langages. Des interpréteurs performants pour ces langages peuvent tout à fait être écrit en Rust ou D.

    Si c'est parce qu'ils peuvent s'interfacer avec le C, alors sache que Rust et D peuvent utiliser l'ABI de C et donc en faire autant.

  20. #20
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Python n'a rien d'un cousin du C et malgré une ressemblance au niveau de la syntaxe, j'aurais du mal a classer PHP dans sa famille directe.

    Si tu veux dire que les interpréteurs/VM de ces langages sont écrits généralement fait en C, c'est vrai. Mais ça n'a rien d'obligatoire. Il y a des implémentations dans d'autre langages. Des interpréteurs performants pour ces langages peuvent tout a fait être écris sans problème en Rust et D.
    Oui mais faudrait tout recoder. Devoir tout recoder l'interpréteur Python et PHP, ainsi que tous les modules et pourquoi au final ? C VS Rust excuse moi mais pour moi les avantages ne vaut pas un tel investissement.

    Remplacer, dans le sens recoder l'existent, non je ne suis pas d'accord avec l'article.

    Remplacer, dans le sens, coder un nouveau projet et choisir un autre langage que le C, oui je suis d'accord.

Discussions similaires

  1. Créer un site web - en quel langage ?
    Par Thierry92 dans le forum Débuter
    Réponses: 96
    Dernier message: 25/04/2024, 22h24
  2. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 22h42
  3. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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