Crystal 0.34.0 est sorti

Une nouvelle version de Crystal a été publiée, un langage de programmation compilé avec la syntaxe Ruby, dont les principales caractéristiques sont un runtime avec une boucle d'événements « intégrée », dans laquelle toutes les opérations d'E/S sont asynchrones, la prise en charge du multithreading (tant que car activé par un indicateur lors de la compilation) et un fonctionnement extrêmement simple et pratique avec les bibliothèques en C.

À partir de la version 0.34.0, le langage commence officiellement à évoluer vers sa première vraie version (c'est-à-dire la version 1.0).

La nouvelle version de Crystal inclut les modifications et améliorations suivantes par ordre d'importance :

  • Une nouvelle bibliothèque de journalisation a été ajoutée à l'API Bûche, qui, contrairement à l’ancien, peut envoyer des messages à différents backends et filtrer ces messages différemment selon la « source ».

  • Des rudiments du monde du développement C, Errno и WinErreur, utilisés pour les primitives d'E/S, appartiennent désormais au passé grâce à la hiérarchie des exceptions IO : Erreur (cependant, personne n'interdit encore l'utilisation d'Errno).

  • Suppression de la substitution automatique de else nil de l'opérateur cas/quand/autre. Ceci est fait afin d'empêcher le développeur de sauter accidentellement l'une des branches. quand lors de la correspondance sur des cas déterministes comme les énumérations et en passant par les types de l'Union. Autrement dit, ce code ne fonctionnera plus sans en spécifier un autre quand (quand Char) ou tâches d'autre-branches:

une = 1 || 'x' || "foo"
cas un
quand Int32
#…
quand chaîne
#…
fin

  • Option du compilateur désactiver_overflow plus disponible. Pour les opérations de débordement, utilisez les méthodes &+, &-, &*.

  • Tableau#remplissage vole désormais plus vite qu'une balle, grâce au remplacement de la stupide boucle par un simple memset ;

  • Gestionnaire de fragments (packages), appelé, paradoxalement, tessons, utilise désormais l'algorithme de satisfaction des dépendances Molinillo plus rapide et plus efficace trouvé dans CocoaPods (Swift) et Builder (Ruby).

  • Prise en charge supplémentaire LLVM 10, ce qui en théorie nous apportera une certaine augmentation de productivité, de stabilité, etc.

... et bien d'autres améliorations, à mon avis subjectives, moins significatives.

Je voudrais noter que Crystal est un langage construit sur LLVM, qui permet d'écrire des applications parfois plus rapidement, plus simplement et de manière plus concise que sur ses "frères" interprétés, et en même temps d'obtenir un binaire assez rapide. Comparé à Golang, il se distingue par sa POO absolument complète, sa prise en charge des génériques et une syntaxe très simple et compréhensible. Son objectif est en grande partie similaire à celui de Nim, mais en même temps il est clairement axé sur une utilisation pratique « ici et maintenant », grâce à laquelle il dispose dans son arsenal d'API de nombreux outils bien documentés, pratiques et de haute qualité, pris en charge par le développeurs de langage et donc très stables.

Source: linux.org.ru

Ajouter un commentaire