+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Expert éminent sénior

    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : septembre 2014
    Messages : 194
    Points : 12 264
    Points
    12 264

    Par défaut Ruby 2.2 et Rails 4.2 disponibles en versions stables

    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

    Après une Preview sortie il y a un mois, et une RC publiée quelques jours après, la version stable 2.2.0 du langage de programmation est disponible en version stable.

    Présenté par beaucoup de personnes comme un langage simple, rapide à prendre en main et surtout très intuitif, ce langage de programmation open source rassemble aujourd’hui une communauté de plus en plus grande, surtout depuis l’apparition du framework Rails en 2003. Ce dernier, dont la version actuelle est la 4.2. sortie le 19 décembre 2014, est destiné à la programmation web avec Ruby, selon l’architecture MVC. La prochaine version du framework, qui est la version 5.0 prévue pour l’automne 2015, sera uniquement basée sur Ruby 2.2.x pour profiter au maximum des nouveautés du langage.

    L’amélioration majeure qu’apporte Ruby 2.2.0 est sans doute l’optimisation du ramasse-miettes (Garbage Collector), qui est à présent capable de ramasser les objets de type « Symbol », ce qui n’était pas possible jusqu’ici. Une réduction considérable du temps d’attente avec l’introduction du ramasse-miettes incrémental (Incremental Garbage Collector) est également au rendez-vous.

    Toujours concernant la gestion de la mémoire, une nouvelle option dans le configure.in permet d’utiliser jemalloc au lieu du malloc standard, ce qui permet, selon les tests préliminaire de réduire le temps moyen des requêtes de 10%. Toutefois, cette fonctionnalité reste expérimentale et est désactivée par défaut jusqu’à ce que le gain réel en performances soit confirmé. Une autre fonctionnalité expérimentale et qui pourrait améliorer considérablement les performances lorsqu’un processus exécute plusieurs fois des commandes systèmes est l’utilisation de vfork() avec system() et spawn(). Les résultats des tests réalisés par Akira Tanaka ont montré que vfork() peut être jusqu’à 100 fois plus rapide que le fork() traditionnel. Cependant, son utilisation est jugée dangereuse et la fonctionnalité reste encore au stade expérimental.

    D’autres changements supplémentaires concernent le support de Unicode 7.0 et l’introduction de nouvelles fonctions :
    • String#unicode_normalize
    • Enumerable#slice_after et Enumerable#slice_when
    • Float#next_float et Float#prev_float
    • File.birthtime et File#birthtime
    • Dir#fileno
    • Kernel#itself
    • Binding#local_variables et Binding#receiver.

    Concernant les bibliothèques, mathn est marquée comme obsolète, tandis que les librairies suivantes ont été mises à jour :
    • Psych 2.0.8
    • Rake 10.4.2
    • RDoc 4.2.0
    • RubyGems 2.4.5
    • test-unit 3.0.8
    • minitest 5.4.3

    Télécharger la version stable de Ruby 2.2.0

    Source : Ruby Langage Blog, Git Hub, RubyOnRails

    Et vous ?

    Utilisez-vous Ruby ? Que pensez-vous des améliorations de cette version ?

  2. #2
    Chroniqueur Actualités

    Homme Profil pro
    Webmaster
    Inscrit en
    janvier 2014
    Messages
    688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : janvier 2014
    Messages : 688
    Points : 15 239
    Points
    15 239

    Par défaut Ruby 2.3 est disponible

    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.3 vient de sortir en version stable. Dans cette nouvelle version, nous avons plusieurs correctifs et de nouvelles fonctionnalités qui ont été implémentés.

    Avec les versions antérieures de Ruby, il était possible de geler les chaines de caractères littérales en utilisant la méthode .freeze. Pour éviter que cette méthode apparaisse partout dans le code, l’équipe de Ruby a opté pour un nouveau pragma dans cette nouvelle version de Ruby. Comment fonctionne-t-il ?

    En principe lorsque vous écrivez votre code, il est possible de modifier une chaine de caractères littérale tout au long de l’écriture. Avec la méthode « .freeze » utilisée en association avec une chaine de caractères littérale, le compilateur renvoie un message d’erreur à la compilation si l’on tente de modifier la chaine de caractères littérale qui a été gelée.

    Dans cette nouvelle version de Ruby, cette fonctionnalité peut être appliquée par défaut à un fichier d’un projet en ajoutant le commentaire magique suivant pour geler toutes les chaines de caractères du fichier source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #frozen-string-literal: true

    ou en utilisant le flag suivant dans la console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    --enable=frozen-string-literal my_script.rb

    Pour désactiver cette fonctionnalité, il faut saisir cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    --disable=frozen-string-literal

    Cette fonctionnalité comporte plusieurs avantages. En l’utilisant sur une constante par exemple, il est sûr que cette dernière conservera la même valeur partout dans le projet.

    Par ailleurs, en figeant une chaine de caractères, il n’est plus nécessaire d’écrire à chaque fois le même objet dans la mesure où il comporte la même valeur. L’on pourrait la définir à un emplacement précis et l’appeler à partir de n’importe quel emplacement dans le projet sans risquer de mauvaise surprise de retour de valeur.

    Au regard des avantages précédents, l’on pourrait obtenir des gains de performance dans le programme utilisant cette fonctionnalité, car le ramasse-miettes prendra moins de temps pour créer et détruire les objets créés sous ce schéma.

    Pour aider les développeurs à mieux gérer les erreurs qui pourraient résulter de l’usage de cette méthode, la ligne de commande suivante permet d’obtenir des informations sur le code tentant de changer la valeur d’une chaine de caractères qui a été gelée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    --debug ou --debug=frozen-string-literal

    À côté de cette fonctionnalité, l’équipe de Ruby a introduit un nouvel opérateur de navigation sécurisée « &. ». Ce dernier apporte une simplicité à la gestion des exceptions. C’est un peu le même principe que l’on a en Swift avec les optionnelles. Lorsque vous utilisez un objet qui peut être nil à un moment donné, pour éviter des déclenchements d’erreurs, il est recommandé d’utiliser cet opérateur pour gérer l’exception au cas où l’objet appelé est nil.

    D’autres langages tels C# et Groovy intègrent également des fonctionnalités similaires, mais avec un opérateur différent. À terme, la méthode try! qui gère uniquement nil dans Ruby devrait être remplacée par le nouvel opérateur &.

    Comme autres nouveautés dans cette version 2.3, il faut également citer l’apparition d’une nouvelle méthode « dig ». Elle permet de parcourir et récupérer une valeur dans un tableau array ou une table de hachage.

    Autre élément à noter dans cette nouvelle version, c’est l’ajout par défaut de la bibliothèque did_you_mean gem pour faciliter le débogage des erreurs. En effet, lors de l’écriture du code, des erreurs de saisie peuvent apparaitre au niveau du nom des méthodes, des classes, des instances de variables, et bien plus encore. La gem did_you_mean en générant une alerte émet également des propositions de noms corrects.

    Pour ceux qui utilisent le bloc de commentaires Here Documents, une amélioration a été également introduite à ce niveau. Afin d’indenter le contenu d’un bloc de commentaires (Here Documents) et son identifiant tout en supprimant les espaces qui peuvent apparaitre à la sortie, le nouveau caractère « <<~ » a été ajouté. En l’utilisant, cela évite d’indenter le contenu des blocs de commentaires et supprimer plus tard les espaces précédents les commentaires indentés.

    Enfin, on pourra ajouter à cette liste de nouvelles fonctionnalités, l’interrogation d’un nombre pour savoir s’il est positif ou négatif. Plusieurs autres améliorations ont été apportées au niveau du noyau, des fichiers, de l’encodage, des processus, etc.

    Nouvelles fonctionnalités sur Github

    Source : Ruby News

    Et vous ?

    Que pensez-vous des nouvelles fonctionnalités introduites dans cette version de Ruby 2.3 ?

    Quelle est votre fonctionnalité favorite parmi les nouvelles fonctionnalités proposées ?

    Voir aussi

    Forum Ruby
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

Discussions similaires

  1. Linux 3.8 disponible en version stable et intègre F2FS
    Par Hinault Romaric dans le forum Linux
    Réponses: 0
    Dernier message: 20/02/2013, 11h22
  2. Ruby on Rails 3.2 disponible en version finale
    Par Hinault Romaric dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 26/01/2012, 17h28
  3. Apache Tomcat 7 disponible en version stable
    Par Idelways dans le forum Tomcat
    Réponses: 1
    Dernier message: 18/01/2011, 12h03
  4. Apache Tomcat 7 disponible en version stable
    Par Idelways dans le forum Actualités
    Réponses: 1
    Dernier message: 18/01/2011, 12h03
  5. GNU Emacs 23.2 disponible en version stable
    Par Gordon Fowler dans le forum Actualités
    Réponses: 86
    Dernier message: 04/11/2010, 15h39

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