je vois pas pourquoi Go pourrait remplacer le c et le c++ ya déjà java donc ça sert à rien, ça sert à google juste pour augmenter son emprise sur le monde de l'informatique mais vu que java dépasse déjà le c et le c++ dans tous les domaines ...
Java qui remplace C ou C++ ? Ca a du arriver bien sur, mais ce n'est pas courant non, principalement pour deux raisons : tout ce qui est bas niveau (meme si JavaOS montre que c'est theoriquement possible de faire du bas niveau en Java), et la JVM.
C'est sur que dans le domaine du temps d'execution, Java a toujours depasse de tres tres loin le C ou le C++.ça sert à google juste pour augmenter son emprise sur le monde de l'informatique mais vu que java dépasse déjà le c et le c++ dans tous les domaines ...
Si c'est pour dire XXX est mieux en tout que YYY, je pense que cela montre un manque flagrant de culture informatique : chaque langage, meme celui qui occupe la plus petite niche, a son interet propre. Apres, se pose la question de savoir si ce langage peut, ou va, quitter sa niche : dans certains cas (langages synchrones par exemple), la reponse est clairement non. Dans le cas de Go, je ne vois pas pour le moment de raison qu'il quitte sa niche, c'est a dire Google.
je pense que cela montre un manque flagrant de culture informatique
Je pense que cette réaction montre un manque flagrant de courtoisie . C'est pas parce que j'ai pas le même avis qu tu dois me traiter d'inculte, qu'est-ce qui te permet de me juger sur une phrase ? Tu me connais ?
#tolérance
Je suis étonné d'un usage de la mémoire couramment jusqu'à 100 fois supérieur au FreePascal, et avec ce record (?) :
et de l'absence de Delphi de ce comparatif.mandelbrot
Go 48.66 48.68 31,364 700 0% 1% 0% 100%
Pascal Free Pascal 78.74 78.76 8 530 0% 0% 0% 100%
Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Le respect, ça se mérite. Tu as sorti une énormité(Java peut remplacer C/C++ tout le temps, partout, pour toutes les applis) qui démontre ton manque de recul sur la question. On peut préférer, pour telle ou telle tâche, l'un ou l'autre, et en débattre courtoisement et avec respect. Mais une "vérité" balançée en bloc comme ça ne te permettra pas de gagner le respect des gens qui postent ici.
C'est ton droit le plus strict de préfére Java à C/C++, mais si une bonne partie des drivers et des jeux vidéos de nos jours sont fait en C ou en C++, ça n'est pas par pur aveuglement. Mais bien parceque dans ces domaines-là, ces langages offrent un avantage compétitif. Notemment par rapport au Java. C'est cette statistique que tu semble ignorer et qui te vaut cette réponse un peu sèche - mais justifiée - de gangsoleil.
Enfin, je note que tu exiges la tolérance, mais que tu ne tolères ni Go no la famille des C/C++... Ce genre de contradictions st généralement mal perçu.
D'une manière générale, quand on poste sur un forum, des fois, on dit des conneries. Et on se fait flamber. Ca m'est arriver avant-hier, sur le forum politique(je me suis permis de gloser sur l'acquisition des fondamentaux de l'orthographe...et j'ai fait une faute d'orthographe colossalle ). C'est le jeu. C'est grâce à ce jeu qu'on progresse. On fait fausse route, il y a des conséquences, et on se rend compte qu'on fait fausse route.
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
3)le temps de comprendre toutes les exigences, le projet est terminé
4)le temps de terminer le projet, les exigences ont changé
Et le serment de non-allégiance :
Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.
Non, c'est ce qu'a affirmé Andrei Alexandrescu le mois dernier quand Facebook a commencé a remplacer son code C++ par du code D en production. Et on peut raisonnablement penser qu'Alexandrescu est capable de produire un code C++ pas trop mauvais…
De même, dans les benchs publiés plus haut (commentaire #4), du code D (compilé avec LLVM) est plus rapide que le code C++ de 16,8%.
Outre Facebook, parmi les gens qui utilisent D figure Remedy Entertainment, qui est un développeur de jeux vidéos AAA et qui est maintenant sponsor de la DConf.
Donc oui, dans certaines conditions les perfs en D peuvent être meilleures qu'en C++, dans d'autres non. Clairement, à l'heure actuelle, leur GC est mauvais, mais ce n'est pas un défaut inhérent au langage. En ce sens, le langage est prometteur.
"By and large I'm trying to minimize mentions of D in C++ contexts because it's as unfair as bringing a machine gun to a knife fight." - Andrei Alexandrescu
Facebook remplace une appli c++ utilisée de manière intensive par sa version D pour être précis. Le langage fournit de meilleures perfs sur un traitement précis. Il faut juste éviter de généraliser (certains ne vont pas se donner la peine de lire le lien et de réagir au quart de tour...)
Concernant Remedy Entertainment, par curiosité, quels jeux et quels parties logicielles de ces jeux sont en D ?
Étant développeur C et C++ depuis quelques années, je dois bien dire que c'est vrai.
Cependant, je ne veux pas que cela change.
En mon sens, ces problèmes existent parce que le C et le C++ donnent un contrôle presque total au programmeur dans le but d'avoir les meilleures performances possibles, et c'est bien ça que j'aime dans ce langage.
Utiliser un langage doté de multiples sécurités (dont le garbage collector) est pratique pour le développement, et je le conseillerai même dans beaucoup de cas, mais certainement pas dans celui où les performances prônent, je passe une bonne partie de mon temps à grappiller jusqu'à des microsecondes là où c'est possible (Je suis développeur d'un moteur de jeu et je peux vous dire que 100us pour du skinning c'est encore beaucoup trop).
Quant au C++ en lui-même, oui c'est un langage très complexe et il m'a fallu des années pour être à l'aise avec ce langage (Et il m'arrive encore bien souvent de découvrir des choses), et je ne pense pas que ça soit un tort, ce langage est très puissant car il permet de faire à peu près ce qu'on souhaite de la façon qu'on veut, il est multiparadigme.
Bon après je n'ai jamais dit qu'il était parfait bien sûr, par exemple la bibliothèque standard est bien trop pauvre pour servir efficacement.
En bref, pour moi le C++ est un choix, le choix de programmer bas-niveau et par conséquent de se complexifier la vie pour faire ce qu'on souhaite, qu'il faut assumer.
Bonjour Jean,
Non, je ne te connais pas. Par contre, je reagissais a ton intervention :
Cette phrase est peut-etre un troll que j'ai nourri, ou peut-etre pas, mais dans les deux cas je ne pense pas que ma remarque soit deplacee -- desobligeante peut-etre, mais guere plus.
Pour le reste, el-slapper a tres bien explique ce qui s'est passe : lorsqu'on balance une enormite telle que celle-la, le retour de baton s'il y a n'en sera que plus douloureux.
Pour revenir plus sur le sujet, ce qui manque a mon sens a Go, c'est un domaine d'application : "les applications developpees par Google", ce n'est pas suffisant.
Quant a le voir sous android, pourquoi pas, mais dans ce cas il aurait mieux valu creer ce langage comme remplacant du Java (qui est le principal langage de developpement sous Android) plutot que de C ou C++ (qui ne sont quasiment pas present dans les applications android).
Mon propos n'était pas de dire « D est systématiquement plus rapide que C++ », mais d'illustrer par quelques témoignages et benchmarks que oui, le langage est utilisé par des boîtes sérieuses, qu'il affiche des performances tout à fait honorables et qu'en ce sens, il mérite bien le qualificatif de « prometteur ».
Tous les détails sont dans le talk DConf (sauf le nom du jeu) de Manu Evans.Concernant Remedy Entertainment, par curiosité, quels jeux et quels parties logicielles de ces jeux sont en D ?
Mais le sujet, c'est la sortie de Go 1.2…
"By and large I'm trying to minimize mentions of D in C++ contexts because it's as unfair as bringing a machine gun to a knife fight." - Andrei Alexandrescu
@Niark13 : je voulais juste préciser la chose, la phrase pouvant laisser diverses interprétations
Je vais jeter un oeil sur c# to D et game engine !
J'approuve beaucoup de commentaires précédents, si toutes leurs saloperies alternatives étaient performantes ça se saurait.
Quelle perte de temps et d'énergie ! D'autant que ce sont souvent les mêmes qui déclarent que cela ne sert à rien de réinventer la roue.
Je ne peux que prier pour que les jeunes programmeurs (passionnés) investissent en temps d'étude sur C et C++. Quand ils seront bien avancés (quelque soit le système), ils pourront juger des performances et des possibilités et de plus ils seront LIBRES !
Et au moins Dennis Mc Alistair et Bjärne n'auront pas fait tout ce travail d'une vie pour rien.
Je suis désolé, je vais être hors-sujet mais je ne peux pas laisser passer de telles énormités. Nous sommes sur un forum de professionnel, nous ne devons pas laisser passer de ce genre de choses.
C'est vrai que le parsing du code c++ est extrêmement complexe, surtout lorsqu'il y a abus de templates. Mais c'est faisable, et il existe des parseurs qui font bien le boulot, même des gratuits, donc non, on n'oublie pas l'analyse statique et au contraire, nous nous en servons régulièrement.
Déjà c'est RAII, et si tu as des "undefined behaviour", c'est que tu ne comprends pas le code que tu as écrit. Parce que c++, en partie grâce à son typage fort (typage pourri comme tu l'appelles), est un des langages qui a le moins de "undefined beahaviours". Et c++ n'est pas un "conglomérat", c'est un langage à part entière qui s'appuie sur un langage existant, le C, mais qui s'en éloigne de jour en jour. En fait c'est plutôt l'inverse: c'est C++ qui a inspiré la plupart des langage oo, et non l'inverse.
Le C++ propose plusieurs paradigmes (objet, fonctionnel, méta-prog), mais c'est ce qui fait sa force. C'est aussi ce qui fait sa complexité, mais on peut très bien ignorer les deux tiers du langage et on pourra quand-même tout faire avec. Par exemple, on peut faire du full objet si on veut, sans templates si fonction pures.
Là tu enfonces une porte ouverte. La perfection n'est pas humaine, donc l'homme ne peut rien produire de parfait, sans défaut. Mais si c++ a bien des défauts, ce ne sont pas ceux que tu cites.
C'est de l'humour?
Je ne le retrouve plus, mais il y a un quelque part un texte de H. Sutter, lorsqu'il travaillait sur les Threads du C#, où il expliquait qu'ils étaient en train de faire sensiblement la même chose que ce qui avait été fait en c++.
Ce n'est pas parce qu'un langage ne décolle pas qu'il est mauvais.
Tout ce que fait C# on peut le faire en C++. La différence c'est qu'en C#, beaucoup de choses sont implémentés dans le framework. Le framework C# est une merveille, j'en conviens (bien qu'un peu trop gros à mon avis). Mais si Microsoft avait fait l'équivalent en C++, ils seraient arrivés à un résultat encore meilleur. Il ne faut pas se leurrer, .Net est un choix politique de Microsoft, ce n'est pas une choix technique.
« L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
Spinoza — Éthique III, Proposition VII
Go excelle surtout dans l'implémentation de serveurs asynchrones. C'est en tout cas pour ça que je l'ai utilisé, avec succès, sur deux projets.
C'est une alternative très satisfaisante aux frameworks asynchrones comme Nodejs, Python/Twisted et autres. Bye bye callback hells et autres Promises, hello les performances d'un langage compilé et fortement typé.
Je pense que Go séduit peu en France, mais il y a de plus en plus d'adeptes outre-manche et aux USA.
Une des raisons de ce désamour (mis à part les débats sur l'approche des concepteurs du langage) doit être l'absence de ressources francophones dédiées à golang. Pour info, un nouveau site en français a fait son apparition :
http://decouvrir-golang.net/
Cela ne convaincra pas les opposants, mais pourrait intéresser les curieux.
Go, l’alternative de Google à C et C++ sort en version 1.3 :
gain en performance, améliorations des outils et support de nouvelles plateformes
Sur le Web, Google veut remplacer le populaire langage JavaScript par Dart, son langage de programmation structuré pour le Web.
Du coté du développement natif, la firme propose Go comme une alternative au célèbre langage de programmation C et son implémentation orientée objet C++.
Google maintient un rythme de développement effréné de ces deux plateformes. Quelques mois après la publication de Dart 1.3, la firme dévoile une nouvelle version de Go, qui sort six mois après la dernière version majeure.
Go 1.3 gagne en performance, améliore les outils de développement et ouvre le langage à de nouveaux environnements d’exécution.
GoDoc, le serveur de documentation Go, s’est enrichi de l’analyse statique. Lorsqu’il est activé, les résultats d’analyse sont présentés à la fois dans la source et la documentation des paquets vus.
La chaine d’outils gc prend désormais en charge l’exécution Native Client (NaCl) dans un bac à sable (sandbox) sur les architectures Intel 32 et 64 bits. Cette nouveauté permet de garantir plus de sécurité lors de l’exécution du code non fiable.
Go 1.3 introduit un support expérimental de nouvelles plateformes, dont DragonFly BSD, Plan 9 et les systèmes d’exploitation Solaris.
L’environnement d’exécution du langage de programmation a subi quelques modifications qui ont amélioré le rendement des binaires Go. Il s’agit notamment des améliorations du ramasse-miettes (garbage collector), l’introduction d’une nouvelle stratégie de gestion de la pile et des améliorations du moteur d’expressions régulières.
Dans le cadre du grand remaniement de l’éditeur de liens Go, les compilateurs et linkers ont subi une refactorisation. La phase de sélection des instructions faisant partie précédemment de l’agent de liaison a été déplacée vers le compilateur, avec à la clé des accélérations incrémentielles pour les grands projets.
Go et Dart sont des langages pleins de potentiels, mais qui, pour l’instant, sont encore utilisés par peu de développeurs. Suite à l’évolution de ces deux plateformes, Developpez.com a créé cette semaine des forums dédiés à ces deux langages, afin de permettre aux développeurs francophones de s’entraider et partager leurs expériences sur ceux-ci.
Télécharger Go 1.3
Notes de version de Go 1.3
A propos du forum Go de Developpez.com
A propos du forum Dart de Developpez.com
Et vous ?
Que pensez-vous du langage Go ? Représente-t-il une sérieuse menace pour C et C++ ?
Que pensez-vous de cette volonté de Google à vouloir remplacer ces langages populaires (JavaScript, C et C++) ?
Vous souhaitez participer aux rubriques .NET ? Contactez-moi
Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
Mon blog, Mes articles, Me suivre sur Twitter
En posant correctement votre problème, on trouve la moitié de la solution
Toujours pas de livres (en Francais) ou de tutoriels (complet et en Francais) disponnible pour apprendre ce langage ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager