@vayel : certes, mais pour les gens qui ont envie de jouer au même jeu, mais qui n'ont pas les moyens de s'acheter un pc avec 16go de ram sans vendre leurs enfants? Eux ils aimeraient bien que le jeu n'utilise pas 16go de ram je pense...
@vayel : certes, mais pour les gens qui ont envie de jouer au même jeu, mais qui n'ont pas les moyens de s'acheter un pc avec 16go de ram sans vendre leurs enfants? Eux ils aimeraient bien que le jeu n'utilise pas 16go de ram je pense...
Ca me rappelle cette citation :
Le mécanisme try...catch de C++ ne fonctionne pas "out of the box" en mode noyau. Pareil pour l'allocation dynamique : tout cela doit être recodé à la main. Et y'a pas d'exit non plus : le kernel étant à la base de tout, il ne peut pas rendre la main à quelqu'un d'autre. Et pour les listes chaînées, c'est sympa oui mais c'est une catastrophe en terme de performance autant à l'allocation / destruction (l'alloc dynamique coute cher!) qu'au parcours car elles ne sont pas "sympathiques" vis à vis du hardware (data prefetching).Y'a deux types de développeurs kernel : ceux qui disent qu'il y a 36 façons de faire les choses, et ceux qui expliquent pourquoi les 35 autres ne fonctionnent pas.
Quant à Python ou "n'importe quel langage", faut déjà pouvoir produire un binaire exécutable qui ne soit lié à aucun runtime ! (pour rappel Python s'appuie sur un interpréteur développé en C).
Sinon, à mi-chemin entre le vrai kernel et l'application C++ il y a includeOS, un "unikernel" C++ : https://github.com/hioa-cs/IncludeOS
...On peut aussi faire du C++ sans allocation dynamique...
Pour ma part, entre C et C++, la question ne se pose pas trop : C++.
D'abord, c'est (à quelques différences sémantiques prêt) presque un superset du C. Ensuite, C++ atteint un niveau de fiabilité côté les compilateurs assez proche du C.
Et puis... On n'est pas non plus obligé d'accepter TOUTES les fonctionnalité de C++, par exemple, on peut interdire l'allocation dynamique, ainsi que certaines syntaxes obscures. Par contre, les templates, ainsi que la possibilité de redéfinir les opérateurs peuvent s'avérer vachement pratique côté lisibilité et facilité / vitesse de développement, et permettent parfois une analyse statique plus fine. ...On a aussi accès à un héritage pris en charge par le langage et éviter ainsi des hack avec les structures du C...
Partager