Le potentiel c'est quand même important ; Javascript (ou Python/Go/Java/... peu importe) ne pourront jamais être aussi rapides (ou léger en mémoire) que C/C++, car leur sémantique les en empêchera toujours. À côté de ça, les performances de ces différents langages ont largement eu le temps de s'améliorer depuis leur 1.0 ; Go par exemple était en 1.0 il n'y a pas si longtemps, et les performances n'étaient pas terribles.
Pour l'instant, ils ont fait les optimisations faciles
Il reste, je crois, encore pas mal d'optimisations assez faciles (le code de rustc n'étant pas forcément génial), le plus important ayant été de stabiliser la sémantique du langage, afin de s'assurer par exemple que les évolutions futures soient réalisables sans tout casser. En effet le concept des références/temps de vie est différent de ce qu'on connaît ailleurs, et nécessite souvent de concevoir son code de manière différente ; il était important que cette nouvelle approche ne soit pas globalement une régression.
Il n'y a pas si longtemps par exemple un simple 'Hello world' en Rust prenait plusieurs Mo (car il embarquait toute la lib standard, un truc comme ça).
Évidemment aller chercher le potentiel demandera du temps et des ressources, et rien ne garanti qu'il sera atteint un jour. Les résultats actuels sont déjà très intéressants, on peut donc faire preuve d'un certain optimisme !
Et surtout, il pourra s'approcher du C/C++ sans le dépasser parce qu'il utilise la même technologie (LLVM) que Clang.
Pas forcément. Au alentours de la 0.7, je me rappelle que rustc était déjà capable dans certains cas d’émettre des informations d'aliasing pour LLVM (et qui permettent des optimisations), et qui ne pouvaient pas être émises par du code C++ (le langage n'ayant pas la sémantique adéquate).
[^] # Re: «Il concurrence donc directement les langages C et C++.»
Posté par GuieA_7 (site web personnel) . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 10.
Le potentiel c'est quand même important ; Javascript (ou Python/Go/Java/... peu importe) ne pourront jamais être aussi rapides (ou léger en mémoire) que C/C++, car leur sémantique les en empêchera toujours. À côté de ça, les performances de ces différents langages ont largement eu le temps de s'améliorer depuis leur 1.0 ; Go par exemple était en 1.0 il n'y a pas si longtemps, et les performances n'étaient pas terribles.
Il reste, je crois, encore pas mal d'optimisations assez faciles (le code de rustc n'étant pas forcément génial), le plus important ayant été de stabiliser la sémantique du langage, afin de s'assurer par exemple que les évolutions futures soient réalisables sans tout casser. En effet le concept des références/temps de vie est différent de ce qu'on connaît ailleurs, et nécessite souvent de concevoir son code de manière différente ; il était important que cette nouvelle approche ne soit pas globalement une régression.
Il n'y a pas si longtemps par exemple un simple 'Hello world' en Rust prenait plusieurs Mo (car il embarquait toute la lib standard, un truc comme ça).
Évidemment aller chercher le potentiel demandera du temps et des ressources, et rien ne garanti qu'il sera atteint un jour. Les résultats actuels sont déjà très intéressants, on peut donc faire preuve d'un certain optimisme !
Pas forcément. Au alentours de la 0.7, je me rappelle que rustc était déjà capable dans certains cas d’émettre des informations d'aliasing pour LLVM (et qui permettent des optimisations), et qui ne pouvaient pas être émises par du code C++ (le langage n'ayant pas la sémantique adéquate).