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 !

Zig, présenté comme une alternative moderne au C, fait son apparition dans le top 50 de l'indice Tiobe des langages les plus populaires.
Carbon, l'alternative C++ de Google, n'est classé que 168e

Le , par Stéphane le calme

68PARTAGES

8  1 
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.

Citation Envoyé par Paul Jansen, PDG de Tiobe
Récemment, nous avons discuté de l'émergence de langages de programmation à hautes performances. Ces types de langages sont en plein essor en raison des grandes quantités de données qui doivent être traitées de nos jours. En conséquence, C et C++ se portent bien dans le top 10 et Rust semble être un gardien dans le top 20. Mais plus bas dans la liste, il y a un autre concurrent remarquable de C et C++ entrant dans le top 50. Non, ce n'est pas le langage très promu de Google Carbon, qui n'est qu'à la position #168. C'est le langage de programmation Zig. Zig est un langage très pragmatique qui interagit de manière fluide avec les programmes C/C++, facilitant ainsi la migration de C/C++ vers Zig. Il possède toutes les fonctionnalités intéressantes de C et C ++ (telles que la gestion explicite de la mémoire améliorée avec des types d'options) et a abandonné les fonctionnalités moins agréables (telles que le prétraitement épouvantable). Entrer dans le top 50 n'est pas une garantie de réussite, mais c'est au moins une première étape notable. Bonne chance Zig !
Ci-dessous le top 10 des langages de programmation les plus populaires du Tiobe index pour avril 2023 :
  1. Python, avec une part de marché de 14,51 %
  2. C, avec une part de marché de 14,41 %
  3. Java, avec une part de marché de 13,23 %
  4. C++, avec une part de marché de 12,96 %
  5. C#, avec une part de marché de 8,21 %
  6. Visual Basic, avec une part de marché de 4,4 %
  7. JavaScript, avec une part de marché de 2,1 %
  8. SQL, avec une part de marché de 1,68 %
  9. PHP, avec une part de marché de 1,36 %
  10. 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é :

Citation Envoyé par PDG Tiobe
Go est entré dans le top 10 de l'indice TIOBE ce mois-ci. Les ingénieurs semblent aimer le langage de programmation Go. Qu'est-ce qui le distingue ? Go n'est pas révolutionnaire, mais sa force réside dans la combinaison des bonnes fonctionnalités. Il a une simultanéité et une récupération de place intégrées, est typé statiquement et a de bonnes performances. Le fait que Go soit soutenu par la société Google aide également. Cela améliore la confiance à long terme dans le langage. Des applications populaires telles que Docker et Kubernetes ont été développées à l'aide de Go. Go restera-t-il dans le top 10 ? C'est une question intéressante, car la position numéro 10 de l'indice TIOBE semble changer presque tous les mois.
L'indice TIOBE Programming Community est un indicateur de la popularité des langages de programmation. L'index est mis à jour une fois par mois. Les notes sont basées sur le nombre d'ingénieurs qualifiés dans le monde, les cours et les fournisseurs tiers. Les moteurs de recherche populaires tels que Google, Bing, Yahoo!, Wikipédia, Amazon, YouTube et Baidu sont utilisés pour calculer les notes. Il est important de noter que l'index TIOBE ne concerne pas le meilleur langage de programmation ou le langage dans lequel la plupart des lignes de code ont été écrites. L'index peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lors du démarrage de la construction d'un nouveau système logiciel.

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 :
  1. Python, avec une part de marché de 27,43 %
  2. Java, avec une part de marché de 16,41 %
  3. JavaScript, avec une part de marché de 9,57 %
  4. C#, avec une part de marché de 6,9 %
  5. C/C++, avec une part de marché de 6,65 %
  6. PHP, avec une part de marché de 5,17 %
  7. R, avec une part de marché de 4,22 %
  8. TypeScript, avec une part de marché de 2,89 %
  9. Swift, avec une part de marché de 2,31 %
  10. 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 :

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é : il est rapide, petit et amusant (...). Zig 0.7.1, d'autre part, compile mon firmware à partir de zéro en mode de publication en environ 5 secondes et son zig-cache/ consomme 1,4 Mo. Super !

Le langage est si petit et cohérent qu'après quelques heures d'étude, j'ai pu en savoir suffisamment pour faire mon travail.

Nathan Craddock, un développeur C, a fait écho à ce sentiment en janvier 2011 :

L'un des articles qui m'a d'abord intéressé à Zig est l'article de Kevin Lynagh sur l'écriture du firmware du clavier dans Zig qui met souvent l'accent sur la cohérence du langage :

« Le langage est si petit et cohérent qu'après quelques heures d'étude, j'ai pu en savoir suffisamment pour faire mon travail. … J'ai l'impression que Zig est un langage que je pourrais maîtriser; à intérioriser complètement de sorte que je puisse l'utiliser sans y penser. C'est super excitant et stimulant ».

