• [^] # Re: Quid sur de gros programmes ?

    Posté par (site web personnel, Mastodon) . En réponse au lien Faites du C pour sauver la planète!. Évalué à 2.

    Le truc c'est que si tu essaie d'écrire du C avec un ramasse miettes, tu vas avoir du code super compliqué.

    En Java, on peut déplacer un objet dans la mémoire pour la défragmenter. Comme le langage n'utilise pas la notion de pointeur, mais des références qui sont suivies par l'interpréteur, ça ne pose pas souci.

    En C, tu peux avoir des pointeurs qui sont stockés dans des variables locales sur la pile, dans des registres, dans des variables globales, et il n'y a aucun suivi pour savoir ou on en est. Du coup, pour déplacer un objet, bon courage.

    Alors, tu peux toujours essayer de ne jamais utiliser directement de pointeur dans ton code C pour ne pas avoir ce problème, mais ton code va être bien moche et illisible et je suis même pas certain que tu puisses arriver à t'assurer que le compilateur ne décide pas de mettre un pointeur quelque part de façon temporaire.

    En C++, tu as peut-être moyen de t'en sortir avec un objet qui masque ton pointeur. En Java, tu n'as rien à faire.

    Du coup, si on en revient au point de vue écologique, il faut compter certes le temps d'exécution du programme, mais aussi le temps de développement (ce sont aussi des ordinateurs qui fonctionnent...), à corriger les bugs et redéployer des binaires, etc. Et là, le C va vite perdre des points.