- Tous les jeux de ses projets personnels sont développés en « C pur », un choix devenu rare aujourd’hui
- Les critères clés dans le choix du langage sont la fiabilité, la portabilité et la pérennité à long terme, sans dépendance à un OS ou une plateforme spécifique
- Il accorde une grande importance à la simplicité et à la rapidité de compilation, ainsi qu’à un contrôle de types strict et un système d’avertissements puissant
- Des langages alternatifs comme C++·C#·Java·Go·Haxe ont été examinés, mais jugés inadaptés en raison de leur complexité, du GC ou de l’imposition de l’OOP
- Le C est dangereux mais simple et rapide, et reste selon lui le meilleur choix grâce à son large support des plateformes et à un écosystème de bibliothèques solide
Critères de choix du langage
- La condition essentielle est la fiabilité et la stabilité, afin de ne pas perdre de temps sur des bugs qu’il n’a pas lui-même créés
- Il a auparavant développé des jeux basés sur Flash, mais avec le déclin de Flash, il préfère se concentrer sur la création de nouveaux jeux plutôt que sur leur portage vers de nouvelles plateformes
- Il privilégie la portabilité et le support de bibliothèques généralistes pour éviter toute dépendance à un OS donné et garder ouverte la possibilité de développer sur console
- Parmi les critères souhaitables, il cite une syntaxe simple et une structure facile à retenir
- Il veut éviter de devoir constamment rechercher des API ou des fonctionnalités du langage trop complexes
- Il cherche à réduire les bugs grâce à un contrôle de types strict, des avertissements puissants et de l’analyse statique, et à faciliter leur détection avec un bon débogueur et des outils d’analyse dynamique
- Il accorde une très grande importance à la vitesse de compilation
- Les longues attentes brisent la concentration et réduisent la productivité
- Il est sceptique vis-à-vis de la programmation orientée objet (OOP) et préfère séparer les données et le code pour les traiter selon le contexte
Évaluation des principales alternatives
- C++
- Il reste la norme dans le développement de jeux, mais il le juge insatisfaisant à cause de sa complexité et de sa lenteur à la compilation
- Il offre de hautes performances et de nombreuses fonctionnalités, mais trop de fonctions non désirées s’y ajoutent, avec un coût élevé en complexité
- C# et Java
- Ils sont verbeux et complexes, et leur structure fortement centrée sur l’OOP réduit la liberté
- Leur nature de langages de haut niveau masque la complexité, sans empêcher les problèmes de fond
- Go
- Il le voit positivement comme une réinterprétation moderne du C, mais son garbage collector stop-the-world le rend inadapté au développement de jeux
- Il s’inquiète aussi du manque de bibliothèques pour le jeu et de sa pérennité à long terme
- JavaScript
- L’évolution rapide de l’environnement web et la fin de Flash lui donnent une impression d’instabilité
- Sa syntaxe permissive le rend, selon lui, inadapté à l’écriture de logiciels de grande taille
- Haxe
- Il le considère prometteur pour le développement web, mais s’interroge sur sa pérennité en tant que langage relativement récent
- Développer son propre langage
- L’idée est séduisante, mais il la juge peu réaliste à cause de l’abandon des bibliothèques existantes et de la charge liée au maintien de la compatibilité
Pourquoi choisir le C
- C’est un langage risqué mais fiable qui, grâce à sa structure simple, peut être utilisé de façon stable avec suffisamment de précaution
- Il le compare à un « couteau tranchant » : difficile à manier, mais un outil puissant une fois maîtrisé
- La compilation est très rapide, et les programmes peuvent tourner sur presque toutes les plateformes
- Le portage est lui aussi relativement simple, ce qui en fait un choix durable sur le long terme
- Le support des bibliothèques et des outils est solide et se maintient dans le temps
- À titre personnel, il possède déjà une grande expérience avec du code en « C pur », ce qui le rend familier pour lui
- Il ne recommande pas l’usage du C à tout le monde : c’est un choix personnel, optimisé pour ses préférences et sa manière de travailler
Aucun commentaire pour le moment.