J'irais pas jusqu'à dire que ça a rattrapé Rust. Wlifetime est un espèce linter optionnel heuristique (unsound) proposé par certains compilateurs. Le check des lifetimes de Rust est ultra fondamental, mandatory, sound, et intégré au système de type.
Je ne sais pas si Wlifetime est utile en pratique, j'espère que oui, mais perso j'ai pas essayé. Mais sans intégration au système de type et soundness on pourra jamais dire qu'il a complètement rattrapé Rust. Or c'est pas vraiment la direction que souhaite prendre le C++ pour le moment (la solution de Rust étant trop contraignante pour faire évoluer des bases de code sans parfois des refactoring majeur, et sera probablement toujours perçu comme trop contraignante par certain programmeurs et/ou pour certaintes routines; les solutions moins contraignante le restent néanmoins beaucoup sur ce même aspect, et relèvent de toute manière pour l'instant du domaine de la recherche).
Et vu le langage et les objectifs usuels des migrations vers Rust, AMA ça serait pas une bonne idée que le C++ cherche à "rattraper" frontalement ce genre de caractéristiques. Il y a des problèmes pratiques qui sont difficiles à résoudre dans les projets potentiels (cf. les réflexions de Google et de MS), et il suffit que le C++ propose d'autres features en plus d'être suffisamment bon pour se placer dans une situation ou c'est en pratique économiquement compétitif de réduire la densité de bugs (en particulier des bugs susceptibles d'avoir des conséquences catastrophiques en stabilité et sécurité) en continuant en C++ que ce qui pourrait être fait en migrant des bouts vers Rust.
Mais si tu veux vraiment absolument un check de lifetime fiable et que c'est totalement critique, tu fais clairement du Rust plutôt que du C++ même avec Wlifetime, et je vois vraiment pas ça changer, du moins pas avant très longtemps (et même dans très longtemps, je pense que ça a une très faible proba que le C++ "rattrape" complètement le Rust sur ce point).
[^] # Re: Pffff
Posté par Guillaume Knispel . En réponse à la dépêche Rust a 5 ans, rétrospective. Évalué à 7. Dernière modification le 07 septembre 2020 à 01:49.
J'irais pas jusqu'à dire que ça a rattrapé Rust. Wlifetime est un espèce linter optionnel heuristique (unsound) proposé par certains compilateurs. Le check des lifetimes de Rust est ultra fondamental, mandatory, sound, et intégré au système de type.
Je ne sais pas si Wlifetime est utile en pratique, j'espère que oui, mais perso j'ai pas essayé. Mais sans intégration au système de type et soundness on pourra jamais dire qu'il a complètement rattrapé Rust. Or c'est pas vraiment la direction que souhaite prendre le C++ pour le moment (la solution de Rust étant trop contraignante pour faire évoluer des bases de code sans parfois des refactoring majeur, et sera probablement toujours perçu comme trop contraignante par certain programmeurs et/ou pour certaintes routines; les solutions moins contraignante le restent néanmoins beaucoup sur ce même aspect, et relèvent de toute manière pour l'instant du domaine de la recherche).
Et vu le langage et les objectifs usuels des migrations vers Rust, AMA ça serait pas une bonne idée que le C++ cherche à "rattraper" frontalement ce genre de caractéristiques. Il y a des problèmes pratiques qui sont difficiles à résoudre dans les projets potentiels (cf. les réflexions de Google et de MS), et il suffit que le C++ propose d'autres features en plus d'être suffisamment bon pour se placer dans une situation ou c'est en pratique économiquement compétitif de réduire la densité de bugs (en particulier des bugs susceptibles d'avoir des conséquences catastrophiques en stabilité et sécurité) en continuant en C++ que ce qui pourrait être fait en migrant des bouts vers Rust.
Mais si tu veux vraiment absolument un check de lifetime fiable et que c'est totalement critique, tu fais clairement du Rust plutôt que du C++ même avec Wlifetime, et je vois vraiment pas ça changer, du moins pas avant très longtemps (et même dans très longtemps, je pense que ça a une très faible proba que le C++ "rattrape" complètement le Rust sur ce point).