Bien que SQL soit considéré par la plupart des gens comme un outil de gestion de grands ensembles de données, il s’agit essentiellement d’un langage de programmation doté de fonctionnalités que l’on retrouve dans des langages généralistes comme C ou Python. Même s’il n’a pas été conçu pour un usage généraliste, il peut accomplir des tâches inattendues. Pour démontrer cette capacité, l’équipe de CedarDB a porté le DOOM original en SQL. Les données WAD, c’est-à-dire presque tout ce qui se trouve en dehors du moteur, ont été stockées dans des tables. Préserver la cadence de 35 fps du jeu et générer les images s’est révélé plus difficile : la partie consacrée au rendu se compose de 1300 lignes SQL réparties sur 89 expressions de table communes (CTE). Le reste du projet contient 4000 lignes SQL, ainsi qu’un peu de Python pour gérer le clavier, le minutage et le traitement des images bitmap. Le fait que DOOM ne soit pas en véritable 3D et qu’il ait été développé avant l’apparition des cartes graphiques permet d’effectuer des transformations de données adaptées à SQL. Le code est disponible sur GitHub ; il existe également des versions réalisées avec des expressions régulières et dans Microsoft Word.
Pourquoi c’est important
Cette étude montre que considérer SQL comme limité à l’interrogation et à la gestion des données pourrait ne pas refléter pleinement les capacités d’expression du langage. Elle offre notamment un exemple concret, pour les développeurs de bases de données et ceux qui étudient les limites des langages de programmation, de la manière dont une charge de travail inhabituelle, comme la logique d’un jeu, peut être modélisée à l’aide de structures relationnelles. La structure de DOOM, qui n’utilise pas véritablement la 3D, ainsi que le fait qu’il ait été développé avant l’apparition du matériel graphique, ont joué un rôle déterminant dans cette possibilité ; le résultat obtenu ne signifie donc pas que toute application graphique pourrait fonctionner de manière similaire avec SQL. Le code disponible sur GitHub, ainsi que les autres versions réalisées à l’aide d’expressions régulières et de Microsoft Word, montrent comment la même idée peut être testée avec différents outils. La question qui demeure est de savoir pour quelles tâches pratiques cette approche pourrait être pertinente au-delà d’une démonstration ludique.
Contexte
DOOM n’est pas un nouveau nom dans les archives de FikirPilot : au cours des 90 derniers jours, nous avons publié 3 articles dans lesquels ce nom est mentionné ; le plus récent est daté du 15 septembre 2026.