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

Actualités Discussion :

Le langage de programmation Crystal a maintenant atteint la version 1.0.0

  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 Le langage de programmation Crystal a maintenant atteint la version 1.0.0
    Le langage de programmation Crystal a maintenant atteint la version 1.0.0 après environ 8 ans de travail
    avec le support de Windows, le multithreading et de l'architecture ARM

    La version 1.0.0 du langage de programmation Crystal a été publiée ce lundi. Cette version est considérée comme la première version importante, résume les 8 années de travail de l'équipe et marque la stabilisation du langage et sa préparation à l'utilisation dans des projets de travail. Elle est publiée avec de nombreuses fonctionnalités, mais certaines sont provisoires, comme le support de Windows, le multithreading, le support de l'architecture ARM, etc. Celles-ci sont disponibles dans Crystal 1.0.0, mais n'ont pas encore reçu de support officiel. Cependant, l'équipe promet de continuer à les améliorer jusqu'à fournir une version stable pour chacune d'entre elles.

    Avoir une version 1.0.0 : qu'est-ce que cela signifie ?

    « La sortie de la première version majeure de Crystal arrive après de nombreuses années de travail acharné. Grâce à des milliers de contributions de personnes du monde entier, il a été possible de trouver un consensus sur ce qui était vraiment important pour la version 1.0 et ce qui pouvait attendre les prochaines versions. Le voyage n'a pas été facile, il a été jalonné de conversations enrichissantes, controversées, délicieuses et interminables qui, finalement, ont permis de construire un langage plus utile pour un plus grand nombre d'utilisateurs », a déclaré l'équipe de développement de Crystal.

    Nom : intro-to-crystal-programming-language-1-638.jpg
