avatar de brokensoul

brokensoul

INpactien depuis le mardi 16 mai 2006

205 commentaires

19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

Le problème c'est que dans les environnements "contraints" tu n'as pas toujours accès à un compilateur qui suit la dernière norme.

Maintenant si ce que tu dis est vrai, j'aimerais bien avoir un tuto qui couvre directement le C++ "moderne". J'en suis effectivement resté au C++ "surcouche de C", en sachant que le C lui même ne me convenait pas.

tu auras à mon sens une bonne  idée des changements avec ca (rapide hein, ca ne couvre pas tout. Ensuite avec la lib standard, tu peux vraiment faire plein de choses proprement
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust


// Parmi les étudiants ayant assisté à 90% des cours on retient les 20 avec la meilleure note moyenne
var étudiantsSélectionnés = étudiants
where présenceAuCours > 90
order by notes.Average()
take 20

Amuse-toi à écrire ça en C++.
avec des lambdas et la std, c'est trivial
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust


Beau ?! Le C++ "moderne" ?! Qu'est-ce qu'il ne faut pas entendre ! Désolé mais cette phrase prouve que tu n'as pas fait l'effort d'aller voir ailleurs.

Non une gestion mémoire semi-automatisée avec des annotations de vingt caractères n'est PAS beau. Non ces itérateurs de cinquante caractères dont l'interface empêchent l'écriture d'un beau code ne sont pas beaux. Surtout pas à l'heure où les langages modernes, eux, font tous ça avec zéro caractères et adoptent les substitutions de chaîne, le pattern matching, les types algrébriques, linq et les continuations de listes, l'inférence de types, les types structurels anonymes, etc. Le tout avec des compilations instantanées parce que le modèle de compilation n'a plus à être compilable avec 32ko de mémoire.

Quand j'entends "C++ moderne" j'entends un politicien souffrant d'Alzheimer raconter à ses électeurs qu'on est encore jeune à cent ans. Ben voyons !

Le C++ est une horreur. Un anachronisme encore nécessaire pour un moment, dont les remplaçants tardent à émerger, mais un anachronisme toxique aussi moderne que Cobol. Et beaucoup de grands noms de l'industrie qui codent en C++ en sont convaincus, voire par exemple le célèbre diaporama Sweeney expliquant de quel langage l'industrie du JV aurait besoin aujourd'hui. Et je ne parle même pas du monde des OS où tout le monde s'acharne à bâtir un remplaçant vu l'inadaptation pure et simple d'un langage aussi invérifiable que le C++ à l'écriture d'un OS.

Arrêtez de prendre la défense de ce langage. Scandalisez-vous plutôt qu'en 2015 il n'y ait pas encore de vraie alternative pour la prog bas-niveau / haute performance / portable.
- compilation > super rapide avec clang, sinon un petit ccache est bien efficace. Pas un problème en pratique
 - inférence de type > jette un oeil sur c++ d'après 1995, tu as le droit de te renseigner sur ce que tu commentes. "auto", c'est pour la poubelle ?
- gestion mémoire 'semi automatisée' : la gestion des pointeurs est quand même super simple maintenant, et ca te donne des gains en perfs dont d'autres langages peuvent encore rêver
- la plupart de tes critiques sur du code trop verbeux concerne les templates. Tu as le droit de ne pas les utiliser..
- pas allé voir ailleurs ? Sans doute pas assez, j'utilise Python tous les deux jours, j'ai un peu utilisé Java et C#. Je n'ai sans doute pas vu toute la ménagerie pour autant, mais l'utilité de c++ n'est sans doute pas non plus au niveau que tu décris, et je ne suis pas le seul à le penser

 Maintenant si tu dis que tel ou tel langage super exotique fait 'évidemment' beaucoup mieux, reste :
- à le prouver
- à avoir un écosystème qui le rend utilisable (l'inconvénient de partir de zéro, on ne gagne pas à tous les coups)
 
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

J'ai parlé de 'finalité' grand public, pour être précis.. Et je maintiens, tout le monde ne peut pas se reposer sur un Unity, ca n'existe pas dans tous les domaines ou ca peut ne pas coller avec le business model. Exemple trivial qui explose tes 1% : l'écrasante majorité des applis iPhone était codée jusqu'il y peu en objective-c, un langage.. compilé. Ca représente du monde, iOS
Autre exemple
 
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

le code c++ serait quasi-exactement le même évidemment..
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

Ah mais je ne suis pas contre Python, au contraire, je l'utilise beaucoup. Comme je le disais plus tôt, il faut de tout pour faire un monde, ca dépend vraiment des applications cherchées.

 @brazomyna : tu y gagnerais quand même à voir ce qu'il se passe à l'extérieur de ton secteur d'activité.. "1% de code réellement contraint par le temps réel", c'est assez risible pour le coup, je ne sais même pas si ca vaut le coup de réagir.. Je bosse ici, et le C++ est un peu utile par exemple, alors que la finalité est relativement simple / grand public. On est nombreux dans ce cas... (le code était initialement en C#, encore utilisé parfois pour prototyper, la différence de perfs avec C++ doit être dans les 10x et on est contraints par le CPU dans pas mal de scénarios...)
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

S'il propose les mêmes performances tout en étant plus simple à écrire, la réponse à ta question est évidente.
Le C/C++ sont des plaies, il faut être très rigoureux dans son écriture et il faut faire soi même des choses qu'un bon compilation/machine virtuelle pourraient très bien faire tout seuls. En contrepartie ils n'y a pas mieux pour maîtriser son application au poil et pour les performances.

c++ une plaie ? Qu'est-ce qu'il ne faut pas entendre :) c'est plus vraiment ce qu'on apprenait à l'école, avec des malloc et free dans tous les sens hein. Faut regarder du code moderne, c'est _beau_ ! (ok, si on commence à templater ca pique un peu les yeux)
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

ca dépend complètement de ton application, le fait de se foutre des perfs. Si la valeur ajoutée de ta boîte est dans une fonction cpu-limited ou power-limited, alors les langages tels que le c++ ont tout leur sens. Dire que c'est marginal comme domaine, c'est un peu rapide... Certains domaines n'ont pas de middleware qui font le sale boulot, comme unity, et dans ce cas il n'y a pas le choix, il faut mettre les mains dans le cambouis. Il faut de tout pour faire un monde :)
 
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

ca dépend de la taille de la base de code.. Je ne doute pas que C puisse être super rapide si tu fais tout à la main (par définition, au pire tu prends ce que sort le compilo, au mieux tu améliore, donc globalement tu améliores forcément), mais en pratique tu as des limites en temps de développement et en nombre de personnes impliquées. C'est aussi ce à quoi Rust tente de répondre : faire du code rapide en temps limité, avec une équipe limitée. Les problèmes en temps infini, ce n'est pas super intéressant...
Du coup je suis curieux de ce benchmark : si c'est sur des trucs classiques (algos de tri, ..) alors le c++ peut très bien être aussi optimisé que le c, en y passant du temps (le c est plus ou moins inclus dans le c++, donc par définition tu peux faire aussi rapide) . Si ce n'est pas sur des trucs si classiques que ca, avec une grosse base de code, alors je suis curieux de voir les détails.
19
mai
2015

Mozilla publie la version finale de son langage de développement Rust

Il y a quand même une bonne différence de perfs, on n'est pas prêts de passer sur Rust dans ma boîte dans ces conditions... Je suis surpris de voir c++ plus lent que c par contre