Quelle guerre de chapelle entre C++ C# et Java. Un mot sur les garbage collector. Dans garbage collector, il y a garbage, c'est à dire déchets. Dans un projet récent, le produit avait des soucis de stabilité sur sa connexion BDD. Réunion avec les développeurs, revue des specs, ils m'expliquent qu'ils laissent les sockets ouvertes tout le temps d'exécution, et que le garbage collector gère toussa toussa. Je leur ai affiné les specs en leur indiquant à quel moment les sockets doivent être ouvertes ou fermées, et idem pour les fichiers de lock et les attentes dans les pollings. Résultat : plus d'instabilité. Donc quand j'entends parler de garbage collector, je sors mon flingue !
La querelle entre ces langages objets me fait bien rigoler aussi. Ce sont des concepts très lointains pour moi parce que moi, électronicien avec d'être ingénieur système, quand on me parle de pointeur, je sais ce que ça veut dire jusqu'aux signaux RAS CAS et R/_W des chips dram. Et tout ceci est au final compilé ou exécuté dans un environnement (pour Java ou C#). Peu importe le temps de compilation, peu importe le nombre de lignes, si au final le programme s'exécute plus vite et sans bug, et sans avoir à faire appel au garbage collector parce que le développeur a pensé à détruire ses objets une fois qu'il n'en avait plus besoin.
Enfin, C# et Java ne seront jamais aussi rapides que C ou C++ dès qu'il y a une grande quantité de calculs à faire derrière, ou un grand volume de données à manipuler.
Partager