IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

John Carmack : «le monde pourrait fonctionner sur du matériel plus ancien si l'optimisation logicielle était prioritaire»
L'ancien CTO d'Oculus réagit à un «exercice de pensée» sur une «apocalypse des CPU»

Le , par Stéphane le calme

26PARTAGES

12  0 
John Carmack, une célébrité dans le monde du développement de jeux vidéo et de la technologie, s'est souvent présenté comme un défenseur de l'optimisation logicielle. Ancien directeur technique d'Oculus VR et cofondateur d'id Software (une entreprise américaine de jeux vidéo qu'il a quitté en 2013), Carmack a redéfini ce que nous attendons d'un moteur de jeu et d'une expérience immersive. Récemment, il a lancé un débat audacieux qui pourrait bien bouleverser notre vision de l’évolution technologique : et si, en réalité, nous n’étions pas si dépendants du matériel dernier cri ?

Réagissant à un « exercice de pensée » publié sur le réseau social X (anciennement Twitter), qui parlait d’une « apocalypse des CPU », Carmack a exprimé son point de vue selon lequel le véritable problème n’est pas un manque de puissance des processeurs modernes, mais plutôt l'inefficacité des logiciels actuels. Si l’optimisation logicielle était traitée comme une priorité, il soutient que beaucoup plus de systèmes dans le monde pourraient fonctionner efficacement sur du matériel plus ancien, et ce, sans sacrifier la performance. En d’autres termes, les pressions du marché pousseraient les entreprises à améliorer drastiquement l'efficacité des logiciels si l'innovation matérielle s’arrêtait.

Il a répondu à un commentaire sur X qui disait :

Et si l'humanité oubliait comment fabriquer des processeurs ?

Imaginez le jour de l'arrêt total de la production (Zero Tape-out Day - Z-Day), le moment où plus aucune conception de silicium n'est fabriquée. Les conceptions de base avancées sont très mal loties.
Citation Envoyé par John Carmack
J'ai également réalisé cette expérience de pensée amusante ! Une plus grande partie du monde que ce que beaucoup imaginent pourrait fonctionner sur du matériel obsolète si l'optimisation logicielle était vraiment une priorité, et si les signaux de prix du marché sur le calcul rare permettaient d'y parvenir. Reconstruire tous les produits interprétés basés sur des microservices en bases de code natives monolithiques ! Les nouveaux produits innovants deviendraient beaucoup plus rares en l'absence d'un ordinateur super bon marché et évolutif, bien sûr.
L'inefficacité des logiciels : le véritable goulet d'étranglement

Dans un contexte où chaque nouvelle génération de processeurs et de cartes graphiques semble plus puissante que la précédente, Carmack défend l'idée que l’inefficacité des logiciels est le véritable frein à la performance. Plutôt que de dépendre de nouvelles puces chaque année, il imagine un monde où l'optimisation des logiciels permettrait de prolonger la vie des équipements existants, réduisant ainsi le besoin constant de mises à jour matérielles.

Aujourd’hui, les utilisateurs, qu’ils soient dans le domaine du jeu vidéo, du traitement de données ou même des applications professionnelles, sont constamment incités à mettre à jour leur matériel afin de tirer parti des dernières avancées en matière de performance. Cependant, pour Carmack, cette logique de renouvellement constant est alimentée par une négligence des bases mêmes du développement logiciel. Il critique notamment la manière dont les programmes modernes, y compris les jeux et les applications professionnelles, sont souvent conçus pour tirer parti de la puissance brute de nouveaux matériels sans chercher à optimiser l’utilisation des ressources existantes.

« Plus de parties du monde que beaucoup ne l'imaginent pourraient fonctionner sur du matériel obsolète si l'optimisation logicielle était vraiment une priorité », a déclaré Carmack. Cette réflexion soulève une question fondamentale : avons-nous vraiment besoin de processeurs toujours plus puissants, ou est-ce que nous pourrions exploiter mieux ce que nous avons déjà ?

Une solution radicale : revenir aux pratiques du passé

Pour Carmack, la solution pour surmonter cette dépendance au matériel est de revenir à des méthodes de développement plus efficaces, abandonnant les architectures modernes complexes au profit de techniques plus simples mais plus performantes. Sa proposition ? « Reconstruire tous les produits basés sur des microservices interprétés en bases de code natif monolithiques ! » Autrement dit, il préconise un retour aux bases du développement logiciel avec des codes optimisés et plus proches du matériel, une approche que l’on retrouvait dans les premières phases de l’informatique.

Ce retour aux anciennes méthodes de programmation soulève un défi majeur : la compatibilité et l’extensibilité des applications modernes. Les architectures actuelles reposent en grande partie sur des microservices, une méthode qui permet de développer des applications modulaires, évolutives et flexibles. Ces microservices, bien que puissants en termes de scalabilité et de gestion des ressources, ne sont pas aussi efficaces en termes de performance brute que les anciennes approches monolithiques, où tout le code était intégré dans une base de données unique, souvent optimisée pour un matériel spécifique.

Cependant, selon Carmack, cette approche plus traditionnelle offrirait une performance beaucoup plus élevée avec un matériel moins puissant. Il est convaincu que si le développement logiciel se concentrait sur l’optimisation du code, plutôt que de simplement se reposer sur la puissance des nouveaux processeurs, de nombreux systèmes obsolètes pourraient encore réaliser des tâches complexes.


Les compromis à accepter

Mais Carmack reconnaît que cette solution radicale ne viendrait pas sans coûts. D’un côté, la simplification du code et la recherche d’une optimisation maximale entraîneraient des gains de performance considérables, mais de l’autre, l'innovation pourrait en souffrir. En effet, le développement de nouveaux produits « innovants » serait beaucoup plus difficile sans l’accès à des infrastructures informatiques bon marché et évolutives.

Carmack note que les approches actuelles qui privilégient les microservices et le cloud computing permettent de créer des produits à grande échelle de manière rapide et flexible, mais cette évolution a un prix en termes d’efficacité. Par conséquent, il est à la fois passionné et prudent dans sa proposition de revenir à une architecture de code monolithique : bien qu’elle améliore les performances, elle pourrait rendre la création de nouveaux produits plus difficile, car les outils modernes de développement ne sont pas conçus pour cette approche.

[TWITTER]<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I have also run this fun thought experiment! More of the world than many might imagine could run on outdated hardware if software optimization was truly a priority, and market price signals on scarce compute would make it happen. Rebuild all the interpreted microservice based… <a href="https://t.co/lmE9oF07YQ">https://t.co/lmE9oF07YQ</a></p>— John Carmack (@ID_AA_Carmack) <a href="https://twitter.com/ID_AA_Carmack/status/1922100771392520710?ref_src=twsrc%5Etfw">May 13, 2025</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> [/TWITTER]

L’impact d’un monde sans matériel dernier cri

Cette réflexion a des implications qui vont bien au-delà...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de RenarddeFeu
Membre averti https://www.developpez.com
Le 15/05/2025 à 0:41
Très clairement, le web moderne fonctionne grâce à des navigateurs qui ont besoin d'un processeur de plusieurs GHz pour fonctionner, en consommant plus d'un Go de mémoire, tout ça pour afficher du texte.
13  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 15/05/2025 à 9:35
Il y a des optimisations "simples" pour le web déjà à faire :
- utilisation de sprites
- réduire la publicité et le tracking
- utiliser des langages performants
- arrêter de demander des inscriptions pour tout et n'importe quoi, ça grossit les BDD
- ...
1  0 
Avatar de pyros
Membre expérimenté https://www.developpez.com
Le 15/05/2025 à 9:30
Je bosse sur du data-processing/data-viz sur large data. Vous savez quelle est le bottleneck le plus courant ? Les cache-miss ? La latence mémoire ? Le bus DMA ? Les core saturé ?

Non... L'API REST qui te crache un dictionnaire JSON pour stocker un tableau de valeurs...
0  0 
Avatar de DragOr
Membre du Club https://www.developpez.com
Le 15/05/2025 à 9:58
Imaginez ce que cela va donner avec le code generer par les "ia"...
Ça fait longtemps qu'on se laisse déborder par tout un tas d'outils ou de framework, bien loin des débuts ou la performance était reine.
0  0 
Avatar de LeBressaud
Membre confirmé https://www.developpez.com
Le 15/05/2025 à 10:35
Citation Envoyé par RenarddeFeu Voir le message
Très clairement, le web moderne fonctionne grâce à des navigateurs qui ont besoin d'un processeur de plusieurs GHz pour fonctionner, en consommant plus d'un Go de mémoire, tout ça pour afficher du texte.
Attention quand même à distinguer la mémoire réservé de la mémoire réellement utilisé, s'il y'a de la place les apps en réserve souvent une grosse quantité au cas où quitte à la rendre par la suite si nécessaire
0  0