Accueil > professional > Pourquoi cet intérêt pour les scriptlets et autres taglibs ?

Pourquoi cet intérêt pour les scriptlets et autres taglibs ?

[this article is also available in English.]

Les articles présentant le framework XYZ ou « comment choisir son framework web » abondent.

Une chose me surprend souvent : l’importance apparente accordée aux « bonne tag lib » et autres « super langage de scriplet ». Soyons clair : il ne peut pas y avoir de bonnes tag libs ou de bons scriplets. Certains peuvent être bien codés, mais ça ne change rien: l’idée même est mauvaise dès le départ. Et dire « mettre la logique métier dans les scriplets est une mauvaise pratique », comme le fait la documentation Grails, ne suffit pas à changer la chose.

Pourquoi une opinion aussi tranchée ?
Voyons voir…

Encore un nouveau langage à apprendre.
Oui je sais, nous devrions tous apprendre un nouveau langage de programmation chaque matin. Mais je préfèrerai que de tels langages apportent des nouveautés, tels des concepts inusités. Concernant les scriptlets et autres taglibs, c’est à chaque fois la même chose, seule la syntaxe change. N’en n’attendez pas des découvertes, si ce n’est de mauvaises. Comme par exemple que personne ne sache comment utiliser le tag XYZ de telle bibliothèque dont la documentation n’a jamais été vue. A propos, vous pouvez très certainement oublier aussi la javadoc et les outils similaires…

Scriplets et tag lib ne sont pas orientés objet.
Oubliez la programmation objet. Déclarer des classes et des interfaces est souvent à peine possible, et encore moins utilisé. C’est encore pire concernant l’héritage. Est ce important ? Hum, essayez un peu le cobol et on parle à nouveau ! Plus sérieusement, oubliez les design patterns et assimilé. Vous êtes dans le royaume de la programmation procédurale, pas de l’Orienté Object, et tant pis pour tout ce que cela apporte!

Même le meilleur support par un outil est… boiteux!
L’une des meilleures intégration avec laquelle j’ai travaillé est Visual Studio et ASP.Net. Ce que l’IDE fournit est essentiellement l’auto complétion. C’est déjà bien mieux que rien, mais cela manque tout de même d’aide à la navigation telles que « montrer la hiérarchie », « montrer les références » et autres « ouvrir les appels ». Et puis, quand vous avez écrit votre scriptlet, que deviennent ces « extraire méthode », « renommer » et autres outils de refactoring? Oubliez les aussi, vous faites des taglibs et scriptlets, bienvenu à l’âge de pierre. Bien sûr, tout cela ne doit pas faire oublier que, si jamais de tels outils venaient à apparaitre, qu’en serait il de l’intégration avec le langage utilisé pour tout le reste coté serveur ? De toutes façons, malgré l’ancienneté des scriptlets et autres taglibs, de tels outils n’existent toujours pas…

C’est le bazar !
Où mettez vous vos scriplets ? Au milieu d’html. Il y a quoi là déjà ? Facile : des tags html, du texte, du css et très certainement du javascript. Et vous voudriez ajouter, par dessus le tout, des petits scriplets et encore d’autres tags ? Génial ! Les designers n’y comprendront certainement rien, pas plus que le prochain développeur devant utiliser la chose… Quelle belle façon de communiquer vos intentions dans le code, brrr…

De la logique métier pourrait bien se glisser dans vos pages.
Nous savons tous que c’est une mauvaise pratique. La logique métier devrait être dans une couche métier. Sans duplication. Clairement présentée, facile à trouver et à modifier. Ceci dit, allez, « je n’affiche pas les éléments dont les parents contiennent Foo, on ne les veut jamais de toutes façons! ». Combien même, malgré l’envie d’aller vite et les erreurs d’inattentions, vous vous tiendriez à cette ligne, qu’en est il du prochain développeur ? Comment vérifier que personne ne franchit cette ligne ? Souvenez vous, votre IDE ne vous aidera guère. J’imagine qu’il ne reste plus qu’à lire chacune de ces belles lignes de code, une à une. Ça fait un peu châtiment infernal non ? En tout cas je le souhaite à personne !

Au final, les scriptlets et taglibs me font vraiment l’impression d’une fausse bonne idée que nous devrions nous dépêcher d’oublier. Ils sont difficiles à développer, dur à personnaliser (tags) et à généraliser (scriptlets), illisible et une réelle gageure à maintenir. Perso, tous les frameworks web les supportant me font froid dans le dos. Des tags spécifiques pour se rattacher au côté serveur ? Oui, bien sûr, c’est quasi inévitable de toutes façons. Mais pas plus. Dès que je vois des « if », « while » et le reste, c’en est trop. Et cela devrait être le cas pour tout le monde je pense !

++
joseph

Publicités
Étiquettes : , , , ,
  1. Aucun commentaire pour l’instant.
  1. juin 11, 2010 à 9:07

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :