Pourquoi je deteste le bbcode
Par Laurentj le mercredi, février 16 2005, 13:03 - Technologies Web - Lien permanent
Il y a un truc qui me fait halluciner parmis les habitués des forums, c'est l'engouement de certains pour le bbcode. Ils trouvent cela génial. Je vous avoue que je ne les comprends pas. Comment peut-on apprécier ce genre de balisage pour mettre en forme un texte ?
Quelques exemples pour ceux qui ne connaissent pas :
- mettre en gras
[b]texte[/b] - mettre en italique
[i]texte[/i] - mettre un lien
[url=http://url/]Nom[/url]
et attention accrochez vous, pour les listes :
[list=1] [*]Faire les magasins [*]Acheter un nouvel ordinateur [*]Injurier son ordinateur lorsqu'il plante [/list]
Je trouve le bbcode complexe, pas du tout intuitif. Nul quoi. Certes il faut proposer une alternative au manque d'édition wysiwyg correct dans les formulaires HTML (j'y reviendrais). Mais il faut que cette alternative soit la plus simple et la plus intuitive possible pour que les néophites puissent l'utiliser. Cela nécessite alors qu'il y ait le moins de chose à connaître pour structurer ses propos. En fait, comme si on écrivait à la main.
Le bbcode est à l'opposé de cette philosophie :
- C'est complexe à souhait. Par exemple pour les listes, pourquoi mettre toutes ces balises alors que l'analyseur de code n'a qu'à détecter un tiret en début de ligne (comme pour les moteurs wiki) ? Cette complexité est inutile (et déficiente : dans un forum phpbb, si on oublie le [*] en début de ligne, le balisage html générée est foireux)
- Cela n'est pas plus simple à écrire que le html à cause d'un système de balise à rallonge. Donc pourquoi faire apprendre aux utilisateurs un nième "langage" ? Pourquoi ne pas leur proposer directement d'écrire en html ?
- Pour nous, possesseurs de clavier azerty, c'est très chiant à utiliser, car on est obligé de faire des combinaisons de touches compliquées (altgr+"(" ou ")" pour avoir les [ et ].
Bref, finalement, écrire du HTML serait plus simple. Mais ce n'est pas la solution non plus.
L'utilisation d'outils comme htmlarea ou fckeditor semble la solution : ils proposent de faire de l'édition wysiwyg. Malheureusement, ils ont aussi leurs imperfections, comme j'en avais parlé en mars dernier, ce qui n'est pas satisfaisant (voir aussi le billet de Jedi/Sector One à ce propos).
Reste le wiki, à mi chemin entre un balisage affreux imposé par le bbcode et une génération de balise HTML déficientes dans les éditeurs wysiwyg.
(Bon, coté éditeur wysiwyg générant un balisage propre, Daniel s'en occupe et je ne vais pas tarder à l'aider, et coté wiki, vous avez bien sûr wikirenderer )
Commentaires
Le bbcode a l'avantage de pouvoir facilement limiter les possibilités d'édition, au pire si le visiteur fait une erreur le code n'est pas interprété mais ça ne fout pas en l'air toute la page comme on peut le voir sur certains forums non-bbcode où le HTML est permis et où l'oubli d'un </b> à la fin du message par exemple peut s'avérer assez embêtant.
Calimo> ce problème n'a rien à voir, en effet tu peux limiter l'interprétation du html : il te suffit de supprimer les balises interdites au moment du traitement du formulaire (exemple : le formulaire que je suis en train de remplir). Ce ne sont pas des difficultés techniques (loin d'être insurmontables) qui doivent limiter le confort de l'utilisateur
ça n'est pas un avantage dans la mesure où, comme l'a dit François, rien n'empêche de faire un traitement sur le contenu pour supprimer les balises "interdites" ou mal formée, et dans la mesure où il y a d'autres langages plus simple d'utilisation, et limitant aussi les possiblités d'édition (le wiki par exemple).
Bref, le bbcode n'apporte strictement rien si ce n'est de la complexité. En fait, le bbcode a été inventé par un développeur ne pensant qu'à lui (n'avoir à faire qu'un traitement simple) et ne pensant pas à ses utilisateurs.
De plus, je te ferais remarquer que, comme je l'ai dit, si on met un balisage bbcode incorrect, il arrive que le générateur de phpbb nous ressort du code invalide (peut-être corrigé dans les toutes dernières versions, à vérifier). Bref, ton avantage n'est plus un avantage ;-)
Le BBCode est effectivement infect. Le Videotex était encore moins intuitif mais aussi beaucoup moins limité :)
Il existe plusieurs systèmes (comme celui des Wikis ou Textile) qui ne se basent pas sur des balises. Malheureusement ils ne sont pas "intuitifs" pour autant. Enfin, ils le sont pour une personne écrivant avec une typographie correcte. Ou pour quelqu'un ayant pris soin de se renseigner sur le fonctionnement du bidule. Mais absolument pas pour 99,9% des internautes qui écrivent des articles et commentaires sur des blogs et forums.
Prends les articles et commentaires de Skyblog et passe-les dans un moteur de rendu quelconque. Quasiment aucun ne produira le résultat escompté. Les tirets ne servent pas à délimiter des éléments de liste, mais il sont employés pour compléter des dessins à base de caractères non-latins. Idem pour les étoiles, accolades, underscores et apostrophes (hors apostrophes windowziens) qui sont davantage placés au pif pour faire joli que dans un réel cadre sémantique.
Par contre le BBCode a l'avantage d'être devenu à peu près universel. C'est pourri, mais quasiment tous les scripts le supportent. C'est le dénominateur commun. Et un mec qui a fréquenté quelques forums s'attend à pouvoir utiliser du BBCode ailleurs. Si on lui propose du XHTML ou du Textile, le mec sera désorienté. BBCode n'est pas vraiment un "nouveau langage". Même s'il n'apporte rien, il est aujourd'hui celui que les utilisateurs connaissent le mieux.
Enfin tout dépend du contenu... Sur un forum ou sur Skyblog les mecs veulent juste faire un machin atroce avec une couleur différente pour chaque lettre. A la limite ils seraient comblés par une balise qui applique des styles au hasard. En attendant le BBCode est clairement ce qui leur convient le mieux. Imagine ce que ça donnerait avec du XHTML. Si tu as un style qui applique une bordure à <blockquote>, ils vont utiliser la balise pour dessiner des chapeaux à leurs smileys. Au niveau sémantique ce sera une catastrophe.
Facile de critiquer un pseudo-language. C'est vrai que BBCode est nul. Mais fckeditor du temps où j'ai commencé à utiliser les BBcode n'était meme pas compatible Mozilla. Et les wiki utilisaient des liensALaCon. Alors BBCode finalement c'était pas plus bizare que le reste. Alors, maintenant, s'il y a un mod facile à installer dans phpBB pour utiliser l'éditeur comme dans un wiki moderne, je suis preneur. Mais bon historiquement parlant BBCode à sa raison d'être.
En effet, la syntaxe bbcode est horrible, et le Javascript de phpBB innomable (notamment sous Firefox, faire alt+B perd la position du curseur) ! Wikirenderer est quand même autrement plus facile à apprendre ! Pour ma part, sur DvdToile, j'ai opté pour wikirenderer auquel j'ai ajouté des balises du style film=Matrix ou artiste=Jean Reno pour pouvoir faire des liens vers les fiches du site.
Parce que le jour où je suis passé de HTML 4 à XHTML 1.0, j'ai maudit tous les visiteurs qui m'avaient laissé des commentaires du style <B><i>Ce film est génial...</b></i> !! A moins que le W3C ne publie une fonction PHP qui valide un texte (un peu à la manière de Wikirenderer), auquel cas on pourrait dire au visiteur "Votre message n'est pas valide ; les noms de balises doivent être écrits en minuscules" :-)
Difficile de parler de balises quand Wikirenderer est là :-) Je parlais de balises [film=Matrix] ou [artiste=Jean Reno]
Jedi:
eh eh ;-)
Oui, et je pense que ça conçerne la majorité des internautes.
Ah oui mais non, là, tu prend un cas extrème ! Ils ne savent pas écrire ces internautes-là ! lol Pour eux, on ne peut rien faire. Cas déséspéré. Il ne faut rien leur proposer, ça va être de toute façon la cata :-) Ou alors un truc wysiwyg :-)
Malheureusement... :-/
Spontex :
Oui effectivement c'est embetant. Reste à faire une moulinette pour valider tout les textes saisies lors de la migration (moulinette s'appuyant par exemple sur htmltidy)
euh, ici, c'est pas Wikirenderer, mais wiki2xhtml. Non je n'ai pas hacké dotclear pour mettre ma lib :-)
Le BBCode énerve plein de monde (j'en fais parti) mais il permet quelque chose de simple : copier coller du code HTML sans se préoccuper. Ca permet d'aider simplement les débutants justement.
En attendant un éditeur graphique basé uniquement sur quelques informations de structures (et pas de couleur/gras/tailles) j'ai découvert Markdown. Certes c'est un wiki-like, mais pour avoir essayé, ça converti parfaitement 90% de mes mails. Ca bénéficie directement de toute l'expérience de usenet et des listes de diffusion email pour la définition d'une structure texte simple à relire. Seuls les liens sont un peu étranges si on n'a pas l'habitude. Mais pour moi c'est naturel (je dis bien "pour moi", avec mon vécu et mon statut de geek), 100 fois plus que les autres syntaxes wiki.
A noter, un JS intéressant : http://www.ibilab.net/webdev/articles/Javascript/creer-editeur-texte-wysiwyg-bases-10.htm
Le BBCode est intuitif pour nombre de gens, car il ressemble au HTML. En revanche, je suis encore peu habitué à la synthaxe wiki, et du coup je le trouve moins intuitive que le BBCode. En fait elle me fait loucher...
Je ne veux pas jouer les provocateurs, mais quand j'observe certains néophythes découvrant l'informatique, je me rends compte que nombre d'interfaces dites intuitives ne le sont pas. Est intuitif ce qui ressemble à quelque chose que l'on connait. D'ou mon opinion personelle que le BBCode est un compromis très élégant entre "intuitivité", simplicité, sécurité et lacunes de l'édition dans une page web.
A long terme, je pense que le seul moyen d'avoir de l'édition WYSIWYG dans une page web, c'est un éditeur coté client intégré au navigateur, qui soit capable de sortir un code correct. Mise en forme du texte, insertion d'images et d'animations. Pas besoin de plus de choses.
Quant à la sémantique, je vais également etre provocateur en disant que je considère ce concept comme non-intuitif. Les amateurs de sémantique parfaite et les amateurs de WYSIWYG sont finalement deux catégories qui se recoupent peu.
J'aimerais que le monde soit autrement, mais c'est comme ça. Produire un document avec une sémantique parfaite, un fond et une forme séparés, chose pour laquelle un langage comme le XHTML (couplé aux CSS) est idéal, tout cela demande au fond un niveau d'abstraction supplémentaire. Et hélas, tout le monde peut le constater, seule une partie de la population en est capable, de nos jours ou dans un futur proche. Vouloir que tout le monde en soit capable, c'est beau, j'en rève, mais c'est utopique.
Milvus : Sincérement, tu trouves ça :
plus intuitif que ça ?
à écrire ? c'est là que je ne comprend pas.. L'utilisateur n'a rien à connaître avec la deuxième solution, pas de balises bizarroides qui d'ailleurs ne correspondent en rien au HTML contrairement à ce que tu dis.
Je n'ai jamais dis qu'il y avait correspondance parfaite entre le HTML et le BBCode. Juste un air de ressemblance, qui est plus ou moins fort selon les balises. C'est logique, le BBCode est de toute évidence inspiré du HTML, conçu pour ajouter aux formulaire des fonctions semblables à celles du HTMLs sans les risques de ce dernier.
De même,
et
ont un air de ressemblance indéniable.
En fait je suis d'accord pour dire que les listes en wiki sont plus intuitives qu'en BBCode. Mais pour le formatage (gras et italique par exemple), le BBCode est plus intuitif (quoique surtout pour des anglophones). Le BBCode a plein de défauts, je suis d'accord. J'ai parlé de compromis, pas de solution miracle. Mais le en fait, toute édition non WYSIWYG est non intuitive. Car le résultat n'est pas immédiat, il faut donc réfléchir, se projeter dans l'avenir pour anticiper le résultat. Au sein des synthaxe de mise en forme, celle du wiki dans sa totalité est plus simple, plus internationale, plus rapide à écrire, mais certainement pas plus intuitive que le BBCode.
C'est un doux rève que de croire que ce genre de balisage est intuitif. C'est un "truc" à apprendre, certes pas des plus compliqués, mais totalement incongru pour le néophyte.
En fait ce mettre dans la tête d'un néophyte quand on a pris des habitudes de codeur, même à un niveau modeste, est un sacré défi, dont il ne faut surtout pas sous-estimer la difficulté.
Le côté intuitif du BBCode est peut-être valable mais uniquement quand l'intuition est déjà précédée d'une connaisance du HTML. Sans connaissance du HTML, où est cet aspect intuitif ?
Par ailleurs, pour certainement une majorité d'internautes, l'intuitif pour la création de contenu, c'est word.
Pour ma part, je trouve les remarques de Laurent fondées.
Zêtes bien tous méchants avec le Babycode :(
on me ferra pas croire que la syntaxe wiki est mieux que le BB code.
quote="LJ"En fait, le bbcode a été inventé par un développeur ne pensant qu'à lui (n'avoir à faire qu'un traitement simple) et ne pensant pas à ses utilisateurs./quote Le developpeur de BBCode est associale et en plus il n'aime pas les films de gladiateurs.
Je ne vois pas ce qu'il a de si horrible ce bbcode. Les débutants arrivent à s'en sortir, d'autant qu'il est utilisé dans beaucoup de forums, et pour les fonctions qui sont utilisées (gras, italique, couleur, citation, lien) il faut bien un marqueur de début et de fin, non ? Ce n'est peut être pas le code le plus compact mais il est assez facile à retenir.
Le BBCode est clairement plus complexe à retenir et à écrire que les parser wiki qui existe en ce moment. Cela dit, c'est de l'échange de syntaxe, quand on est habitué à l'une d'entre-elle on a du mal à en changer.
Le wiki est quand même beaucoup plus léger à écrire, et évite certaines erreurs de transformation ...
Enfin, pour le moment, l'édition de champ texte reste vraiment trés légére en possiblité, que cela soit avec javascript ou non.
Le BBCode à l'avantage d'être normalisé et disponible sur de nombreux forum. Ca n'est pas encore le cas de la syntaxe wiki, chaque site ayant le sien.
Le bbcode n'est pas du tout normalisé. Sa popularité est due à la popularité du forum phpbb, utilisé par de nombreux sites..
c'est une discussion un peu oiseuse. On pourrait tenir la même à propos de l'emplacement des touches de clavier azerty : ce n'est pas intuitif du tout, celà remonte aux machines à écrire du début du siècle sur lesquels les utilisateurs ne devaient pas taper trop rapidement pour éviter que les marteaux de lettres ne s'emmêlent :) . A présent, il y a des propositions de clavier plus ergonomiques (l'équivalent de l'intuitivité pour la sémantique, non ?) mais aucun n'est adopté car tout le monde apprend sur azerty et changer c'est une vraie galère.
Je cherche un wiki pour l'associer à mon forum ipb : je ne me vois pas demander à mes forumeurs d'apprendre un nouveau langage, seuls 10% feront l'effort. Et d'ailleurs, qui suis-je pour leur demander cet effort ? C'est à moi de me plier à leurs besoins et non l'inverse.
Bref, je recherche un wiki avec une syntaxe en bbcode (j'en entend déjà hurler sur cette page :) ), peu importe si derrière un parser remet ça dans le Code Idéal quel qu'il soit.
bref, j'ai une approche pragmatique : les forumeurs ont l'habitude du bbcode ? le client est roi.
T'es vraiment très con toi ;)