Delphi fait-il de vous un meilleur programmeur? Le code Object Pascal est-il plus lisible?
Il existe un algorithme avec une constante mystère qui est devenu célèbre dans le code Quake III Arena C de John Carmack pour estimer rapidement la racine carrée inverse d’un nombre à virgule flottante 32 bits.
Table of Contents
Comprendre le code
Il est basé sur la méthode de Newton pour estimer les racines. De plus, il convertit le nombre à virgule flottante en entier, utilise le décalage de bits et commence par une approximation de √2 ^ 127. La ligne commentée permet une itération supplémentaire pour améliorer l’estimation, qui n’a pas été utilisée dans Quate III Arena. Vous pouvez en savoir plus sur Wikipédia ou regarder des vidéos YouTube sur le sujet [y compris une plongée très approfondie ]. Voici une belle vidéo de haut niveau :
Delphi peut-il l’améliorer?
L’utilisateur de Facebook Toon Krijthe a montré à quel point le code serait plus clair et plus simple s’il était implémenté dans Object Pascal / Delphi.
Il utilise le mot-clé absolu pour mapper le nombre à virgule flottante sur l’entier, ce qui évite tout «piratage au niveau des bits en virgule flottante maléfique». C’est quelque chose que j’aime chez Delphi et Object Pascal: cela vous donne accès aux pointeurs, à la mémoire brute, etc. mais ne vous oblige pas à l’utiliser lorsque vous n’en avez pas envie / besoin. Un code plus court n’est pas toujours plus facile à comprendre, jetez simplement un coup d’œil à n’importe quelle expression régulière, mais c’est une amélioration car cela supprime tellement de code superflu. Beaucoup plus lisible.
Object Pascal est si lisible qu’il rend les programmeurs meilleurs car il rend leur code plus lisible et maintenable. Ne vous méprenez pas, vous pouvez écrire des spaghettis dans n’importe quel langage de programmation / syntaxe, mais commencer par un langage lisible aide. C’est pourquoi il existe tant de programmes Delphi «hérités»: ils sont performants et maintenables. Le code qui ne fonctionne pas ou qui n’est pas maintenable est jeté ou réécrit.
Besoin de plus de mathématiques de haute performance?
Si vous recherchez des routines mathématiques plus rapides pour Delphi, consultez la bibliothèque FastMath hautes performances d’ Erik van Bilsen, MVP d’Embarcadero, de renommée Grijjy.
FastMath – Bibliothèque de mathématiques rapides pour Delphi
FastMath est une bibliothèque mathématique Delphi optimisée pour des performances rapides (parfois au prix de ne pas effectuer de vérification d’erreur ou de perdre un peu de précision).
Cela rend FastMath idéal pour les applications hautes performances à forte intensité mathématique telles que les applications multimédias et les jeux. Pour des performances encore meilleures, la bibliothèque fournit une variété de fonctions «approximatives» (qui commencent toutes par un Fast
préfixe). Celles-ci peuvent être très rapides, mais vous perdrez une certaine précision (parfois étonnamment faible). Pour les jeux et l’animation, cette perte de précision est généralement parfaitement acceptable et compensée par l’augmentation de la vitesse. Mais ne les utilisez pas pour des calculs scientifiques…