IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres langages Discussion :

La version 0.4.0 de Zig est disponible


Sujet :

Autres langages

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 298
    Points
    66 298
    Par défaut La version 0.4.0 de Zig est disponible
    La version 0.4.0 de Zig est disponible,
    le langage peut-il vraiment remplacer le C et devenir le nouveau standard pour la programmation système ?

    Zig est un langage de programmation open source conçu par Andrew Kelley pour garantir les performances telles que la robustesse et la maintenabilité. Andrew a annoncé dans une courte introduction au langage Zig qu’il l’a créé dans le but de concurrencer voire remplacer à l’avenir le redoutable langage C dans le cadre de la programmation système. Ainsi, il dit avoir bâti Zig sur quatre principaux aspects afin qu’il soit un langage de programmation pragmatique, optimal, un coffre-fort en matière de sécurité et un langage le plus lisible possible. « Je ne suis pas si ambitieux et mon objectif est de créer un nouveau langage de programmation qui sera plus pragmatique que le C. C'est comme essayer d'être plus diabolique que le diable lui-même », a écrit Andrew en introduction à la présentation du langage Zig. Lorsqu’il parle de langage plus pragmatique, il fait allusion au fait « que tout ce qui compte à la fin, c’est de savoir si le langage vous a aidé à faire ce que vous tentiez de faire et d’une manière plus simple que les autres langages ».

    Ainsi, dans la note de publication de la nouvelle version, la version 0.4.0 de Zig, il écrit que Zig poursuit agressivement son objectif de renverser le C, le langage de facto pour la programmation système. Selon lui, « Zig a l'intention de devenir si pratique que les gens auront à l'utiliser même s'ils ne l'aiment pas ». De plus, pour cette version, il présente un nombre très important d’améliorations, de correctifs de sécurité et de nouvelles fonctionnalités notamment un support pour webAssembly, un support pour FreeBSD et NetBSD, la prise en charge de Linux ARM 64 bits et fonctionne en parallèle avec l’infrastructure de compilation LLVM 8, mais n’est cependant pas compatible avec LLVM 7.

    Selon les indications de sa documentation, LLVM est une représentation SSA (Static Single Assignment) qui fournit la sécurité de type, les opérations de bas niveau, la flexibilité et la possibilité de représenter proprement « tous » les langages de haut niveau. C'est la représentation de code commune qui est utilisée à toutes les phases de la stratégie de compilation de LLVM. L’infrastructure de compilation de LLVM prend en charge un large éventail de projets, allant des compilateurs industriels aux applications spécialisées JIT (Just-In-Time) en passant par de petits projets de recherche. Ce fonctionnement en parallèle avec LLVM 8, note-t-il, signifie notamment que Zig prend désormais en charge WebAssembly, ainsi que les systèmes d’exploitation HermitCore et Hurb.

    Pour information, HermitCore est un nouveau système d'exploitation unikernel ciblant un comportement d'exécution évolutif et prévisible pour les environnements HPC et cloud. La version actuelle prend en charge C/C++, Fortran, Go, Pthreads, OpenMP et iRCCE en tant que bibliothèque de transmission de messages. En plus d’être la concurrence directe et le prétendant au remplacement du langage C, l’auteur de Zig le décrit également comme étant un compilateur pour le langage C. D’après la présentation d’Andrew, une des principales fonctionnalités de Zig est @cImport et C Translation. Ceci est accompli en reliant les bibliothèques Clang (Clang est un compilateur C et C++ complet). Zig hérite donc de toutes ces fonctionnalités. Voici un exemple de construction de code C par Zig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>
    int main(int argc, char **argv) {
        printf("Hello world\n");
        return 0;
    }
    $ zig build-exe --c-source hello.c --library c
    $ ./hello
    Hello world
    L'un des cas d'utilisation de Zig est de battre C à son propre jeu, ce qui signifie être un meilleur langage pour utiliser les bibliothèques C que C ne l'est. « Le fait que les types de pointeurs non sécurisés de C soient devenus difficiles à utiliser est un effet secondaire malheureux lié à une sécurité accrue dans les types de pointeur. Il est ambigu de savoir si les pointeurs doivent être traduits en pointeurs à élément unique (*T) ou en longueur inconnue ([*]T) », a-t-il écrit. Les pointeurs C sont un compromis pour que le code Zig puisse utiliser directement les fichiers d’en-tête traduits. Ce type doit être évité autant que possible. La seule raison valable pour utiliser un pointeur C réside dans le code généré automatiquement à partir de la traduction du code C.

    Zig prend en charge ainsi toute la syntaxe des autres types de pointeurs, ainsi que les pointeurs facultatifs. Lorsqu'un pointeur C est implicitement converti en un pointeur non facultatif, un comportement indéfini soumis à une vérification de sécurité se produit si l'adresse est 0. Sur les cibles non autonomes, l'adresse de déréférencement 0 est un comportement non défini vérifié. Les pointeurs C facultatifs introduisent un autre bit pour garder la trace de null. Zig prend en charge la conversion implicite vers et à partir d'entiers, la comparaison avec des nombres entiers, mais ne prend pas en charge les attributs de pointeur Zig-only tels que l'alignement. Il existe d'innombrables autres fonctionnalités apportées par la nouvelle version de Zig qu’Andrew a présenté dans la note de version de Zig 0.4.0 notamment les types d’énumération anonyme, quelques modifications de l’API de la bibliothèque standard et à l’interface d’allocation (std.mem.Allocator). Il note également quelques corrections de bugs.

    Dans la communauté du langage, beaucoup se réjouissent des nombreuses fonctionnalités qu’apporte sa nouvelle version (par exemple, LLVM 8, WASM, niveaux de support, pointeurs C, type de vecteur, etc.). « J'aime voir tous les progrès réalisés avec Zig, V, Muon et Rust. Tous ces langages sont des langages systèmes potentiellement meilleurs que le C/C++ avec une meilleure sécurité, de meilleures définitions et une meilleure sémantique. Zig a pour objectif explicite d’être meilleur que le C et de le remplacer et je crois qu’il y arrivera », a déclaré l’un d’eux. D’autres par contre voient la chose autrement.

    « Je ne vois aucun langage remplacer le C (ou le C ++), mais ce qui est intéressant ici, c’est que bon nombre de ces langages fonctionnent très bien avec l’ABI C, non seulement en tant que concept FFI, mais aussi avec des notions de mémoire et de présentation des données. L'effet secondaire intéressant pourrait être que nous verrons que Zig ne fonctionne pas uniquement avec du code C mais que Zig fonctionne avec D et Rust. Tout ce code peut toujours être interfacé avec du code C ou C++ (dans les deux sens). Cela réduit considérablement la barrière, mais ne pourra pas égaler le C avant même de le dépasser », a commenté un autre.

    Source : ZigLang

    Et vous ?

    Qu'en pensez-vous ?
    Zig va-t-il réussir à remplacer le C et devenir le nouveau standard pour la programmation système, selon vous ? Pourquoi ?

    Voir aussi

    Dans quel domaine utilisez-vous encore le C ? Quelles en sont les raisons ?

    Quel avenir pour le langage C ? Un développeur expérimenté fait ses adieux au langage et livre ses inquiétudes quant à son avenir

    Il n'y a rien de mieux que le langage de programmation C pour le développement de systèmes d'exploitation b'après Linus Torvalds

  2. #2
    Membre confirmé

    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Points : 496
    Points
    496
    Par défaut
    Le langage C est mort depuis longtemps, la preuve : toute les semaines, il y a un nouveau langage pour le remplacer.

    Plus sérieusement, le développement logiciel est incrémental, c'est plus facile de réécrire un hello world qu'un système d'exploitation ou un simulateur de je ne sais quel système.
    Je ne fais du C que parce que je fais bcp de C++, mais je dirais que ces langages évoluent.
    Le C++20 n'a rien à voir avec le C++98, et refaire un langage from scratch parce que C++98 est pourri n'a plus vraiment de sens à mon avis (ceci n'est évidement pas le sujet de cet article mais c'est quand même dans ma même thématique).

  3. #3
    Expert éminent Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 166
    Points : 6 071
    Points
    6 071
    Par défaut
    Citation Envoyé par kmedghaith Voir le message
    Le langage C est mort depuis longtemps, la preuve : toute les semaines, il y a un nouveau langage pour le remplacer.
    Oui mais il est toujours bien là !!!

    Pas une semaine où l'on ne tente pas réinventer la roue... Mais les idées sortent toujours du même moule, proposent peu ou prou la même syntaxe, la même structuration, les même concepts déjà implémentés ailleurs (parfois en mois bien)... Au point que l'on a parfois du mal à comprendre ce que ça peut faire de mieux... C'est peu être pour ça que les développeurs ont aussi du mal à franchir le pas et ces nouveaux langages ont du mal à émerger...

    C'est un peu le nouvel Ariel qui lave plus blanc que blanc...

    A près, y'a peu être quelques idées à reprendre en C/C++

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    Si y'a bien un endroit ou la "hype" à pas sa place c'est dans la prog système.

    Entre un langage éprouvé depuis plus de 40 ans et une nouveauté sortie par on ne sait trop qui , le choix va être vite fait. Effectivement ça va sans doute être moins cool à utiliser , mais je suis à peut près certains que ca va être stable si je fait pas n'importe quoi.

    On en reparle dans 10 ans quand zig aura fait ses preuves , peut être qu'on pourra effectivement songer à basculer

Discussions similaires

  1. La version finale de PhysX 3.2 est disponible
    Par dourouc05 dans le forum PhysX et APEX
    Réponses: 29
    Dernier message: 11/03/2013, 15h22
  2. La version 3.1 de Warzone 2100 est disponible !
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 21/01/2013, 22h30
  3. La version 3.46 de la JVCL est disponible
    Par Franck SORIANO dans le forum Composants VCL
    Réponses: 8
    Dernier message: 20/01/2013, 12h34
  4. La version gratuite de Visual Studio 2010 est disponible
    Par Gordon Fowler dans le forum Actualités
    Réponses: 8
    Dernier message: 30/04/2010, 09h35
  5. La nouvelle version 3.37 de la JVCL est disponible!
    Par Pedro dans le forum Composants VCL
    Réponses: 23
    Dernier message: 31/07/2009, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo