blog.leny.me

A Stylus in a Jade Coffee cup...

Sous ce titre juste un peu geek, se cachent mes trois langages de travail principaux, ou presque.
Ces trois langages ont plusieurs points communs :

  • Ce sont des langages à compiler : en effet, ils sont tous destinés à être compilé, transformé vers un langage final : javascript pour coffeescript, HTML pour jade et CSS pour Stylus.
  • Ce sont des langages qui évoluent : ils sont tous les trois open-source et hostés sur github.
  • Enfin, ce sont des langages qui ont ce que j’appelle une intolérance à l’erreur de style : comme en Python, la mise en page fait partie de la syntaxe du langage, obligeant le développeur à une certaine rigueur.

Analysons un peu tout cela.

Langages compilés

À vrai dire, ce point peut être pris comme un inconvénient : on ne peut pas écrire du jade, du coffeescript ou du Stylus et l’utiliser tel quel (sauf cas très spécifiques) : on doit d’abord les transformer en les compilant.
Toutefois, avec tous les outils sur le marché, ce désagrément n’en est plus un, que ce soit en passant par des outils tout-en-un et simples à utiliser comme CodeKit ou PrePros, ou des outils plus complexes mais autrement plus puissant comme Grunt, Guard ou, plus récemment, Gulp.

Des langages qui évoluent

Le but de ces trois langages, c’est de faciliter l’écriture et la génération du langage final grâce à des raccourcis (ce qu’on appelle aussi des sucres syntaxiques) et/ou des fonctions utilitaires pour accélérer des procédures répétitives (comme ajouter les vendor prefix en CSS).

Il va donc de soi que ces langages doivent pouvoir évoluer et s’adapter aux nouveautés de leur langages cibles, ainsi qu’aux évolutions des pratiques en matière de développement moderne, la contribution libre à ces langages via des plateformes comme github ou bitbucket est donc obligatoire.

C’est ainsi que j’ai eu l’occasion de proposer des fonctions utilitaires de manipulation de couleurs dans Stylus, fonctions qui ont été validées par les responsables du projet et ajoutées à la version 0.42.

Intolérance à l’erreur de style

Sous cette tournure de phrase un peu barbare se cache une façon d’écrire du code que j’ai mis du temps à accepter puis intégrer : les langages strictement indentés.
Dans la plupart des langages de programmation, une bonne indentation du code aide sa lisibilité, sa relecture et sa compréhension, et avoir une indentation cohérente sur un projet est l’un des piliers des bonnes pratiques de développement en équipe.

Dans les langages strictement indentés, l’indentation fait partie de la syntaxe du langage, et défini les structures et blocs de celui-ci.
Ces langages ont l’avantage, puisqu’ils génèrent des erreurs de compilations lors d’une mauvaise indentation, d’imposer aux développeurs une certaine hygiène de code qui est plaisante et utile (et qui font de ce genre de langages de très bons sujets d’enseignement).

Bon, ok, mais ça fait quoi, tout ça ?

Je vous invite à essayer par vous-même ces trois langages, qui sont tous assez simples à prendre en main.

J’aurais toutefois un avertissement : avant de vous pencher sur un langage qui se compile vers un autre langage, soyez certains de bien connaître ce langage cible : ça a l’air d’être une évidence, dis comme ça, mais on croise souvent sur les forums des développeurs qui ont voulu se mettre à un langage comme coffeescript par simple effet de mode sans pour autant connaître convenablement javascript, et qui s’étonnaient des résultats (logiques) de leur compilation…

leny

Il n'y a pas de module de commentaires sur ce blog, principalement pour éviter à devoir gérer avec les spams, la pub, les insultes, ...

Toutefois, si vous avez quelque chose à dire/corriger/modifier, ou simplement exprimer votre opinion sur un post, n'hésitez pas à me contacter sur Twitter (@leny_be).