C langage de programmation ou protocole ?
Le C est tellement omniprésent que les autres langages ne peuvent connaître le succès sans y être confrontés. Le langage est le fondement des principaux logiciels utilisés dans le monde, il s’impose donc lui-même.
Il existe de nombreux langages de programmation plus performants, plus sûrs et plus simples que le C, mais ils n’en sont pas pour autant plus populaires. Par ailleurs, il est impossible pour les nouveaux venus populaires comme Rust de s’éloigner tout bonnement du C. Les applications existent rarement dans des environnements totalement isolés, et c’est là que le bât blesse. Votre application tourne dans un environnement et peut vouloir interagir par là avec l’input de l’utilisateur.
1. Tout est C
Cet environnement est basé sur Windows ? La majeure partie du noyau de Microsoft Windows est écrite et développée en C. Pour parler avec ce système d’exploitation, votre application a donc tout intérêt à comprendre un tant soit peu le C.
Et si l’on passait alors à Linux ? Linus Torvalds pousse de plus en plus ce système d’exploitation vers le langage Rust, mais là encore, le noyau est essentiellement écrit en C. On peut toutefois s’attendre à une lente évolution dans les années à venir. Idem pour Android, qui repose en définitive sur le noyau Linux. Google encourage l’utilisation de Rust dans Android, mais le code de base repose toujours sur le C.
Tim Cook fait-il mieux ? Pas vraiment. Le noyau d’OS X est lui aussi un produit C. Comme avec Linux et Android, vous pouvez appliquer la même approche à la mise en œuvre mobile : iOS repose sur C. Même dans le domaine des bases de données, il est difficile d’échapper à C (ou C++) sur lequel s’appuie la base de données Oracle, ainsi que MySQL MS SQL Server et PostgreSQL.
2. Pas de langage sans FFI
Tel est le monde dans lequel les langages modernes comme Rust, Swift et Python évoluent, et ils doivent s’y conformer. Pour être utiles sur les principaux systèmes d’exploitation utilisés dans le monde, les langages doivent être capables d’appeler des fonctions et des routines de ces plateformes. Une interface de fonction externe (FFI ou Foreign Function Interface) permet à une application écrite dans un langage d’interagir avec une application ou une plateforme dans un autre langage. Grâce à une FFI, un langage évolué peut interagir directement avec un environnement C, sans API.
Aucun langage ne peut devenir mature sans FFI permettant une interaction directe avec le langage C. Cette réalité entraîne son propre lot de problèmes, car le C n’est pas le langage le plus simple à traduire, mais les langages de programmation évolués disposent tous de leur propre solution pour y parvenir. Un C-FFI est un must.
3. L’anglais des langages de programmation
Certaines applications communiquent parfois avec bien plus que la plateforme sur laquelle elles tournent. Il est parfaitement possible que des apps écrites dans deux langages modernes moins courants aient besoin d’interagir. La question est alors de savoir si une FFI est prévue. La solution de facilité attire comme une sorte de compromis à la belge.
La langue véhiculaire entre collègues flamands et francophones est très souvent l’anglais : une langue que presque tout le monde parle. Il en va de même dans le domaine de la programmation. Pourquoi les applications ne communiqueraient-elles pas entre elles en termes de C ? Elles en sont en effet déjà capables.
Le C devient ainsi plus qu’un langage. Quant à savoir si c’est une bonne chose, nous ne nous prononcerons pas, mais le C est désormais considéré comme une sorte de protocole. Chaque langage et chaque application doit parler le C en raison des systèmes existants, faisant du C un langage sûr dans lequel tout le monde peut communiquer. Le C est l’anglais des langages de programmation.
Êtes-vous également convaincu que le C est le langage qui fait tourner le monde des développeurs (ou pas) ? Alors CHRLY Belgium a besoin de vos compétences. Consultez nos offres d’emploi et postulez dès aujourd’hui !