À cette époque, j'étais en train d'apprendre Rust. J'avais une bonne compréhension des concepts de propriété et de durée de vie, ainsi que de la syntaxe du langage, mais je ne me sentais pas encore à l'aise pour créer mes propres projets. La lecture de cet éloge enthousiaste de Kevin m'a motivé à essayer Zig.

Maintenant, plus de six mois plus tard, j'ai passé pas mal de temps avec le langage de programmation Zig. Je trouve que le langage est petit et simple. Comme Kevin, je suis très enthousiaste à l'idée d'utiliser Zig et je me suis senti à l'aise et productif au début du processus d'apprentissage. De nombreux aspects du langage m'excitent, en particulier les capacités de métaprogrammation au moment de la compilation, mais pour cet article, je me concentrerai sur le système de type de Zig.

Parce que je connais bien C et que Zig est aussi un langage système, de nombreux exemples que je partage compareront Zig à C.
Comment Zig gère la mémoire

Une particularité de Zig est qu'il ne traite pas l'allocation de mémoire directement dans le langage. Il n'y a pas de mot clef malloc comme en C/C++. Au lieu de cela, l'accès est géré explicitement dans la bibliothèque standard. Lorsque vous avez besoin d'une telle fonctionnalité, vous transmettez un objet Allocator. Cela a pour effet d'indiquer clairement quand la mémoire est engagée par les bibliothèques tout en faisant abstraction de la manière dont elle doit être traitée. Au lieu de cela, votre code client détermine le type d'allocateur approprié.

Faire de l'accès à la mémoire une caractéristique évidente de la bibliothèque vise à éviter les allocations cachées, ce qui est une aubaine pour les environnements à ressources limitées et en temps réel. La mémoire est retirée de la syntaxe du langage, où elle peut apparaître n'importe où, et sa gestion est rendue plus explicite.

Autoriser le code client à spécifier le type d'allocateur qu'il transmet à une API signifie que le code peut choisir en fonction de l'environnement qu'il cible. Cela signifie que le code de la bibliothèque devient plus évident et réutilisable. Une application peut déterminer quand exactement une bibliothèque qu'elle utilise accédera à la mémoire et lui attribuer le type d'allocateur (intégré, serveur, WASM, etc.) le plus approprié pour l'environnement d'exécution.

Par exemple, la bibliothèque standard Zig est livrée avec un alternateur de base appelé allocateur de page, qui demande de la mémoire au système d'exploitation en émettant : allocator const = std.heap.page_allocator;. Consultez la documentation Zig pour en savoir plus sur les répartiteurs disponibles.

Zig inclut également des fonctionnalités de sécurité pour éviter les débordements de mémoire tampon, et il est livré avec un répartiteur de débogage qui détecte les fuites de mémoire.

Emploi informatique 2022 : les langages les plus demandés et les mieux payés
Portail Emploi de Developpez.com

Sources : Tiobe, PYPL, Kevin Lynagh, Zig sur la boucle for, Nathan Craddock

Et vous ?

Quel(s) est/sont votre/vos langage(s) de programmation préférez ? Pour quels types de projets l'utilisez/les utilisez-vous ?
Que pensez-vous de Zig ? L'avez-vous déjà essayé ou êtes-vous tentés de le faire ?
Comment pouvez-vous expliquer son arrivée dans le top 50 de l'index TIOBE ?
D'ailleurs, que pensez-vous des méthodes d'évaluation de popularité de TIOBE ou des index concurrents ? Lesquelles trouvez-vous pertinentes et lesquelles le sont moins selon vous ? Pourquoi ?

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

Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 10/04/2023 à 19:57
Une particularité de Zig est qu'il ne traite pas l'allocation de mémoire directement dans le langage. Il n'y a pas de mot clé malloc comme en C/C++. Au lieu de cela, l'accès est géré explicitement dans la bibliothèque standard.
malloc n'est pas un mot clé du langage, c'est une fonction de la bibliothèque standard C.
5  0 
Avatar de remi_inconnu
Membre du Club https://www.developpez.com
Le 10/04/2023 à 19:44
C'est bien la création d'un nouveau langage, mais entre la création et son adoption massive il peut se passer un long moment, excepté si c'est une multinationale derrière le langage. Il ne faut pas oublier, ce qui fait la richesse d'un langage, ce n'est que peu la qualité du langage en lui même, mais plutôt le fait qu'il puisse utiliser une multitude de librairies externes, c'est un peu comme le plus bel OS qui ne ferai tourner qu'un pauvre notepad et qui n'aurai donc aucune utilité. Si vous voulez baser votre carrière sur ce genre de langage, vous prenez le risque de ne jamais trouver de travail, ou alors il faudra se montrer patient, très très patient, car entre l'apparition d'un langage et l'adoption par l'industrie il peut s'écouler plusieurs décennies.
1  1