Découvrez Crystal, un nouveau langage de développement

Le 21/07/2015

Dans Développement

Une fois n'est pas coutume, je vais vous parler d'un des très nombreux langages florissant sur le web ces quelques dernières années. Mesdames et messieurs : Crystal !

Crystal est un langage de programmation très semblable au Ruby (très expressif et agréable à utiliser donc) né fin 2012 et qui , a la différence de son aîné, est un langage compilé au lieu d'interprété. Il n'existe vraiment pas beaucoup de langages compilés aussi souples et clairs que le Ruby, donc l'arrivée d'un petit nouveau est une très bonne nouvelle ! Mais est-ce que ce langage a-il réellement sa place dans l'écosystème ?

Compilé, interpreté, kesako ?

Nous ne nous attardons pas sur ce point, étant donné que si vous avez besoin de ce point, vous n’êtes certainement pas la cible principale de cet article. Je vais donc faire une explication très rapide, schématique, et au vocabulaire totalement caricatural. Si ma définition est un peu top succincte pour vous et que vous êtes curieux, vous trouverez de bien meilleures introductions que la mienne sur internet.

Si parmi vous certains pensent que les ordinateurs peuvent "lire" les langages de développement, désolé de vous décevoir mais c'est faux. Ils lisent un autre langage, que nous appellerons le langage natif. Or, les développeurs ne peuvent pas développer en langage natif, ils développent donc dans divers langages de programmation (C, Ruby, Python, PHP, …). Pour permettre ensuite aux ordinateurs de lire ce code, il existe deux techniques différents. 

Certains langages (PHP, Ruby, Javascript, …) passent par un interprète, qui lui est un programme en langage natif (et que les ordinateurs peuvent donc comprendre) et qui comprend notre langage de développement. Il va donc exécuter notre code pour l'ordinateur.

D'autres langages, comme le C, sont compilés. Ils passent donc par un compilateur qui produit un résultat en langage natif, que les ordinateurs peuvent comprendre sans interprète. Cette solution évite d'avoir un interprète d'installer sur tous les ordinateurs, seuls les ordinateurs de développeur ont besoin du compilateur. De plus, le résultat s'exécute souvent beaucoup plus rapidement. Le seul point négatif est qu'il faut compiler son code à chaque fois qu'on veut le tester, et que cela peut prendre beaucoup de temps parfois.

Les bons points du Crystal

1/ Crystal est presque compatible avec Ruby.

Ce point fait que toute personne sachant développer sous Ruby pourra transférer en quelques petites heures à peine ses compétences à Crystal.

Autre avantage, il est possible de créer un prototype de son application en Ruby, puis le porter à Crystal quand les besoins s'en font sentir

2/ Crystal est un langage compilé

La plupart des technologies Web étant des langages interprétés, il est impossible de cacher efficacement ses sources, ce qui peut gêner quelques entreprises. Crystal, de par sa nature de langage compilé, n'oblige pas à livrer les sources aux clients.

De plus, comme tous les langages compilés, il s'exécute évidemment bien plus vite que les langages interprètes.

3/ Crystal a un écosystème très intéressant

Le langage étant très proche de Ruby, il est très simple de porter de nombreuses ressources Ruby en Crystal, ce qui fait que l'écosystème Crystal est bien plus fourni et dynamique que la plupart des langages de son âge. Pour preuve, je vous propose de jeter un œil à la liste des ressources en Crystal disponible sur Github ou à la liste des ressources que je propose juste en dessous.

Quelques ressources pour bien démarrer

Pour vous aider à essayer Crystal, je vous propose quelques petites ressources qui vous simplifieront le début.

Crystal-Lang

La documentation du langage Crystal

Shard

Shard est le package manager (comme par exemple bundle, npm, composer, pip, …) de Crystal. 

Amethyst

Développeur Rails ? Vous ne serez pas perdu avec Amethyst, qui s'y rapproche énormément.

Moonshine

Voilà un autre Web framework, plus simple et plus proche de Padrino.