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

Ruby Discussion :

Ruby 2.6 est disponible en version stable


Sujet :

Ruby

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    1 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 089
    Points : 26 555
    Points
    26 555
    Par défaut Ruby 2.6 est disponible en version stable
    La version stable de Ruby 2.5 est disponible
    avec des améliorations de performance de l’ordre de 5 à 10 % et l’ajout de nouvelles fonctionnalités

    Alors que de nombreuses personnes étaient occupées à donner des présents à leurs proches ce 25 décembre, l’équipe de Ruby a voulu également sacrifier à la tradition et a annoncé la sortie de la première version stable de la série 2.5 de Ruby.

    Cette nouvelle version de Ruby se focalise sur trois axes principaux, à savoir les nouvelles fonctionnalités, les améliorations de performance et divers changements importants apportés depuis Ruby 2.4.

    Au menu des nouvelles fonctionnalités, l’équipe de Ruby annonce que les clauses rescue, else et ensure utilisées pour gérer les exceptions peuvent maintenant être utilisées directement avec les blocs do et end. À côté de cette nouveauté, nous avons la nouvelle méthode yield_self introduite dans cette nouvelle itération de Ruby et qui fonctionne un peu comme la méthode tap. Mais contrairement à cette dernière, la méthode yield_self permet de retourner différentes valeurs et plus précisément le résultat du bloc dans lequel elle est utilisée.

    En plus de ces nouvelles fonctionnalités, il faut également ajouter le support pour la couverture de code, notamment la couverture de branches et la couverture de méthodes. La couverture de branches indique quelles branches d’un programme sont exécutées et lesquelles ne le sont pas et la couverture de méthodes indique quelles méthodes sont invoquées et lesquelles ne le sont pas. Lorsqu’un développeur exécute une suite de tests, il peut utiliser ces nouvelles fonctionnalités pour savoir quelles branches et quelles méthodes sont exécutées et évaluer plus strictement la couverture totale de la suite de tests.

    Au-delà de ces nouvelles implémentations, nous avons également d’autres nouvelles fonctionnalités qui ont trouvé leur place dans cette version 2.5 de Ruby. Ce sont :

    • l’ajout de Hash#slice et Hash#transform_keys ;
    • la possibilité d’utiliser Struct.new pour créer des classes qui acceptent les arguments de mots-clés ;
    • la possibilité d’ajouter un argument de modèle aux méthodes any?, all?, none?, et one? ;
    • la recherche d’une constante de haut niveau n’est plus disponible ;
    • l’une de bibliothèques de Ruby les plus appréciées, en l’occurrence pp.rb, est maintenant chargée automatiquement. Vous n’avez plus besoin d’écrire require « pp » ;
    • enfin, il est possible d’imprimer un message d’erreur dans l’ordre inverse lorsqu’un long backtrace apparait sur votre terminal (TTY).

    Nom : Ruby.jpg
