Crystal

 · Temps de lecture: 3 mins

Introduction

Crystal est un nouveau langage orienté objet, polyvalent, compilé et contrôlé statiquement au niveau des caractères, avec une syntaxe de type Ruby et est très rapide. Décomposons ce que signifie ce charabia de programmeur.

Orienté objet

La programmation orientée objet (OOP) signifie qu’un langage est basé sur l’idée d’objets. Une partie importante de la OOP est constituée de classes et de sous-classes - imaginez-la comme une bouteille d’eau. La bouteille d’eau est la classe, et le bouchon, l’étiquette et l’eau réelle sont des sous-classes.

Usage général

L’usage général est assez explicite - de telles langues ne sont pas limitées à un certain but.

Compilé

Un langage compilé signifie qu’il est traduit directement du code source au code machine par une chose appelée compilateur et n’est pas exécuté dans un interpréteur. Exemples de langages compilés : C, Java, C+++, BASIC

Vérification de type statique

La vérification de type statique signifie que les erreurs sont détectées tôt par le compilateur au lieu d’échouer au moment de l’exécution.

Syntaxe

La syntaxe de Ruby est, pour beaucoup, extrêmement simple et intuitive. Crystal vise à prouver l’association des langages simples avec la lenteur et l’inefficacité, et jusqu’à présent - il se porte bien.

A quoi ça ressemble ?

Beaucoup ne seraient pas capables de faire la différence entre Ruby et lui, donc si vous êtes un Rubyiste, le changement serait facile.

Un serveur HTTP dans Crystal ressemble à ceci :

require "http/server"

server = HTTP::Server.new do |context|
  context.response.content_type = "text/plain"
  context.response.print "Hello world, got #{context.request.path}!"
end

puts "Listening on http://127.0.0.1:8080"
server.listen(8080)

Oui, sans formatage, c’est juste 7 lignes. Si ce n’est pas simple, je ne sais pas ce que c’est !

De plus, Crystal peut atteindre la simultanéité en utilisant des fils verts (appelés fibres). Citation tirée de leur site Web :

Crystal utilise des fils verts, appelés fibres, pour obtenir la simultanéité. Les fibres communiquent entre elles à l’aide de canaux, comme dans Go ou Clojure, sans avoir à se tourner vers la mémoire partagée ou les serrures.

Les bibliothèques de Crystal sont connues sous le nom de tessons (inspirées des gemmes de Ruby), et sont relativement simples à installer. Ajoutez simplement le paquet au fichier “shards.yml” dans votre projet et lancez shards install.

Conclusion

Même si je loue Crystal, elle n’est pas sans défauts. En tant que langue relativement nouvelle, elle a une communauté très obscure. Par exemple, pour effectuer une recherche sur la langue, vous devez spécifier Crystal lang, sinon quelque chose sur les cristaux réels ou Crystal Reports apparaîtrait. Il n’est pas non plus possible de le développer sous Windows (en dehors des machines virtuelles ou du sous-système Windows pour Linux).

Il y a peu de bibliothèques en raison de sa nouveauté, mais vous pouvez parfois réécrire une bibliothèque Ruby existante. Cela n’empêche toutefois pas les gens comme vous de le soutenir et d’accroître sa popularité. En fin de compte, c’est à vous de choisir. Le cristal peut être simple et rapide, mais il a aussi ses défauts.

PS : Voici une chose pratique et basique que vous pouvez manquer en apprenant Crystal : utilisez crystal build filename.cr pour compiler votre code en un binaire exécutable.

Ressources


Écrit par Straw et Jake, traduit par Rémy Samkocwa