Retour
Temps de lecture: 6 min
Vues: 44
Niveau:
Intermédiaire à Confirmé
🔹 Avantages :
🗣️ Ce que dit la communauté :
HAML : l’alternative concise
HAML (HTML Abstraction Markup Language) adopte une syntaxe inspirée de YAML et Python, où l’indentation définit la structure. Les balises HTML sont remplacées par des préfixes (%, . ou #), rendant le code plus compact.
🔹 Avantages :
🗣️ Avis partagés :
HAML est conçu pour être lisible et rapide à écrire. Une fois la syntaxe assimilée, il permet de gagner du temps et de produire des vues plus compactes. En supprimant les balises HTML explicites, il limite les erreurs et rend la structure du document plus visible.
đź’¬ Citations Reddit :
⏱️ Performances
Côté performances, les différences sont modestes, mais notables selon les contextes :
📊 Benchmarks comparatifs :
⚠️ À noter : certains logs de développement montrent une allocation mémoire plus élevée pour HAML. Mais en mode production, les vues sont compilées et mises en cache. Cet écart devient donc négligeable sauf si vous traitez des milliers de vues dynamiques à la volée.
🧪 Expérience terrain :
🌟 Slim et au-delĂ
Parmi les alternatives modernes, Slim sort du lot avec sa syntaxe épurée et sa vitesse d’exécution. C’est une évolution naturelle pour ceux qui trouvent HAML encore trop verbeux.
📌 Points forts :
🗣️ Témoignages Reddit :
đź§© En bonus : et les composants ?
Un fil intéressant de la discussion évoque aussi des moteurs de templates 100 % Ruby comme Phlex ou ViewComponent, qui s’éloignent complètement du HTML en faveur d’une DSL purement Ruby.
🎯 À surveiller de près : Phlex est jeune, mais prometteur pour des projets orientés composants ou des librairies design systems maison.
🔢 Synthèse
Chaque moteur de template a ses forces et faiblesses. Si vous démarrez un projet Rails ou souhaitez simplifier votre stack : restez sur ERB. Il est standard, bien documenté, et compatible avec tout l'écosystème Rails 7.1.
HAML vs ERB : quel moteur de template choisir pour vos vues Rails ?
Enregistrer
environ 2 mois
par Franci-lobbie LALANE

Tags:
🚀 Introduction
Lorsque l'on travaille avec Ruby on Rails, le moteur de templates par défaut est ERB (Embedded Ruby). Il est simple, robuste, et très bien intégré dans l'écosystème Rails. Pourtant, au fil des années, des alternatives ont émergé, avec des promesses alléchantes : code plus lisible, syntaxe plus concise, meilleure productivité. C’est le cas de HAML, très prisé dans certaines équipes pour la clarté de ses vues.
Mais alors, faut-il adopter HAML ? Rester sur ERB ? Ou envisager d’autres options comme Slim ? Cet article propose un comparatif clair, complet et enrichi de retours d'expérience pour vous aider à choisir le moteur de templates le plus adapté à votre projet Rails.
🧵 À noter : Deux discussions riches sur Reddit et celle-ci sur r/rails ont permis de collecter des dizaines d’avis contrastés, vécus concrets, et pistes de réflexion pertinentes. Elles sont citées tout au long de l’article.
📄 ERB vs HAML : présentation
ERB : le standard
ERB (Embedded Ruby) est intégré nativement dans Rails depuis ses débuts. Il permet d’insérer du code Ruby dans du HTML via des balises <% %> (exécution) ou <%= %> (affichage)
ERB (Embedded Ruby) est intégré nativement dans Rails depuis ses débuts. Il permet d’insérer du code Ruby dans du HTML via des balises <% %> (exécution) ou <%= %> (affichage)
<% if user.admin? %> <p>Bienvenue, admin <%= user.name %> !</p> <% end %>
🔹 Avantages :
- Syntaxe simple et familière pour les développeurs web
- Flexibilité totale sur le HTML
- Aucune dépendance externe
- Intégration native dans tous les helpers Rails
- Compatible avec tous les éditeurs et outils front (ex. Tailwind, Hotwire, Stimulus)
🗣️ Ce que dit la communauté :
"ERB parce que c'est du HTML. Pas besoin d’apprendre un nouveau DSL." -- r/rails
"Plus proche du métal. Je n’ai jamais ressenti le besoin d’un autre langage de template." -- BananafestDestiny
HAML : l’alternative concise
HAML (HTML Abstraction Markup Language) adopte une syntaxe inspirée de YAML et Python, où l’indentation définit la structure. Les balises HTML sont remplacées par des préfixes (%, . ou #), rendant le code plus compact.
- if user.admin? %p Bienvenue, admin #{user.name} !
🔹 Avantages :
- Code plus lisible et aéré
- Moins de bruit visuel (pas de balises HTML explicites Ă fermer)
- Moins d’erreurs de nesting et balises non fermées
- Structure visuelle claire facilitant la relecture
- Très apprécié dans des équipes expérimentées ou sur des bases de code legacy
🗣️ Avis partagés :
"Je ne supporte plus les % partout, je suis passé à Slim." -- pupdogg007
"HAML, tout simplement parce que je ne veux plus jamais fermer une balise Ă la main." -- GozerDestructor
"J'ai utilisé HAML pendant des années avant de revenir à ERB pour sa simplicité." -- Katafrakt
✅ Productivité & lisibilité
HAML est conçu pour être lisible et rapide à écrire. Une fois la syntaxe assimilée, il permet de gagner du temps et de produire des vues plus compactes. En supprimant les balises HTML explicites, il limite les erreurs et rend la structure du document plus visible.
Cependant, cette syntaxe peut perturber certains profils, notamment les intégrateurs HTML/CSS, peu habitués à cette logique ou aux langages basés sur l’indentation.
🔎 En pratique :
🔎 En pratique :
- HAML améliore la relecture des PRs, surtout dans les gros projets
- ERB est plus tolérant et plus proche du HTML natif, facilitant la collaboration avec des profils non Ruby
- Le copier-coller depuis des ressources HTML (StackOverflow, Tailwind docs…) est beaucoup plus naturel en ERB
đź’¬ Citations Reddit :
"ERB est verbeux, mais je peux y coller du HTML directement sans me poser de questions." -- katafrakt"HAML est génial jusqu’à ce que je doive convertir manuellement un snippet HTML copié sur un site." -- u/[supprimé]
⏱️ Performances
Côté performances, les différences sont modestes, mais notables selon les contextes :
- ERB compile plus rapidement car intégré nativement via erubi
- HAML et Slim utilisent temple, ce qui ajoute une couche de compilation
📊 Benchmarks comparatifs :
- haml-slim-erb benchmark
- La dernière version de HAML est beaucoup plus performante qu’avant (voir release notes HAML 6.0)
⚠️ À noter : certains logs de développement montrent une allocation mémoire plus élevée pour HAML. Mais en mode production, les vues sont compilées et mises en cache. Cet écart devient donc négligeable sauf si vous traitez des milliers de vues dynamiques à la volée.
🧪 Expérience terrain :
"Le nombre d’objets alloués explose avec HAML dans les logs dev, mais en prod, c’est négligeable." — Icy_Mathematician182
🌟 Slim et au-delĂ
Parmi les alternatives modernes, Slim sort du lot avec sa syntaxe épurée et sa vitesse d’exécution. C’est une évolution naturelle pour ceux qui trouvent HAML encore trop verbeux.
- if user.admin? p Bienvenue, admin #{user.name} !
📌 Points forts :
- Syntaxe ultra minimaliste
- Parsing très rapide
- Compatible Tailwind, Turbo et Hotwire
🗣️ Témoignages Reddit :
"Chaque fois que je commence une nouvelle app avec ERB, je finis par revenir Ă Slim."
"Slim est un HAML raffiné : plus lisible, plus rapide."
"Le parser Slim est frustrant : la moindre erreur d’indentation renvoie une page blanche."
Slim reste un choix excellent si :
- Votre équipe est expérimentée
- Vous souhaitez une syntaxe minimaliste
- Vous utilisez beaucoup de composants et de partials
đź§© En bonus : et les composants ?
Un fil intéressant de la discussion évoque aussi des moteurs de templates 100 % Ruby comme Phlex ou ViewComponent, qui s’éloignent complètement du HTML en faveur d’une DSL purement Ruby.
📚 Ces approches permettent de modéliser les vues comme des objets Ruby testables, modulaires, et hautement réutilisables.
🧠Extrait de la communauté :
🧠Extrait de la communauté :
"Phlex est plus rapide qu’ERB. C’est fun, mais pas fait pour tout le monde.""Si je veux écrire du HTML avec des classes Ruby, je fais du markdown ou j’utilise des composants."
🎯 À surveiller de près : Phlex est jeune, mais prometteur pour des projets orientés composants ou des librairies design systems maison.
🔢 Synthèse
🚀 Conclusion
Chaque moteur de template a ses forces et faiblesses. Si vous démarrez un projet Rails ou souhaitez simplifier votre stack : restez sur ERB. Il est standard, bien documenté, et compatible avec tout l'écosystème Rails 7.1.
Mais si vous cherchez une syntaxe plus expressive, que votre équipe maîtrise bien, et que vous voulez des vues ultra lisibles, HAML (ou Slim) peuvent être d’excellentes alternatives.
👀 Et si vous cherchez une rupture de paradigme, les moteurs comme Phlex ou ViewComponent offrent une approche entièrement Ruby et orientée composants.
💬 En résumé :
💬 En résumé :
- ERB : simple, fiable, universel
- HAML : lisible, élégant, adapté aux gros projets
- Slim : minimaliste, rapide, pour les amoureux de la concision
💡 Mon conseil : testez les trois sur un même template et comparez la lisibilité, la maintenance, et la productivité dans votre contexte.
Happy coding !
Laissez un commentaire
Se connecterpour laisser un commentaire.