Affichages : 3379
Taille : 32,8 Ko

    Au niveau du chapitre des performances obtenues à travers cette nouvelle version, les développeurs de Ruby annoncent des améliorations à plusieurs niveaux. Après avoir supprimé toutes les instructions trace du bytecode de Ruby, l’équipe de Ruby annonce pour cette dernière version une amélioration de performance d’environ 5 à 10 %. En outre, ils ajoutent qu’un bloc qui passe par un paramètre de bloc comme def foo(&b); bar(&b); end est environ trois fois plus rapide que celui utilisé avec Ruby 2.4.

    D’autres améliorations ont également été rendues possibles dans cette nouvelle version. Ce sont entre autres :

    • la réduction de la taille de la classe Mutex, ce qui lui permet d’être plus rapide ;
    • ERB, l’implémentation d’eRuby (le système de modèles ou templates qui embarque Ruby à l’intérieur d’un texte) génère maintenant du code à partir d’un modèle deux fois plus vite que Ruby 2.4 ;
    • les performances de plusieurs méthodes intégrées y compris celles des méthodes Array#concat, Enumerable#sort_by, String#concat, String#index, Time#+, ont été améliorées ;
    • IO.copy_stream utilise copy_file_range pour se décharger.

    Pour ce qui concerne les autres changements importants mis en œuvre depuis Ruby 2.4, il est annoncé que SecureRandom préfère désormais les sources fournies par le système d’exploitation à OpenSSL. Par ailleurs, l’équipe de Ruby met avant l’usage de certains composants comme cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr, scanf, sdbm, stringio, strscan, webrick, zlib issus des bibliothèques standards au lieu d’utiliser ceux des gestionnaires de paquets par défaut.

    Au nombre des changements dans cette nouvelle version de Ruby, nous avons également des mises à jour qui ont été appliquées. La bibliothèque d’expressions régulières Onigmo est passée à la version 6.1.3 et Psych, l’analyseur et l’émetteur YAML, est passé à la version 3.0.2. RubyGems, le gestionnaire de paquets Ruby, est quant à lui passé à la version 2.7.3 et la documentation RDoc a été mise à jour en passant à la version 6.0.1. La version d’Unicode a également été mise à jour et porte maintenant le numéro de version 10.0.0.

    Plusieurs autres améliorations et changements sont présents dans cette nouvelle version de Ruby 2.5.

    Source : Ruby 2.5

    Et vous ?

    Comment trouvez-vous cette nouvelle version de Ruby ?

    Répond-elle à vos attentes ?

    Quelles sont les améliorations que vous auriez souhaité voir dans cette nouvelle version de Ruby et dans les versions à venir ?

    Voir aussi

    Ruby 2.3 est disponible, avec un nouvel opérateur de navigation sécurisée, un nouveau pragma pour geler les chaines de caractères et plus encore
    Ruby 2.2 et Rails 4.2 disponibles en versions stables avec des améliorations de performances et de la gestion de la mémoire
    Ruby passe à la version 2.1 et introduit un lot de nouvelles fonctions et un meilleur garbage collector

  2. #2
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 707
    Points : 1 448
    Points
    1 448
    Billets dans le blog
    7
    Par défaut
    Quelques trouvailles de la version 2.5

    https://dzone.com/articles/ruby-25-r...elease-is-here

  3. #3
    Membre habitué

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2018
    Messages : 4
    Points : 164
    Points
    164
    Par défaut Ruby 2.6.0-preview2 disponible avec une implémentation initiale de compilateur JIT
    Ruby 2.6.0-preview2 disponible avec une implémentation initiale de compilateur JIT
    qui promet une réduction significative des temps d'exécution des programmes

    Ruby est un langage de programmation libre. Il est interprété, orienté objet, multiparadigme, dynamique, met l'accent sur la simplicité et la productivité. Sa syntaxe en facilite la lecture et l'écriture, et il se classe dans le top 10 des langages de programmation selon le baromètre RedMonk. Le 31 mai, les responsables de ce langage annoncé la sortie de Ruby 2.6.0-preview2. Cette version est publiée plus tôt que d'habitude, car elle inclut une nouvelle fonctionnalité importante, JIT.

    Pour ceux qui ne le savent pas, le JIT est une technique de compilation visant à améliorer la performance du systèmes bytecode-compilés en traduisant le bytecode en code machine natif au moment de son exécution. Cette technique est utilisée par des langages comme Perl, PHP, Python (PyPy) et Java entre autres. Le compilateur JIT vise donc à améliorer les performances d'exécution des programmes Ruby.

    Contrairement aux compilateurs JIT ordinaires d'autres langages, le compilateur JIT de Ruby fait la compilation JIT d'une manière unique, il stocke le code C sur un disque et engendre le processus de compilateur C commun pour générer du codage natif. L'image ci-dessous explique le fonctionnement du processus de compilation JIT

    Nom : jit.png
Affichages : 3749
Taille : 62,0 Ko

    Pour les amoureux du langage Ruby, cette nouvelle version apporte des nouveautés qui vont surement donner satisfaction. Nous avons, en plus du compilateur JIT qui promet des gains de performances :
    • l'intégration d'un nouveau module expérimental RubyVM::AST ;
    • l'ajout d'un nouveau alias then à Kernel#yield_self ;
    • l'usage de else sans rescue génère une erreur ;
    • les noms de constante peuvent commencer par une lettre majuscule non-ASCII ;
    • les plages infinies, (1...), ont été introduites. Elles fonctionnent comme si elles n'avaient pas de fin. L'exemple ci-dessous illustre les cas d'utilisation typiques :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      ary[1..]                          # identical to ary[1..-1] without magical -1
      (1..).each {|index| ... }         # inifinite loop from index 1
      ary.zip(1..) {|elem, index| ... } # ary.each.with_index(1) { ... }
    • etc.

    En gros, nous avons dans cette nouvelle version l'optimisation des appels de méthode, la génération des erreurs et autres changements notables depuis 2.5.

    Nom : ruby.png