Affichages : 17996
Taille : 17,1 Ko

    Pour rappel, Crystal est un langage de programmation orienté objet dont les objectifs sont les suivants : avoir une syntaxe similaire à celle de Ruby (mais la compatibilité avec ce dernier n'est pas un objectif) ; avoir une vérification statique des types, mais sans avoir à spécifier le type des variables ou des paramètres des méthodes ; permettre une évaluation et une génération du code à la compilation, afin d'éviter le code passe-partout ; et enfin, permettre la compilation en code natif efficace. Avec la sortie de la version 1.0.0, le processus de réception de contributions et d'évolution du langage ne s'arrête pas, mais quelques changements interviennent.

    Désormais, la branche 1.x supportera la rétrocompatibilité et garantira l'absence de modifications du langage et de la bibliothèque standard, affectant négativement la construction et le travail du code existant. Les versions 1.0.y ne comprendront que des correctifs, tandis que les versions 1.x.0 offriront de nouvelles fonctionnalités et des changements importants, tout en maintenant la compatibilité du code. En outre, l'équipe a expliqué que les nouvelles idées et les changements potentiellement incompatibles seront développés dans une branche séparée qui constituera la base de la version Crystal 2.0.

    Certaines des fonctionnalités de Crystal 1.0.0 sont provisoires et, bien qu'incluses dans la branche 1.0.0, elles ne sont pas officiellement prises en charge. Ces caractéristiques incluent le multithreading, la prise en charge de Windows et l'utilisation sur des systèmes avec des processeurs ARM. Dans sa version 1.0.0, le langage reste fidèle à ses objectifs initiaux. Crystal utilise la vérification statique des types qui est mise en œuvre sans qu'il soit nécessaire de spécifier explicitement les types des variables et des arguments de méthode dans le code.

    Nom : ZxIsOWB.jpg
Affichages : 4928
Taille : 54,3 Ko

    Les programmes Crystal sont compilés en fichiers exécutables avec calcul de macros et génération de code. Les liaisons écrites en C peuvent être utilisées dans les programmes Crystal. La parallélisation de l'exécution du code est réalisée à l'aide du mot-clé "spawn", qui permet de démarrer une tâche d'arrière-plan de manière asynchrone sans bloquer le thread principal, sous la forme de threads légers appelés "fibres" (Fiber).

    La bibliothèque standard fournit un vaste ensemble de fonctions standard, notamment des outils pour le traitement des fichiers CSV, YAML et JSON ; des composants pour la création de serveurs HTTP et la prise en charge de l'API WebSocket. Pendant le développement, il est pratique d'utiliser la commande "crystal play", qui forme une interface Web (localhost:8080 par défaut) pour l'exécution interactive de code en langage Crystal.

    Principaux changements dans Crystal 1.0.0

    • dans les tuples, l'accès indexé à des éléments de types différents est autorisé, car le compilateur dispose d'informations sur le type de chaque élément. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tuple = {1, "hello", 'x'}
       v = tuple[0..1] # выдаст {1, "hello"}
       typeof(v)       # => Tuple(Int32, String)
    • dans les chaînes de caractères et les littéraux de chaînes de caractères, l'utilisation d'abréviations de substitution dans les séquences d'échappement Unicode, telles que "\uD834", est interdite. Pour coder des valeurs arbitraires, il convient d'utiliser la notation "\x" ;
    • la bibliothèque standard a supprimé une grande partie des définitions, macros et méthodes précédemment qualifiées d'obsolètes. Y compris les méthodes Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill, etc ;
    • dans les macros getter et property, il est désormais obligatoire de spécifier un type de retour ;
    • la méthode par défaut pour arrondir les chiffres a été changée en TIES_EVEN (il arrondit au nombre entier le plus proche, et au nombre pair le plus proche pour les situations limites). Le paramètre RoundingMode a été ajouté à Number#round pour vous permettre de sélectionner la méthode d'arrondi. Parmi les méthodes disponibles, citons TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE ;
    • Enumerable#flat_map et Iterator#flat_map avec des éléments de types mixtes sont fournis dans les collections ;
    • la sérialisation des séquences Enum utilise désormais une représentation sous forme de chaîne avec des caractères de soulignement ;
    • les types définis dans le module XML sont passés de l'utilisation de struct à class ;
    • pour des raisons de sécurité, le décodage des noms de cookies, l'encodage et le décodage des cookies ont été arrêtés (cette tâche a été confiée aux frameworks et aux applications). La méthode HTTP::Cookies.from_headers est divisée en deux options pour les serveurs et les clients.

    Source : Crystal 1.0.0

    Et vous ?

    Que pensez-vous de la version 1.0.0 de Crystal ?
    L'avez-vous déjà testée ? Quelle utilité trouvez-vous à ce langage ?

    Voir aussi

    Java et C enregistrent leur plus bas niveau en termes de popularité, d'après les dernières statistiques de l'index TIOBE

    Le langage de programmation V sera disponible en open source à partir de juin 2019 et serait rapide, léger et capable de traduire vos projets C/C++

    Quels sont les meilleurs langages de programmation à apprendre en 2020 ? Voici un classement de ces langages selon le cas d'utilisation

    Perl est-il un langage de programmation mourant ? Le langage pourrait s'éteindre d'ici 2023 selon une étude

    Ruby 3.0.0 est disponible, cette version majeure est annoncée comme étant trois fois plus rapide que Ruby 2 et introduit plusieurs nouvelles fonctionnalités dont les Ractors, RBS et TypeProf

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2014
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2014
    Messages : 626
    Points : 1 495
    Points
    1 495
    Par défaut
    Après Julia, on a Crystal. Quelle famille.

  3. #3
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2014
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2014
    Messages : 626
    Points : 1 495
    Points
    1 495

Discussions similaires

  1. Réponses: 14
    Dernier message: 24/06/2021, 09h56
  2. [Questions]Le langage de programmation Binaire existe t-il ?
    Par Nasky dans le forum Langages de programmation
    Réponses: 30
    Dernier message: 16/11/2012, 09h09
  3. Création d'un langage de programmation
    Par liquid_stone dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 09/11/2003, 16h44
  4. Nombre de langage de programmation total
    Par Adrael dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 22/07/2003, 00h06

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