
Carbon, l'alternative C++ de Google, n'est classé que 168e
Si le classement des 20 langages informatiques les plus populaires, publié par TIOBE, n’a que très peu évolué en avril, c’est l’apparition du langage Zig dans le top 50 qui a retenu l’attention ce mois-ci. « Pas une garantie de succès, mais une première étape notable », estime Paul Jansen, PDG de TIOBE Software.
Zig, un langage de programmation à usage général qui interagit avec les programmes C/C++ et est présenté comme une alternative moderne au C, a fait son apparition dans l'indice Tiobe de popularité des langages de programmation.
Zig est entré dans le top 50 de l'édition d'avril du Tiobe Programming Community Index, se classant 46e, mais avec une note de seulement 0,19 %. En revanche, le langage Carbon promu par Google, positionné comme un successeur expérimental du C++, n'est classé qu'à la 168e place.
Tiobe a décrit Zig comme ayant des fonctionnalités de C et C ++ telles que la gestion explicite de la mémoire améliorée avec des types d'options, tout en abandonnant d'autres fonctionnalités telles que le prétraitement. Bien que l'entrée dans le top 50 ne soit pas une garantie de succès, c'est une première étape remarquable, a déclaré Tiobe.
Selon Tiobe, la demande de langages hautes performances capables de traiter de grandes quantités de données a entraîné la montée en puissance de langages tels que C, C++ et Rust dans l'index.

- Python, avec une part de marché de 14,51 %
- C, avec une part de marché de 14,41 %
- Java, avec une part de marché de 13,23 %
- C++, avec une part de marché de 12,96 %
- C#, avec une part de marché de 8,21 %
- Visual Basic, avec une part de marché de 4,4 %
- JavaScript, avec une part de marché de 2,1 %
- SQL, avec une part de marché de 1,68 %
- PHP, avec une part de marché de 1,36 %
- Go, avec une part de marché de 1,28 %
Le mois dernier, Go a signé son retour dans le top 10 de l'indice Tiobe de popularité des langages de programmation. C’est en juillet 2017 que le langage est apparu pour la dernière fois dans ce top 10. Go s'est classé 10e dans l'édition de mars de l'indice, après s'être classé 11e le mois précédent. Il faut noter que Go n'a jamais obtenue une meilleure place que la dixième.
Le PDG de Tiobe Software avait alors déclaré :

Du côté de PYPL, un autre index de popularité des langages de programmation, le top 10 reste inchangé dans son édition d'avril 2023, Go ne figurant qu'à la douzième place. PyPL analyse la fréquence à laquelle les didacticiels de langage sont recherchés à l'aide de Google.
Voici le top 10 :
- Python, avec une part de marché de 27,43 %
- Java, avec une part de marché de 16,41 %
- JavaScript, avec une part de marché de 9,57 %
- C#, avec une part de marché de 6,9 %
- C/C++, avec une part de marché de 6,65 %
- PHP, avec une part de marché de 5,17 %
- R, avec une part de marché de 4,22 %
- TypeScript, avec une part de marché de 2,89 %
- Swift, avec une part de marché de 2,31 %
- Objective-C, avec une part de marché de 2,09 %
Ces baromètres ne représentent pas la réalité dans le monde de l'IT Pro francophone. Voici les langages les plus demandés et les mieux payés dans les offres d'emploi sur Developpez.com :
Un remplaçant pour C ?
Zig est décrit comme un « langage système de bas niveau ». Loris Cro, vice-président de la communauté à la Zig Software Foundation, a déclaré : « Je définis Zig comme un langage de programmation à usage général, car, bien qu'il convienne évidemment à la programmation de systèmes, il convient également à la programmation d'appareils embarqués, ciblant WebAssembly, écrivant des jeux et même la plupart des tâches qui seraient normalement gérées par langages de niveau supérieur ».
Pour Loris, bien que Zig soit en concurrence avec le C, « nous ne nous attendons pas à ce qu'il supplante le C sans une très longue période de temps où les deux langages doivent coexister ».
Objectifs de conception et syntaxe de Zig
Zig est un langage qui permet aux développeurs de travailler directement avec la mémoire système, une exigence pour écrire du code qui peut être optimisé au maximum pour sa tâche. L'allocation directe de mémoire est une caractéristique partagée par la famille C, Rust et d'autres langages système de bas niveau. Zig offre des fonctionnalités similaires, mais vise à les améliorer de plusieurs manières.
Zig cherche à être un langage orienté système plus simple que ses prédécesseurs et à faciliter l'écriture de code sûr et correct. Il vise également une meilleure expérience de développement. Lors du premier examen, les fonctionnalités de Zig pourraient ne pas sembler bouleversantes, mais l'effet global est celui d'une plateforme que les développeurs trouvent plus facile à maîtriser et à utiliser.
Actuellement, Zig est utilisé pour implémenter le runtime JavaScript Bun.js comme alternative à Node.js. Le créateur de Bun, Jarred Sumner, a déclaré : « Zig est un peu similaire à l'écriture C, mais avec de meilleures fonctionnalités de sécurité de la mémoire en mode débogage et des fonctionnalités modernes comme defer (un peu similaire à Go) et le code arbitraire peut être exécuté au moment de la compilation avec comptime. Il contient très peu de mots clefs, il est donc beaucoup plus facile à apprendre que C++ ou Rust ».
Zig diffère de la plupart des autres langages par sa petite empreinte de fonctionnalités, qui est le résultat d'un objectif de conception explicite : une seule façon évidente de faire les choses. Les développeurs de Zig prennent cet objectif tellement à cœur que pendant un certain temps, Zig n'avait pas de boucle for, ce qui était considéré comme une élaboration syntaxique inutile sur la boucle while déjà adéquate.
Kevin Lynagh, issu d'un milieu Rust, a écrit en 2021 :
[QUOTE]J'ai passé l'année dernière à construire des claviers, ce qui comprenait l'écriture de micrologiciels pour diverses cartes de circuits imprimés personnalisées.
J'ai d'abord écrit ce firmware en Rust, mais malgré des années d'expérience avec ce langage, j'ai encore eu beaucoup de mal. J'ai fini par faire fonctionner mes claviers, mais cela a pris un temps embarrassant et ce n'était pas amusant.
Après des suggestions répétées de mon ami Jamie Brandon, beaucoup plus expérimenté en Rust et en informatique, j'ai réécrit le firmware dans Zig, ce qui s'est avéré très bien.
J'ai trouvé cela assez surprenant, étant donné que je n'avais jamais vu Zig auparavant et que c'est un langage pré-1.0 écrit par un autre hipster PDX avec essentiellement une seule page de documentation.
L'expérience s'est si bien passée, en fait, que j'ai maintenant autant envie de me tourner vers Zig (un langage que j'utilise depuis une dizaine d'heures) que vers Rust (que j'utilise depuis au moins mille heures).
Ceci, bien sûr, reflète autant sur moi et mes intérêts que sur l'une ou l'autre de ces langages. Je vais donc devoir expliquer ce que je veux d'un langage de programmation système en premier lieu.
De plus, pour expliquer pourquoi j'ai eu du mal avec Rust, je devrai montrer beaucoup de code complexe dont je suis évidemment mécontent. Mon intention ici n'est pas de me plaindre de Rust, mais d'établir mon (manque de) crédibilité : c'est pour que vous puissiez juger par vous-même si j'utilise les fonctionnalités de Rust de manière raisonnable ou si j'ai totalement perdu la trame(...).
Pourquoi suis-je enthousiasmé par Zig ?
La facilité d'apprentissage est bien si vous pouvez l'obtenir, bien sûr, mais je ne choisis pas un langage système parce que je veux quelque chose de facile à apprendre. Je le fais parce que je veux les capacités ; Je veux pousser les pixels autour de l'écran aussi vite que possible =D
En tant que tel, je suis enthousiasmé par Zig pour deux grandes raisons.
La première est qu'il s'agit d'un type de programmation système très différent de celui auquel je suis habitué ...
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.