Affichages : 5721
Taille : 15,9 Ko
    Une synthaxe en Ruby

    Téléchargement de Ruby 2.6.0-preview2

    Source : Blog Ruby, La méthode du compilateur JIT pour Ruby 2.6.

    Et vous ?

    Avez-vous déja utilisé le langage de programmation Ruby ?
    Si vous êtes un amoureux du Ruby pouvez vous partager la plus-value des nouveautés dans cette nouvelle version ?
    Quel langage de programmation utilisez-vous le plus ?

    Voir aussi

    meilleurs cours et tutoriels pour apprendre le Ruby et le Ruby on Rails

  4. #4
    Chroniqueur Actualités

    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    1 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 089
    Points : 26 555
    Points
    26 555
    Par défaut Ruby 2.6 est disponible en version stable
    Ruby 2.6 est disponible en version stable
    avec un nouveau compilateur JIT en mode expérimental et un nouveau module pour analyser du code Ruby

    Toute comme l'année dernière avec la version 2.5, l'équipe de Ruby vient d'annoncer la disponibilité de la version stable de Ruby 2.6 en ce jour de la fête de Noël. Un très beau cadeau que les utilisateurs de ce langage sauront apprécier à sa juste valeur en cette fin d'année.

    Dans cette nouvelle version du langage multiparadigme, l’équipe de Ruby annonce l’intégration d’un nouveau compilateur Just-In-Time (abrégé JIT). La compilation JIT également appelée compilation dynamique ou compilation à la volée est généralement implémentée pour améliorer les performances d’un programme lors de son exécution. Pour se faire, le compilateur JIT traduit dans un premier temps le code source du programme en bytecode, puis dans une seconde étape il va transformer le bytecode en code natif au moment de l’exécution. Il faut noter que le bytecode sera compilé en code natif en fonction de la fréquence d’appel de ce code. Les bytecodes les plus souvent utilisés seront à l’avance compilés en code machine natif afin d’améliorer les performances du programme exécuté.

    Pour ce qui concerne le nouveau compilateur JIT de Ruby, l’équipe de Ruby explique que contrairement aux compilateurs JIT traditionnels qui fonctionnent en processus, le compilateur JIT de Ruby écrit le code C sur le disque et utilise un compilateur C commun pour générer du code natif. Selon les mainteneurs de Ruby 2.6, les tests d’évaluation ont montré que les codes compilés avec le nouveau compilateur JIT étaient environ 1,7 fois plus rapides pour les charges de travail gourmandes en ressources CPU que ceux compilés avec celui de Ruby 2.5. Cependant, le gain de performances obtenues avec ce nouveau compilateur JIT ne pourra pas être également appliqué aux applications web. Des travaux supplémentaires sont encore nécessaires. Aussi, étant donné que des correctifs et améliorations doivent encore être apportés, le compilateur JIT a été désactivé par défaut et relégué au stade expérimental.

    À côté de ce nouveau compilateur qui a atterri dans cette dernière version de Ruby 2.6, un nouveau module RubyVM::AbstractSyntaxTree qui analyse une chaîne de caractères donnée comme du code Ruby et retourne des nœuds d’arbre de syntaxe abstraite (abrégé ASA) a été ajouté à Ruby 2.6. Dans les détails, cela se fait par la méthode parse_file qui ouvre et analyse le fichier donné en tant que code Ruby et renvoie les nœuds de l’arbre de syntaxe abstraite.

    Nom : Ruby.gif
Affichages : 3743
Taille : 15,4 Ko

    Au menu des nouveautés, nous avons également la classe RubyVM::AbstractSyntaxTree::Node qui a été ajoutée dans cette nouvelle version stable de Ruby 2.6. Pour ceux qui utilisent le module RubyVM::AbstractSyntaxTree, il faut savoir que les nœuds de l’arbre de la syntaxe abstraite sont des instances de la classe RubyVM :: AbstractSyntaxTree :: Node.

    Tout comme le nouveau compilateur, le nouveau module et la nouvelle classe intégrés ont été marqués comme fonctionnalités expérimentales. Il va falloir donc les utiliser avec beaucoup de prudence et ne pas hésiter à rapporter les bogues qui pourraient survenir.

    Au-delà de ces nouvelles fonctionnalités, nous avons également des améliorations de performance à plusieurs niveaux, comme avec les blocs qui sont désormais 2,6 fois plus rapides que dans la version 2.5 de Ruby ou encore avec les méthodes Fiber.yield et Fiber#resume qui sont environ 5 fois plus rapides sur Linux 64 bits. Pour les programmes utilisant beaucoup la classe Fiber, l’on peut espérer une amélioration de performance de l’ordre de 5 %.

    Source : Ruby

    Et vous ?

    Avez-vous testé la nouvelle version de Ruby ?

    Quel est votre avis sur les nouvelles fonctionnalités et améliorations apportées ?

    Voir aussi

    La version stable de Ruby 2.5 est disponible avec des améliorations de performance de l’ordre de 5 à 10 % et l’ajout de nouvelles fonctionnalités
    Ruby sort en version 2.1.1 pour marquer son 21e anniversaire
    Un développeur estime que Ruby on Rails est dépassé et conseille aux entreprises de se tourner vers Node.js, partagez-vous ce point de vue ?
    Le livre « Hello Ruby » ambitionne d’apprendre aux enfants les rudiments de la programmation, Que pensez-vous de cette initiative ?
    JRuby 1.6 passe en RC, support de Ruby 1.9.2 et compatibilité Windows pour l’implémentation alternative de Ruby sur la JVM

Discussions similaires

  1. Réponses: 11
    Dernier message: 22/02/2017, 13h42
  2. Réponses: 6
    Dernier message: 22/09/2015, 21h13
  3. Réponses: 1
    Dernier message: 22/09/2015, 10h29
  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