Quel avenir pour le langage C ? Un développeur expérimenté fait ses adieux au langage
et livre ses inquiétudes quant à son avenir
Après plus de 35 ans de pratique en développement, principalement en langage C, Éric Raymond tourne le dos au langage et livre ses inquiétudes quant à l’avenir de ce dernier. Le développeur justifie son choix de faire ses adieux au langage C entre autres par le fait qu’il ne cesse de perdre du terrain face à des langages plus modernes comme Go ou encore Rust même dans le domaine de la programmation système. Même s’il reconnaît que C est encore le langage de loin le plus utilisé en programmation système, Éric Raymond pense que sa place au sommet est menacée par des langages plus récents. Le développeur confie que jusqu’ici, il écrivait du code en langage C presque chaque semaine, mais ajoute ne plus se souvenir de la dernière fois qu’il a eu à développer un « nouveau » projet en C. C’est dire à quel point le langage, selon lui, est en train d’être mis au second rang.
Si le langage C a été la principale compétence qu’il a développée en tant que développeur de logiciels, Éric Raymond semble avoir consommé son divorce avec ce langage et déclare que s’il devait faire un projet en programmation système en partant de zéro, il choisirait Go sans hésiter. Selon lui, le langage C pourrait subir le même sort que d’autres langages comme FORTRAN, Pascal ou encore Cobol qui n’ont pas su résister face à la montée et au succès du langage C.
Pour avoir pratiqué ce langage pendant plusieurs années, la venue de Java, Perl ou encore Python n’avait pas beaucoup affecté les habitudes de Raymond. Il se souvient avoir eu à écrire une application d’assistant-bibliothécaire en 1997 en Perl sans que cela ne le fasse basculer vers ce langage. Éric Raymond a ensuite appris à écrire du code en Python sans que ce langage non plus ne le fasse abandonner complètement C. Mais il avoue que depuis qu’il a appris à programmer en Python, il l’utilisait dans ses programmes dès qu’il le pouvait tandis qu’il utilisait C quand il n’avait pas le choix. Pour lui, Python c’était l’équivalent du Lisp de ces premières années en tant que programmeur avec une liaison POSIX complète et de bonnes bibliothèques.
Un des gros soucis avec le langage C est que le développeur doit se soucier en permanence des problèmes de gestion de la mémoire, des caches, entre autres, estime Eric Raymond. Ce qui peut être très fatigant à la longue pour un programmeur qui ne trouve plus nécessairement le temps de se focaliser sur les aspects métier de son travail. C’est l’une des raisons qui l’a poussé souvent à migrer son code C vers Python dès que cela lui était possible. Eric Raymond déclare que cela l’a aidé à réduire de manière significative la complexité de ses applications. Il ajoute que depuis l’an 2000, tous les projets qu’il a démarrés à partir de zéro ont été faits avec Python. Le développeur pense qu’il n’est pas le seul dans cette situation et qu’il y a probablement beaucoup de gens comme lui qui ont opéré ce changement.
Le choix de Python en lieu et place du C n’était cependant pas fait par désamour pour le langage C. Le développeur confie que bien souvent il s’agissait de projets dont la réalisation en C aurait été très problématique. Il souligne que les problèmes du langage C tels que son ontologie de type de données limité et sa vulnérabilité aux problèmes de gestion des données de bas niveau auraient probablement hypothéqué les projets en question. Cet état de fait l’a finalement poussé à adopter Python plutôt que C même pour des projets peu complexes qui auraient pu facilement être réalisés en C.
Eric Raymond précise toutefois qu’il ne prédit pas la disparition de C dans un avenir proche, car, note le développeur, ce langage conservera certainement une bonne emprise sur les noyaux des systèmes d’exploitation et de certains firmewares. Il ajoute que le langage C reste malgré tout adapté pour des applications critiques qui doivent être capables de répondre en des temps très courts. C’est le cas par exemple des serveurs DNS, des agents de transport de courrier ou encore des programmes système qui sont conçus pour communiquer et gérer des transactions à la vitesse de la machine.
Source : article d'Eric Raymond
Et vous ?
Qu'en pensez-vous ?
Voir aussi
Dans quel domaine utilisez-vous encore le C ?
Partager