Je cherche en effet des innovations à intégrer pour mon entreprise kor51 et sa branche kernel dev. Ou on se démarque du marché proposant une alternative crédible en fonctionnalité. Donc je fais mes recherches et explore des sujets, comme on est spécialisé dans la cyberdefense, cela tourne autour des systèmes critiques.
Donc le choix serait de développé un microkernel de type L4 atomic en C++23. Beaucoup de dev diront le C++ pour du kernel c'est une infamie. En particulier les puristes et dogmatiques. J'ai posé la question à chatGPT, qui lui considère pour développer un microkernel atomic, les meilleurs langages sont:
- Rust
- C++23
- Zig
- Spark
Il n'est même plus question de parler du langage C, qui devient obsolète. Comme dirait certain, on est à l'heure des choix et qu'es-ce que l'on considère dans l'industrie comme futur standard, c'est à dire comment faire évoluer le kernel, qui est devenu trop lourd. Il est trop gros, et cela devient problèmatique. Le langage C++ a l'avantage qu'il s'interface bien avec le langage C et donc ces librairies. Rust le problème, il n'y a pas assez de librairie. Moi personnellement, j'y crois pas en se langage, il va pas perçer. C'est une curiosité, un effet de mode.
Après c'est des questions de performance et temps de compilation qui ont souvent donné raison au langage C. De plus les kernel doivent être simple et minimaliste. Mon second choix important est l'évolution des compilateurs, et aujourd'hui le standard c'est clang++/LLVM. La domination de gcc + Linux est révolu, c'est fini cette époque, à part les vieux briscards "legacy". Il est temps de passer à autre chose, et Rust n'intègre pas un compilateur aussi puissant que LLVM pour les dévéloppeurs.
Si on pose la question à chatGPT sur un microkernel atomic, il donne la réponse:
- LLVM
- gcc
- Intel C++
- MSVC
- CompCert
Donc ce que je répète, le compilateur Rust n'est pas aussi fiable et n'est pas aussi performant. Ce n'est pas qu'une question de langage mais aussi de compilateur ce que l'on oublie souvent. L'argument de Rust est la sécurité de la mémoire qui meilleur que C++23, mais avec une discipline strict un programmeur en C++23 ne fera pas d'erreur sur la gestion de la mémoire. Vous pouvez demander à chatGPT "comment C++23 arrive à protégé la mémoire en terme de sécurité que ne fais pas Rust". Il a une réponse très intéressante. Et cela donne une idée sur le problème. Il y a pas longtemps la NSA via un communiqué de la maison Blanche aux USA a écrit un article qui a fait débat chez les programmeurs d'abandonner le C/C++ pour Rust. Encore un gros delirium. Ils voudraient que l'on arrête de manipuler la mémoire via des pointeurs.
Je suis un défenseur du C++, tous les logiciels demandant de la performance et du rendu graphique via l'openGL et Vulkan sont en C++ dont les moteurs de jeux vidéos moderne et la plupart des jeux. On va pas demander à cette industrie de passer en Rust car la mémoire serait unsafe.. Comme je le disais il n'y a pas les librairies... Encore des positions et de l'amateurisme décisionnaire, mais cela fait autorité car cela vient des plus haute instance de décision: la maison blanche, et il y a toujours des développeurs et ingénieurs qui tel des moutons suivent l'autorité sans esprit critique et vérifier par eux même le bien fondé de la décision. On rappel que la maison Blanche, est dirigé par un abruti sénile qui n'a pas une seule compétence en ingénierie. Il lit même pas les recommandations, il sert juste à signer des décrets. La patte de l'artiste... Tu parles.
Si demain, on vous dit: vous êtes une entreprise de kernel dev innovante, faut programmer à tout prix en Rust! Vous faites n'importe quoi. Et suivez les tendances "hype" sur des buzz médiatiques...