Groovy, le langage qui me redonne l’espoir

Il y a longtemps, j’avais commencé la programmation en mode procédural, puis je suis vite passé aux objets, grâce à Turbo Pascal. Au début des années 90 j’ai découvert C++ et sa puissance qui allait en grandissant, jusqu’au concept des templates. Leur puissance est phénoménale, permettant l’implémentation des patterns et du code vraiment réutilisable.

Puis l’époque Java et C# est arrivée. A chaque fois que j’ai à faire à ces langages, je ne peux pas m’empêcher de penser qu’ils sont un retour en arrière. Comment imaginer un langage de programmation objet dépourvu de mécanismes d’abstraction du type ? A la place, l’on peut écrire beaucoup de lignes contenant moult détails qui font perdre le fil des idées. Imaginez ma satisfaction quand ils ont commencé à supporter les “generics”. Mais ils arrivent un peu tard et se font vite submergés par les détails de syntaxe.

Je ne dois pas être le seul à penser comme celà, puisque des tentatives successives ont fait aparaître des nouveaux langages.

Python offre pas mal de puissance, mais j’ai du mal à me faire à sa façon très “fortran”-esque d’identer les lignes. Puis, j’ai le sentiment que le concepteur du langage n’est pas allé au bout. Mais Python a réussi à simplifier l’administration des machines Linux.

Ruby ne ma pas franchement branché. Je n’aime pas les langages qui utilisent le mot clé end. Je préfère quand même les accolades. Puis, tant qu’apprendre un nouveau langage est aisé, apprendre les librairies qui vont avec peut prendre pas mal de temps – en tout cas assez pour se disperser et oublier ce que l’on voulait faire.

Puis Groovy est arrivé. Après un premier essai pas très concluant du framework Grails, je me suis mis à lire le livre “Groovy In Action”. Et là, je vous dis que je compte me remettre à la programmation 🙂 Bon, ok, je ne me suis pas vraiement arrêté, puisque KDE est écrit en C++. Mais programmer des IHM en C++ est très fastidieux. Je patauge un peu sur ce terrain. Puis il y a les projets Java/C# au travail, entre deux missions d’architecture.

Pourquoi Groovy change ? Voici quelques raisons que je trouve rapidement :

  • il est entièrement basé sur la plate-forme Java, donc l’on a plus besoin d’apprendre des nouvelles librairies, puisqu’il peut utiliser directement les librairies traditionnelles Java
  • il pousse les concepts d’objets jusqu’au derniers retranchements, permettant d’appeler des méthodes les plus dérivées dans tous les cas de typage – dynamique et statique,
  • il fournit le mécanimse de “closure” qui permet de cesser à répartir la logique d’un algorithme sur une multitude de classes
  • tous les objets sont aussi des listes, donc fini la prise de tête avec la gestion des collections
  • il fournit un mécanisme de builders qui permet de gérer naturellement les arbres d’informations, tels que les fichiers XML, directement dans la syntaxe
  • parmi ces builders, il y a le SwingBuilder, qui permet de faire les IHM en quelques lignes
  • … et je n’ai pas fini de lire le livre 🙂

Je reviendrais quand j’aurais quelque chose d’implémenté avec Groovy.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>